From 4720404228627bc0975dfb0e1b700cb6ea70304b Mon Sep 17 00:00:00 2001
From: Markus Rudolph
Date: Mon, 11 Mar 2024 10:50:02 +0100
Subject: [PATCH 01/14] Fix most langium imports
---
hugo/content/playground/Tree.tsx | 2 +-
hugo/content/playground/common.ts | 5 +-
hugo/content/playground/langium-worker.ts | 5 +-
hugo/content/playground/monarch-generator.ts | 55 +-
hugo/content/playground/preprocess.ts | 2 +-
hugo/content/playground/types.ts | 2 +-
hugo/content/playground/user-worker.ts | 4 +-
hugo/package.json | 14 +-
package-lock.json | 1655 ++++++++----------
9 files changed, 739 insertions(+), 1005 deletions(-)
diff --git a/hugo/content/playground/Tree.tsx b/hugo/content/playground/Tree.tsx
index 2b15c1fd..d999031d 100644
--- a/hugo/content/playground/Tree.tsx
+++ b/hugo/content/playground/Tree.tsx
@@ -4,12 +4,12 @@
* terms of the MIT License, which is available in the project root.
******************************************************************************/
-import { AstNode } from "langium";
import React, { FC, useState } from "react";
import * as ReactDOM from "react-dom/client";
import { preprocessAstNodeObject, PropertyNode, ValueNode } from "./preprocess";
import { clsx } from "clsx";
import { AstNodeLocator } from "langium/lib/workspace/ast-node-locator";
+import { AstNode } from "langium/lib/syntax-tree";
export let treeRoot: ReactDOM.Root;
diff --git a/hugo/content/playground/common.ts b/hugo/content/playground/common.ts
index 2cfc45e9..30641631 100644
--- a/hugo/content/playground/common.ts
+++ b/hugo/content/playground/common.ts
@@ -12,11 +12,12 @@ import {
import { generateMonarch } from "./monarch-generator";
import { decompressFromEncodedURIComponent } from 'lz-string';
import { Disposable } from "vscode-languageserver";
-import { DefaultAstNodeLocator, createServicesForGrammar } from "langium";
import { render } from './Tree';
import { overlay, throttle } from "./utils";
import { addMonacoStyles, createUserConfig, MonacoEditorLanguageClientWrapper } from "langium-website-core/bundle";
-import { DocumentChangeResponse } from "../../assets/scripts/langium-utils/langium-ast";
+import { DocumentChangeResponse } from "langium-ast-helper";
+import { createServicesForGrammar } from "langium/lib/grammar";
+import { DefaultAstNodeLocator } from "langium/lib/workspace/ast-node-locator";
export { share, overlay } from './utils';
export { addMonacoStyles, MonacoEditorLanguageClientWrapper };
diff --git a/hugo/content/playground/langium-worker.ts b/hugo/content/playground/langium-worker.ts
index b69b74b3..a6bd9f81 100644
--- a/hugo/content/playground/langium-worker.ts
+++ b/hugo/content/playground/langium-worker.ts
@@ -4,9 +4,12 @@
* terms of the MIT License, which is available in the project root.
******************************************************************************/
-import { DocumentState, startLanguageServer, EmptyFileSystem, createLangiumGrammarServices } from 'langium';
import { NotificationType } from 'vscode-languageserver/browser';
import { DocumentChange, createServerConnection } from './worker-utils';
+import { createLangiumGrammarServices } from 'langium/lib/grammar';
+import { startLanguageServer } from 'langium/lib/lsp';
+import { DocumentState } from 'langium/lib/workspace/documents';
+import { EmptyFileSystem } from 'langium/lib/workspace/file-system-provider';
// establish a browser server connection
const connection = createServerConnection();
diff --git a/hugo/content/playground/monarch-generator.ts b/hugo/content/playground/monarch-generator.ts
index 1a6e5623..85ac25b1 100644
--- a/hugo/content/playground/monarch-generator.ts
+++ b/hugo/content/playground/monarch-generator.ts
@@ -4,15 +4,10 @@
* terms of the MIT License, which is available in the project root.
******************************************************************************/
-import * as langium from "langium";
-import {
- getTerminalParts,
- isCommentTerminal,
- escapeRegExp,
- stream,
-} from "langium";
-import { isParserRule, isKeyword, isTerminalRule, isRegexToken, TerminalRule, AbstractElement, isAlternatives, isGroup, isUnorderedGroup, isAssignment } from "langium/lib/grammar/generated/ast";
-import { terminalRegex } from "langium/lib/grammar/internal-grammar-util";
+import { isCommentTerminal, terminalRegex } from "langium/lib/utils/grammar-utils";
+import { stream } from "langium/lib/utils/stream";
+import { escapeRegExp, getTerminalParts } from "langium/lib/utils/regexp-utils";
+import ast from "langium/lib/languages/generated/ast";
/**
* Monarch Language Definition, describes aspects & token categories of target language
@@ -125,7 +120,7 @@ interface MonarchGrammar {
* @param config Langium Config to also use during generation
* @returns Generated Monarch syntax highlighting file content
*/
-export function generateMonarch(grammar: langium.Grammar, id: string) {
+export function generateMonarch(grammar: ast.Grammar, id: string) {
const symbols = getSymbols(grammar);
const regex = /[{}[\]()]/;
const operators = symbols.filter((s) => !regex.test(s));
@@ -153,7 +148,7 @@ export function generateMonarch(grammar: langium.Grammar, id: string) {
* @param grammar Langium grammar to source tokenizer states from
* @returns Array of tokenizer states
*/
-function getTokenizerStates(grammar: langium.Grammar): State[] {
+function getTokenizerStates(grammar: ast.Grammar): State[] {
// initial state, name is arbitrary, just needs to come first
const initialState: State = {
name: "initial",
@@ -306,7 +301,7 @@ function prettyPrintAction(action: Action | Case[]): Action {
* @param rule Rule to convert to a Monarch token name
* @returns Returns the equivalent monarch token name, or the original rule name
*/
-function getMonarchTokenName(rule: TerminalRule): string {
+function getMonarchTokenName(rule: ast.TerminalRule): string {
if (rule.name.toLowerCase() === "string") {
// string is clarified as a terminal by name, but not necessarily by type
return "string";
@@ -324,10 +319,10 @@ function getMonarchTokenName(rule: TerminalRule): string {
* @param grammar Langium grammar to extract whitespace rules from
* @returns Array of Monarch whitespace rules
*/
-function getWhitespaceRules(grammar: langium.Grammar): Rule[] {
+function getWhitespaceRules(grammar: ast.Grammar): Rule[] {
const rules: Rule[] = [];
for (const rule of grammar.rules) {
- if (isTerminalRule(rule) && isRegexToken(rule.definition)) {
+ if (ast.isTerminalRule(rule) && ast.isRegexToken(rule.definition)) {
const regex = new RegExp(terminalRegex(rule));
if (!isCommentTerminal(rule) && !regex.test(" ")) {
@@ -365,13 +360,13 @@ function getWhitespaceRules(grammar: langium.Grammar): Rule[] {
* @param grammar Langium grammar to extract comment rules from
* @returns Array of Monarch comment rules
*/
-function getCommentRules(grammar: langium.Grammar): Rule[] {
+function getCommentRules(grammar: ast.Grammar): Rule[] {
const rules: Rule[] = [];
for (const rule of grammar.rules) {
if (
- isTerminalRule(rule) &&
+ ast.isTerminalRule(rule) &&
isCommentTerminal(rule) &&
- isRegexToken(rule.definition)
+ ast.isRegexToken(rule.definition)
) {
const tokenName = "comment";
const part = getTerminalParts(terminalRegex(rule))[0];
@@ -410,13 +405,13 @@ function getCommentRules(grammar: langium.Grammar): Rule[] {
* @param grammar Grammar to get non-comment terminals from
* @returns Array of Rules to add to a Monarch tokenizer state
*/
-function getTerminalRules(grammar: langium.Grammar): Rule[] {
+function getTerminalRules(grammar: ast.Grammar): Rule[] {
const rules: Rule[] = [];
for (const rule of grammar.rules) {
if (
- isTerminalRule(rule) &&
+ ast.isTerminalRule(rule) &&
!isCommentTerminal(rule) &&
- isRegexToken(rule.definition)
+ ast.isRegexToken(rule.definition)
) {
const regex = new RegExp(terminalRegex(rule));
@@ -463,7 +458,7 @@ const KeywordRegex = /[A-Za-z]/;
* @param grammar Grammar to get keywords from
* @returns Array of keywords
*/
-function getKeywords(grammar: langium.Grammar): string[] {
+function getKeywords(grammar: ast.Grammar): string[] {
return collectKeywords(grammar).filter((kw) => KeywordRegex.test(kw));
}
@@ -472,14 +467,14 @@ function getKeywords(grammar: langium.Grammar): string[] {
* @param grammar Grammar to get symbols from
* @returns Array of symbols, effective inverse of getKeywords
*/
-function getSymbols(grammar: langium.Grammar): string[] {
+function getSymbols(grammar: ast.Grammar): string[] {
return collectKeywords(grammar).filter((kw) => !KeywordRegex.test(kw));
}
-export function collectKeywords(grammar: langium.Grammar): string[] {
+export function collectKeywords(grammar: ast.Grammar): string[] {
const keywords = new Set();
- for (const rule of stream(grammar.rules).filter(isParserRule)) {
+ for (const rule of stream(grammar.rules).filter(ast.isParserRule)) {
collectElementKeywords(rule.definition, keywords);
}
@@ -487,20 +482,20 @@ export function collectKeywords(grammar: langium.Grammar): string[] {
}
function collectElementKeywords(
- element: AbstractElement,
+ element: ast.AbstractElement,
keywords: Set
) {
if (
- isAlternatives(element) ||
- isGroup(element) ||
- isUnorderedGroup(element)
+ ast.isAlternatives(element) ||
+ ast.isGroup(element) ||
+ ast.isUnorderedGroup(element)
) {
for (const item of element.elements) {
collectElementKeywords(item, keywords);
}
- } else if (isAssignment(element)) {
+ } else if (ast.isAssignment(element)) {
collectElementKeywords(element.terminal, keywords);
- } else if (isKeyword(element)) {
+ } else if (ast.isKeyword(element)) {
keywords.add(element.value);
}
}
diff --git a/hugo/content/playground/preprocess.ts b/hugo/content/playground/preprocess.ts
index f0adf6c2..a1ad43e8 100644
--- a/hugo/content/playground/preprocess.ts
+++ b/hugo/content/playground/preprocess.ts
@@ -4,7 +4,7 @@
* terms of the MIT License, which is available in the project root.
******************************************************************************/
-import { AstNode } from "langium";
+import { AstNode } from "langium/lib/syntax-tree";
import { AstNodeLocator } from "langium/lib/workspace/ast-node-locator";
/**
diff --git a/hugo/content/playground/types.ts b/hugo/content/playground/types.ts
index 90bcb875..82b6b747 100644
--- a/hugo/content/playground/types.ts
+++ b/hugo/content/playground/types.ts
@@ -4,7 +4,7 @@
* terms of the MIT License, which is available in the project root.
******************************************************************************/
- import { AstNode } from "langium";
+import { AstNode } from "langium/lib/syntax-tree";
import { Diagnostic } from "vscode-languageserver";
export declare type DedicatedWorkerGlobalScope = any;
diff --git a/hugo/content/playground/user-worker.ts b/hugo/content/playground/user-worker.ts
index 6177712d..a2c7c33d 100644
--- a/hugo/content/playground/user-worker.ts
+++ b/hugo/content/playground/user-worker.ts
@@ -4,9 +4,11 @@
* terms of the MIT License, which is available in the project root.
******************************************************************************/
-import { DocumentState, createServicesForGrammar, startLanguageServer } from 'langium';
import { NotificationType } from 'vscode-languageserver/browser.js';
import { DocumentChange, createServerConnection } from './worker-utils';
+import { createServicesForGrammar } from 'langium/lib/grammar';
+import { startLanguageServer } from 'langium/lib/lsp';
+import { DocumentState } from 'langium/lib/workspace/documents';
// listen for messages to trigger starting the LS with a given grammar
addEventListener('message', async (event) => {
diff --git a/hugo/package.json b/hugo/package.json
index c6255185..26395076 100644
--- a/hugo/package.json
+++ b/hugo/package.json
@@ -38,19 +38,17 @@
"clsx": "^1.2.1",
"d3": "^7.8.5",
"hugo-extended": "~0.89.4",
- "langium": "^1.2.0",
- "langium-arithmetics-dsl": "~1.2.1",
- "langium-domainmodel-dsl": "~1.2.0",
- "langium-minilogo": "^1.2.0",
- "langium-sql": "^0.2.3",
- "langium-statemachine-dsl": "~1.2.0",
+ "langium": "^3.0.0",
+ "langium-arithmetics-dsl": "^3.0.0",
+ "langium-ast-helper": "0.1.2",
+ "langium-domainmodel-dsl": "^3.0.0",
+ "langium-statemachine-dsl": "^3.0.0",
"langium-website-core": "~1.0.0",
"lz-string": "^1.4.4",
"monaco-editor-workers": "~0.44.0",
"react": "~18.2.0",
"react-dom": "~18.2.0",
- "vscode-languageserver": "~8.0.2",
- "langium-ast-helper": "0.1.2"
+ "vscode-languageserver": "~8.0.2"
},
"volta": {
"node": "18.18.1",
diff --git a/package-lock.json b/package-lock.json
index a62eea17..0c7f46b2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -78,13 +78,11 @@
"clsx": "^1.2.1",
"d3": "^7.8.5",
"hugo-extended": "~0.89.4",
- "langium": "^1.2.0",
- "langium-arithmetics-dsl": "~1.2.1",
+ "langium": "^3.0.0",
+ "langium-arithmetics-dsl": "^3.0.0",
"langium-ast-helper": "0.1.2",
- "langium-domainmodel-dsl": "~1.2.0",
- "langium-minilogo": "^1.2.0",
- "langium-sql": "^0.2.3",
- "langium-statemachine-dsl": "~1.2.0",
+ "langium-domainmodel-dsl": "^3.0.0",
+ "langium-statemachine-dsl": "^3.0.0",
"langium-website-core": "~1.0.0",
"lz-string": "^1.4.4",
"monaco-editor-workers": "~0.44.0",
@@ -101,6 +99,107 @@
"esbuild": "~0.19.4"
}
},
+ "hugo/node_modules/@chevrotain/cst-dts-gen": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz",
+ "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==",
+ "dependencies": {
+ "@chevrotain/gast": "11.0.3",
+ "@chevrotain/types": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "hugo/node_modules/@chevrotain/gast": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz",
+ "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==",
+ "dependencies": {
+ "@chevrotain/types": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "hugo/node_modules/@chevrotain/types": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz",
+ "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ=="
+ },
+ "hugo/node_modules/@chevrotain/utils": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz",
+ "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ=="
+ },
+ "hugo/node_modules/chevrotain": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz",
+ "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==",
+ "dependencies": {
+ "@chevrotain/cst-dts-gen": "11.0.3",
+ "@chevrotain/gast": "11.0.3",
+ "@chevrotain/regexp-to-ast": "11.0.3",
+ "@chevrotain/types": "11.0.3",
+ "@chevrotain/utils": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "hugo/node_modules/chevrotain-allstar": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz",
+ "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==",
+ "dependencies": {
+ "lodash-es": "^4.17.21"
+ },
+ "peerDependencies": {
+ "chevrotain": "^11.0.0"
+ }
+ },
+ "hugo/node_modules/langium": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/langium/-/langium-3.0.0.tgz",
+ "integrity": "sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==",
+ "dependencies": {
+ "chevrotain": "~11.0.3",
+ "chevrotain-allstar": "~0.3.0",
+ "vscode-languageserver": "~9.0.1",
+ "vscode-languageserver-textdocument": "~1.0.11",
+ "vscode-uri": "~3.0.8"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "hugo/node_modules/langium/node_modules/vscode-languageserver": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
+ "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==",
+ "dependencies": {
+ "vscode-languageserver-protocol": "3.17.5"
+ },
+ "bin": {
+ "installServerIntoExtension": "bin/installServerIntoExtension"
+ }
+ },
+ "hugo/node_modules/vscode-jsonrpc": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
+ "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "hugo/node_modules/vscode-languageserver-protocol": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
+ "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
+ "dependencies": {
+ "vscode-jsonrpc": "8.2.0",
+ "vscode-languageserver-types": "3.17.5"
+ }
+ },
+ "hugo/node_modules/vscode-languageserver-types": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
+ "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
+ },
"node_modules/@ampproject/remapping": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
@@ -709,34 +808,10 @@
"node": ">=6.9.0"
}
},
- "node_modules/@chevrotain/cst-dts-gen": {
- "version": "10.4.2",
- "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-10.4.2.tgz",
- "integrity": "sha512-0+4bNjlndNWMoVLH/+y4uHnf6GrTipsC+YTppJxelVJo+xeRVQ0s2PpkdDCVTsu7efyj+8r1gFiwVXsp6JZ0iQ==",
- "dependencies": {
- "@chevrotain/gast": "10.4.2",
- "@chevrotain/types": "10.4.2",
- "lodash": "4.17.21"
- }
- },
- "node_modules/@chevrotain/gast": {
- "version": "10.4.2",
- "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-10.4.2.tgz",
- "integrity": "sha512-4ZAn8/mjkmYonilSJ60gGj1tAF0cVWYUMlIGA0e4ATAc3a648aCnvpBw7zlPHDQjFp50XC13iyWEgWAKiRKTOA==",
- "dependencies": {
- "@chevrotain/types": "10.4.2",
- "lodash": "4.17.21"
- }
- },
- "node_modules/@chevrotain/types": {
- "version": "10.4.2",
- "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-10.4.2.tgz",
- "integrity": "sha512-QzSCjg6G4MvIoLeIgOiMR0IgzkGEQqrNJJIr3T5ETRa7l4Av4AMIiEctV99mvDr57iXwwk0/kr3RJxiU36Nevw=="
- },
- "node_modules/@chevrotain/utils": {
- "version": "10.4.2",
- "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-10.4.2.tgz",
- "integrity": "sha512-V34dacxWLwKcvcy32dx96ADJVdB7kOJLm7LyBkBQw5u5HC9WdEFw2G17zml+U3ivavGTrGPJHl8o9/UJm0PlUw=="
+ "node_modules/@chevrotain/regexp-to-ast": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz",
+ "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA=="
},
"node_modules/@codingame/monaco-vscode-configuration-service-override": {
"version": "1.83.2",
@@ -1211,19 +1286,6 @@
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
},
- "node_modules/@lit-labs/ssr-dom-shim": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz",
- "integrity": "sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ=="
- },
- "node_modules/@lit/reactive-element": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.2.tgz",
- "integrity": "sha512-rDfl+QnCYjuIGf5xI2sVJWdYIi56CTCwWa+nidKYX6oIuBYwUbT/vX4qbUDlHiZKJ/3FRNQ/tWJui44p6/stSA==",
- "dependencies": {
- "@lit-labs/ssr-dom-shim": "^1.0.0"
- }
- },
"node_modules/@nicolo-ribaudo/chokidar-2": {
"version": "2.1.8-no-fsevents.3",
"resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz",
@@ -1359,11 +1421,6 @@
"@types/responselike": "^1.0.0"
}
},
- "node_modules/@types/css-font-loading-module": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/@types/css-font-loading-module/-/css-font-loading-module-0.0.8.tgz",
- "integrity": "sha512-PdJeLlCJj/ShOA+c0dXdZ/e1P0Cdjhip+dRBtPaigOqwKd0DiFx3NeO6T2E7AQ5JszSR3dub3YkQjc2hcQyxSw=="
- },
"node_modules/@types/d3": {
"version": "7.4.0",
"resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.0.tgz",
@@ -1676,29 +1733,12 @@
"integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==",
"dev": true
},
- "node_modules/@types/trusted-types": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz",
- "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g=="
- },
"node_modules/@types/vscode": {
"version": "1.83.0",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.83.0.tgz",
"integrity": "sha512-3mUtHqLAVz9hegut9au4xehuBrzRE3UJiQMpoEHkNl6XHliihO7eATx2BMHs0odsmmrwjJrlixx/Pte6M3ygDQ==",
"dev": true
},
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/acorn": {
"version": "7.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
@@ -1756,6 +1796,7 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -1785,11 +1826,6 @@
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
"dev": true
},
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
- },
"node_modules/array-union": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
@@ -1873,42 +1909,6 @@
"safe-buffer": "^5.1.1"
}
},
- "node_modules/body-parser": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
- "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.11.0",
- "raw-body": "2.5.1",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/body-parser/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/body-parser/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -2010,14 +2010,6 @@
"resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
"integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ=="
},
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/cacheable-lookup": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
@@ -2057,18 +2049,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/camelcase-css": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
@@ -2117,6 +2097,7 @@
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -2132,6 +2113,7 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -2139,30 +2121,6 @@
"node": ">=8"
}
},
- "node_modules/chevrotain": {
- "version": "10.4.2",
- "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-10.4.2.tgz",
- "integrity": "sha512-gzF5GxE0Ckti5kZVuKEZycLntB5X2aj9RVY0r4/220GwQjdnljU+/t3kP74/FMWC7IzCDDEjQ9wsFUf0WCdSHg==",
- "dependencies": {
- "@chevrotain/cst-dts-gen": "10.4.2",
- "@chevrotain/gast": "10.4.2",
- "@chevrotain/types": "10.4.2",
- "@chevrotain/utils": "10.4.2",
- "lodash": "4.17.21",
- "regexp-to-ast": "0.5.0"
- }
- },
- "node_modules/chevrotain-allstar": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.1.7.tgz",
- "integrity": "sha512-oMSHkXVCDQxnj3tDCqcEoMnNIEiYlAYT0FVja1PaLrT3njXGvg5JXTXs/tk2NI42SR3LMJyqTNgjR4VyDIf19w==",
- "dependencies": {
- "lodash": "^4.17.21"
- },
- "peerDependencies": {
- "chevrotain": "~10.4.1"
- }
- },
"node_modules/chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@@ -2235,6 +2193,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
"dependencies": {
"color-name": "~1.1.4"
},
@@ -2245,15 +2204,8 @@
"node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/colors": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
- "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
- "engines": {
- "node": ">=0.1.90"
- }
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
"node_modules/commander": {
"version": "4.1.1",
@@ -2295,43 +2247,11 @@
"url": "https://github.com/open-cli-tools/concurrently?sponsor=1"
}
},
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/convert-source-map": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
"integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
},
- "node_modules/cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
- },
"node_modules/core-util-is": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
@@ -3028,23 +2948,6 @@
"robust-predicates": "^3.0.0"
}
},
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
"node_modules/detective": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
@@ -3085,11 +2988,6 @@
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
"dev": true
},
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
- },
"node_modules/electron-to-chromium": {
"version": "1.4.479",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.479.tgz",
@@ -3101,14 +2999,6 @@
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
- "node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/end-of-stream": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
@@ -3490,11 +3380,6 @@
"node": ">=6"
}
},
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
- },
"node_modules/escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@@ -3509,68 +3394,6 @@
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"dev": true
},
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/express": {
- "version": "4.18.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
- "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.1",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.5.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.11.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.18.0",
- "serve-static": "1.15.0",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/express/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/express/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
"node_modules/fast-glob": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
@@ -3621,36 +3444,6 @@
"node": ">=8"
}
},
- "node_modules/finalhandler": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/finalhandler/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/finalhandler/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
"node_modules/find-up": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
@@ -3666,14 +3459,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/fraction.js": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
@@ -3687,14 +3472,6 @@
"url": "https://www.patreon.com/infusion"
}
},
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/fs-constants": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
@@ -3759,20 +3536,6 @@
"node": "6.* || 8.* || >= 10.*"
}
},
- "node_modules/get-intrinsic": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
- "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
- "dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/get-stream": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz",
@@ -3894,32 +3657,11 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
"engines": {
"node": ">=8"
}
},
- "node_modules/has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/hosted-git-info": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
@@ -3952,21 +3694,6 @@
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
"integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="
},
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/http2-wrapper": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz",
@@ -3997,17 +3724,6 @@
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}
},
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
@@ -4074,14 +3790,6 @@
"node": ">= 0.10"
}
},
- "node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
@@ -4256,158 +3964,612 @@
"json-buffer": "3.0.1"
}
},
- "node_modules/langium": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/langium/-/langium-1.2.1.tgz",
- "integrity": "sha512-tpUa1r47pxuUBNqX5X4GAB08qhWpVwWhxjwOV+948skElHO9OV6emngfY3jOYzchJS4H6UZwyKalsOb8GGPsnQ==",
- "dependencies": {
- "chevrotain": "~10.4.2",
- "chevrotain-allstar": "~0.1.4",
- "vscode-languageserver": "~8.0.2",
- "vscode-languageserver-textdocument": "~1.0.8",
- "vscode-uri": "~3.0.7"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
"node_modules/langium-arithmetics-dsl": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/langium-arithmetics-dsl/-/langium-arithmetics-dsl-1.2.1.tgz",
- "integrity": "sha512-xFbiAVYJIOb1ld7q7cT6eahhbN6rdYkP2o13pCtRLVFP6/oJQ7tPF9CLDJJyQeZJtP4eSM/35VuNUwaljmm6Fw==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/langium-arithmetics-dsl/-/langium-arithmetics-dsl-3.0.0.tgz",
+ "integrity": "sha512-U3cZYJzT4vQUWo95NCUZ+UwMvXBmnpzfsYzMGlGANuYDNvKQ/Iw8qxym6yRh5GGv2QxQk8VvOk/+YIpPzRCuJw==",
"dependencies": {
- "chalk": "~4.1.2",
- "commander": "~10.0.0",
- "langium": "~1.2.0",
- "vscode-languageclient": "~8.0.2",
- "vscode-languageserver": "~8.0.2"
+ "chalk": "~5.3.0",
+ "commander": "~11.0.0",
+ "langium": "~3.0.0",
+ "vscode-languageclient": "~9.0.1",
+ "vscode-languageserver": "~9.0.1"
},
"bin": {
- "arithmetics-cli": "bin/cli"
+ "arithmetics-cli": "bin/cli.js"
},
"engines": {
"vscode": "^1.67.0"
}
},
- "node_modules/langium-arithmetics-dsl/node_modules/commander": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
- "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
- "engines": {
- "node": ">=14"
+ "node_modules/langium-arithmetics-dsl/node_modules/@chevrotain/cst-dts-gen": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz",
+ "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==",
+ "dependencies": {
+ "@chevrotain/gast": "11.0.3",
+ "@chevrotain/types": "11.0.3",
+ "lodash-es": "4.17.21"
}
},
- "node_modules/langium-ast-helper": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/langium-ast-helper/-/langium-ast-helper-0.1.2.tgz",
- "integrity": "sha512-xS64ZOp3fOUcTnlQoLwYwJKi2SU8yPeKGLFZlhxFUR4zJCtJ0teFfwsC+TR7GXWS5Tf3pxG+/Lf4mgkpKhOY+Q=="
- },
- "node_modules/langium-domainmodel-dsl": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/langium-domainmodel-dsl/-/langium-domainmodel-dsl-1.2.0.tgz",
- "integrity": "sha512-xlkXmltp5p096GueLMSXZiBiZC1kMMec1CRlnw6b6JoiLPw87b6oDPTQRyZbkwxjCRq6XPnpE5aHafwPxTr1dw==",
+ "node_modules/langium-arithmetics-dsl/node_modules/@chevrotain/gast": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz",
+ "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==",
"dependencies": {
- "chalk": "~4.1.2",
- "commander": "~10.0.0",
- "langium": "~1.2.0",
- "lodash": "~4.17.21",
- "vscode-languageclient": "~8.0.2",
- "vscode-languageserver": "~8.0.2"
- },
- "bin": {
- "domainmodel-cli": "bin/cli"
- },
- "engines": {
- "vscode": "^1.67.0"
+ "@chevrotain/types": "11.0.3",
+ "lodash-es": "4.17.21"
}
},
- "node_modules/langium-domainmodel-dsl/node_modules/commander": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
- "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
- "engines": {
- "node": ">=14"
- }
+ "node_modules/langium-arithmetics-dsl/node_modules/@chevrotain/types": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz",
+ "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ=="
},
- "node_modules/langium-minilogo": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/langium-minilogo/-/langium-minilogo-1.2.0.tgz",
- "integrity": "sha512-hmeY2VSR4GlcAJ1rLIQBm8Sc4sL0XaQjv4cgI/N+tHmsrGtXUaFO/s7s6hpzjUEfRZgfR38u6L3df9VXbZ7svQ==",
- "dependencies": {
- "colors": "^1.4.0",
- "commander": "^8.0.0",
- "express": "^4.18.2",
- "langium": "~1.2.1",
- "monaco-editor-comp": "~1.6.0",
- "vscode-languageclient": "~8.0.2",
- "vscode-languageserver": "~8.0.2"
- },
- "bin": {
- "minilogo-cli": "bin/cli"
- },
- "engines": {
- "vscode": "^1.56.0"
+ "node_modules/langium-arithmetics-dsl/node_modules/@chevrotain/utils": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz",
+ "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ=="
+ },
+ "node_modules/langium-arithmetics-dsl/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/langium-minilogo/node_modules/commander": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
- "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "node_modules/langium-arithmetics-dsl/node_modules/chalk": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
"engines": {
- "node": ">= 12"
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/langium-sql": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/langium-sql/-/langium-sql-0.2.3.tgz",
- "integrity": "sha512-OSRZttyyULW/1OsUBQQ9lj8qY+eJhsb+FeWWjUZWQadn8bubVYlaYL9UoYmsKeAwwP9kQvkQEKQZQLVevfsphQ==",
+ "node_modules/langium-arithmetics-dsl/node_modules/chevrotain": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz",
+ "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==",
"dependencies": {
- "langium": "~1.1.0",
- "lodash": "^4.17.21"
+ "@chevrotain/cst-dts-gen": "11.0.3",
+ "@chevrotain/gast": "11.0.3",
+ "@chevrotain/regexp-to-ast": "11.0.3",
+ "@chevrotain/types": "11.0.3",
+ "@chevrotain/utils": "11.0.3",
+ "lodash-es": "4.17.21"
}
},
- "node_modules/langium-sql/node_modules/langium": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/langium/-/langium-1.1.0.tgz",
- "integrity": "sha512-TsWY/DIOR73se9/YaMQZpvfFWWrhWP0FQS9MrpxWEnMJR0FoKVpMF1thPWXZexLSfyEm1pn2oYzCdW4KUBqXxA==",
+ "node_modules/langium-arithmetics-dsl/node_modules/chevrotain-allstar": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz",
+ "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==",
"dependencies": {
- "chevrotain": "~10.4.2",
- "chevrotain-allstar": "~0.1.4",
- "vscode-languageserver": "~8.0.2",
- "vscode-languageserver-textdocument": "~1.0.8",
- "vscode-uri": "~3.0.7"
+ "lodash-es": "^4.17.21"
},
+ "peerDependencies": {
+ "chevrotain": "^11.0.0"
+ }
+ },
+ "node_modules/langium-arithmetics-dsl/node_modules/commander": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz",
+ "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==",
"engines": {
- "node": ">=14.0.0"
+ "node": ">=16"
}
},
- "node_modules/langium-statemachine-dsl": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/langium-statemachine-dsl/-/langium-statemachine-dsl-1.2.0.tgz",
- "integrity": "sha512-bOomgWpr5QD3uVhmuBpqLCT1Q1pc6BZypCV3BCRQ7A20MOS0QYjZlkbV7L/QC1pfLCGYR3teKqT+3cUSlXg2jA==",
+ "node_modules/langium-arithmetics-dsl/node_modules/langium": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/langium/-/langium-3.0.0.tgz",
+ "integrity": "sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==",
"dependencies": {
- "chalk": "~4.1.2",
- "commander": "~10.0.0",
- "langium": "~1.2.0",
- "lodash": "^4.17.21",
- "vscode-languageclient": "~8.0.2",
- "vscode-languageserver": "~8.0.2"
+ "chevrotain": "~11.0.3",
+ "chevrotain-allstar": "~0.3.0",
+ "vscode-languageserver": "~9.0.1",
+ "vscode-languageserver-textdocument": "~1.0.11",
+ "vscode-uri": "~3.0.8"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/langium-arithmetics-dsl/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/langium-arithmetics-dsl/node_modules/minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/langium-arithmetics-dsl/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/langium-arithmetics-dsl/node_modules/vscode-jsonrpc": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
+ "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/langium-arithmetics-dsl/node_modules/vscode-languageclient": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-9.0.1.tgz",
+ "integrity": "sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA==",
+ "dependencies": {
+ "minimatch": "^5.1.0",
+ "semver": "^7.3.7",
+ "vscode-languageserver-protocol": "3.17.5"
+ },
+ "engines": {
+ "vscode": "^1.82.0"
+ }
+ },
+ "node_modules/langium-arithmetics-dsl/node_modules/vscode-languageserver": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
+ "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==",
+ "dependencies": {
+ "vscode-languageserver-protocol": "3.17.5"
+ },
+ "bin": {
+ "installServerIntoExtension": "bin/installServerIntoExtension"
+ }
+ },
+ "node_modules/langium-arithmetics-dsl/node_modules/vscode-languageserver-protocol": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
+ "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
+ "dependencies": {
+ "vscode-jsonrpc": "8.2.0",
+ "vscode-languageserver-types": "3.17.5"
+ }
+ },
+ "node_modules/langium-arithmetics-dsl/node_modules/vscode-languageserver-types": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
+ "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
+ },
+ "node_modules/langium-arithmetics-dsl/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
+ "node_modules/langium-ast-helper": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/langium-ast-helper/-/langium-ast-helper-0.1.2.tgz",
+ "integrity": "sha512-xS64ZOp3fOUcTnlQoLwYwJKi2SU8yPeKGLFZlhxFUR4zJCtJ0teFfwsC+TR7GXWS5Tf3pxG+/Lf4mgkpKhOY+Q=="
+ },
+ "node_modules/langium-domainmodel-dsl": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/langium-domainmodel-dsl/-/langium-domainmodel-dsl-3.0.0.tgz",
+ "integrity": "sha512-wBVjpPtT6D/j44+oPDnyEZlc3kDyFO4kfz+26jNDZ6Tpq1lOCdWqxMs6WD45YAai8yC8vuyzWumPOkqO/aFnKg==",
+ "dependencies": {
+ "chalk": "~5.3.0",
+ "commander": "~11.0.0",
+ "langium": "~3.0.0",
+ "lodash": "~4.17.21",
+ "vscode-languageclient": "~9.0.1",
+ "vscode-languageserver": "~9.0.1"
+ },
+ "bin": {
+ "domainmodel-cli": "bin/cli.js"
+ },
+ "engines": {
+ "vscode": "^1.67.0"
+ }
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/@chevrotain/cst-dts-gen": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz",
+ "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==",
+ "dependencies": {
+ "@chevrotain/gast": "11.0.3",
+ "@chevrotain/types": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/@chevrotain/gast": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz",
+ "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==",
+ "dependencies": {
+ "@chevrotain/types": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/@chevrotain/types": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz",
+ "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ=="
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/@chevrotain/utils": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz",
+ "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ=="
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/chalk": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/chevrotain": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz",
+ "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==",
+ "dependencies": {
+ "@chevrotain/cst-dts-gen": "11.0.3",
+ "@chevrotain/gast": "11.0.3",
+ "@chevrotain/regexp-to-ast": "11.0.3",
+ "@chevrotain/types": "11.0.3",
+ "@chevrotain/utils": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/chevrotain-allstar": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz",
+ "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==",
+ "dependencies": {
+ "lodash-es": "^4.17.21"
+ },
+ "peerDependencies": {
+ "chevrotain": "^11.0.0"
+ }
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/commander": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz",
+ "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==",
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/langium": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/langium/-/langium-3.0.0.tgz",
+ "integrity": "sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==",
+ "dependencies": {
+ "chevrotain": "~11.0.3",
+ "chevrotain-allstar": "~0.3.0",
+ "vscode-languageserver": "~9.0.1",
+ "vscode-languageserver-textdocument": "~1.0.11",
+ "vscode-uri": "~3.0.8"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/vscode-jsonrpc": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
+ "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/vscode-languageclient": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-9.0.1.tgz",
+ "integrity": "sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA==",
+ "dependencies": {
+ "minimatch": "^5.1.0",
+ "semver": "^7.3.7",
+ "vscode-languageserver-protocol": "3.17.5"
+ },
+ "engines": {
+ "vscode": "^1.82.0"
+ }
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/vscode-languageserver": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
+ "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==",
+ "dependencies": {
+ "vscode-languageserver-protocol": "3.17.5"
+ },
+ "bin": {
+ "installServerIntoExtension": "bin/installServerIntoExtension"
+ }
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/vscode-languageserver-protocol": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
+ "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
+ "dependencies": {
+ "vscode-jsonrpc": "8.2.0",
+ "vscode-languageserver-types": "3.17.5"
+ }
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/vscode-languageserver-types": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
+ "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
+ "node_modules/langium-statemachine-dsl": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/langium-statemachine-dsl/-/langium-statemachine-dsl-3.0.0.tgz",
+ "integrity": "sha512-xLCskFijxSZs69CN02NpCgdYWMRIzsNzuW4uzO7gujIKAmmhIDhSJY4zpoZ7p9ahcF8fcjTHLbgq/CT4OtqiqA==",
+ "dependencies": {
+ "chalk": "~5.3.0",
+ "commander": "~11.0.0",
+ "langium": "~3.0.0",
+ "vscode-languageclient": "~9.0.1",
+ "vscode-languageserver": "~9.0.1"
+ },
+ "bin": {
+ "statemachine-cli": "bin/cli.js"
+ },
+ "engines": {
+ "vscode": "^1.67.0"
+ }
+ },
+ "node_modules/langium-statemachine-dsl/node_modules/@chevrotain/cst-dts-gen": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz",
+ "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==",
+ "dependencies": {
+ "@chevrotain/gast": "11.0.3",
+ "@chevrotain/types": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "node_modules/langium-statemachine-dsl/node_modules/@chevrotain/gast": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz",
+ "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==",
+ "dependencies": {
+ "@chevrotain/types": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "node_modules/langium-statemachine-dsl/node_modules/@chevrotain/types": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz",
+ "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ=="
+ },
+ "node_modules/langium-statemachine-dsl/node_modules/@chevrotain/utils": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz",
+ "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ=="
+ },
+ "node_modules/langium-statemachine-dsl/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/langium-statemachine-dsl/node_modules/chalk": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/langium-statemachine-dsl/node_modules/chevrotain": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz",
+ "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==",
+ "dependencies": {
+ "@chevrotain/cst-dts-gen": "11.0.3",
+ "@chevrotain/gast": "11.0.3",
+ "@chevrotain/regexp-to-ast": "11.0.3",
+ "@chevrotain/types": "11.0.3",
+ "@chevrotain/utils": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "node_modules/langium-statemachine-dsl/node_modules/chevrotain-allstar": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz",
+ "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==",
+ "dependencies": {
+ "lodash-es": "^4.17.21"
+ },
+ "peerDependencies": {
+ "chevrotain": "^11.0.0"
+ }
+ },
+ "node_modules/langium-statemachine-dsl/node_modules/commander": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz",
+ "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==",
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/langium-statemachine-dsl/node_modules/langium": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/langium/-/langium-3.0.0.tgz",
+ "integrity": "sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==",
+ "dependencies": {
+ "chevrotain": "~11.0.3",
+ "chevrotain-allstar": "~0.3.0",
+ "vscode-languageserver": "~9.0.1",
+ "vscode-languageserver-textdocument": "~1.0.11",
+ "vscode-uri": "~3.0.8"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/langium-statemachine-dsl/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/langium-statemachine-dsl/node_modules/minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/langium-statemachine-dsl/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
},
"bin": {
- "statemachine-cli": "bin/cli"
+ "semver": "bin/semver.js"
},
"engines": {
- "vscode": "^1.67.0"
+ "node": ">=10"
}
},
- "node_modules/langium-statemachine-dsl/node_modules/commander": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
- "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
+ "node_modules/langium-statemachine-dsl/node_modules/vscode-jsonrpc": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
+ "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/langium-statemachine-dsl/node_modules/vscode-languageclient": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-9.0.1.tgz",
+ "integrity": "sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA==",
+ "dependencies": {
+ "minimatch": "^5.1.0",
+ "semver": "^7.3.7",
+ "vscode-languageserver-protocol": "3.17.5"
+ },
"engines": {
- "node": ">=14"
+ "vscode": "^1.82.0"
+ }
+ },
+ "node_modules/langium-statemachine-dsl/node_modules/vscode-languageserver": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
+ "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==",
+ "dependencies": {
+ "vscode-languageserver-protocol": "3.17.5"
+ },
+ "bin": {
+ "installServerIntoExtension": "bin/installServerIntoExtension"
+ }
+ },
+ "node_modules/langium-statemachine-dsl/node_modules/vscode-languageserver-protocol": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
+ "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
+ "dependencies": {
+ "vscode-jsonrpc": "8.2.0",
+ "vscode-languageserver-types": "3.17.5"
}
},
+ "node_modules/langium-statemachine-dsl/node_modules/vscode-languageserver-types": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
+ "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
+ },
+ "node_modules/langium-statemachine-dsl/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
"node_modules/langium-website-core": {
"resolved": "core",
"link": true
@@ -4434,34 +4596,6 @@
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
},
- "node_modules/lit": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/lit/-/lit-2.5.0.tgz",
- "integrity": "sha512-DtnUP6vR3l4Q8nRPPNBD+UxbAhwJPeky+OVbi3pdgMqm0g57xFSl1Sj64D1rIB+nVNdiVVg8YxB0hqKjvdadZA==",
- "dependencies": {
- "@lit/reactive-element": "^1.5.0",
- "lit-element": "^3.2.0",
- "lit-html": "^2.5.0"
- }
- },
- "node_modules/lit-element": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.2.tgz",
- "integrity": "sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ==",
- "dependencies": {
- "@lit-labs/ssr-dom-shim": "^1.1.0",
- "@lit/reactive-element": "^1.3.0",
- "lit-html": "^2.7.0"
- }
- },
- "node_modules/lit-html": {
- "version": "2.7.5",
- "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.7.5.tgz",
- "integrity": "sha512-YqUzpisJodwKIlbMFCtyrp58oLloKGnnPLMJ1t23cbfIJjg/H9pvLWK4XS69YeubK5HUs1UE4ys9w5dP1zg6IA==",
- "dependencies": {
- "@types/trusted-types": "^2.0.2"
- }
- },
"node_modules/locate-path": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
@@ -4481,6 +4615,11 @@
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
+ "node_modules/lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+ },
"node_modules/log-symbols": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz",
@@ -4582,19 +4721,6 @@
"semver": "bin/semver"
}
},
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
- },
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@@ -4603,14 +4729,6 @@
"node": ">= 8"
}
},
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/micromatch": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
@@ -4623,36 +4741,6 @@
"node": ">=8.6"
}
},
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/mimic-response": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
@@ -4686,98 +4774,6 @@
"resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.44.0.tgz",
"integrity": "sha512-5SmjNStN6bSuSE5WPT2ZV+iYn1/yI9sd4Igtk23ChvqB7kDk9lZbB9F5frsuvpB+2njdIeGGFf2G4gbE6rCC9Q=="
},
- "node_modules/monaco-editor-comp": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/monaco-editor-comp/-/monaco-editor-comp-1.6.0.tgz",
- "integrity": "sha512-LGOubZ2YdyiwvoJGU732wTTpQ5LqU/Mx/WiN4tDVTWrAlDUyLPMqMLiow5erA5Rc7b6i+whNhyq9M5/g9CGOhw==",
- "dependencies": {
- "lit": "~2.5.0",
- "monaco-editor-wrapper": "1.6.0"
- }
- },
- "node_modules/monaco-editor-comp/node_modules/monaco-editor": {
- "version": "0.34.1",
- "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.34.1.tgz",
- "integrity": "sha512-FKc80TyiMaruhJKKPz5SpJPIjL+dflGvz4CpuThaPMc94AyN7SeC9HQ8hrvaxX7EyHdJcUY5i4D0gNyJj1vSZQ==",
- "peer": true
- },
- "node_modules/monaco-editor-comp/node_modules/monaco-editor-wrapper": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/monaco-editor-wrapper/-/monaco-editor-wrapper-1.6.0.tgz",
- "integrity": "sha512-ETGAicvsGER2QUl0aUhm0K3gXPiQnidrMXkUEzdipTtkNKfoCt3+IgxxoUY1oYbaPNEyN7Vj9Tp5NoTMYxd47Q==",
- "dependencies": {
- "@types/css-font-loading-module": "~0.0.7",
- "monaco-languageclient": "4.0.3",
- "normalize-url": "~8.0.0",
- "vscode-languageserver-protocol": "3.17.2",
- "vscode-ws-jsonrpc": "2.0.1"
- }
- },
- "node_modules/monaco-editor-comp/node_modules/monaco-languageclient": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-4.0.3.tgz",
- "integrity": "sha512-1mGIUb5PFRknITBhNxgH0SnQy1/jntt9oo0cQpOl3HdhYEL/CYK2UrsZZX7Udqmz1PXKyRIzQ3tZ7dJn4mzWtA==",
- "dependencies": {
- "vscode": "npm:@codingame/monaco-vscode-api@1.69.13",
- "vscode-jsonrpc": "8.0.2",
- "vscode-languageclient": "8.0.2"
- },
- "engines": {
- "node": ">=16.11.0",
- "npm": ">=8.0.0"
- },
- "peerDependencies": {
- "vscode": ">= npm:@codingame/monaco-vscode-api@1.69.0 < npm:@codingame/monaco-vscode-api@1.70.0"
- }
- },
- "node_modules/monaco-editor-comp/node_modules/normalize-url": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz",
- "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==",
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/monaco-editor-comp/node_modules/vscode": {
- "name": "@codingame/monaco-vscode-api",
- "version": "1.69.13",
- "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-1.69.13.tgz",
- "integrity": "sha512-7+dQbQ5O8mQhFyUcAiiJkCotNjZUzRxh4NMBKc/BSIFi0jG47bay+jP/+ngsmxHBapjs/xUAPaKSGNnf9WBmAA==",
- "peerDependencies": {
- "monaco-editor": "~0.34.0",
- "vscode-oniguruma": "^1.6.2",
- "vscode-textmate": "^7.0.1"
- }
- },
- "node_modules/monaco-editor-comp/node_modules/vscode-jsonrpc": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2.tgz",
- "integrity": "sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==",
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/monaco-editor-comp/node_modules/vscode-textmate": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-7.0.4.tgz",
- "integrity": "sha512-9hJp0xL7HW1Q5OgGe03NACo7yiCTMEk3WU/rtKXUbncLtdg6rVVNJnHwD88UhbIYU2KoxY0Dih0x+kIsmUKn2A==",
- "peer": true
- },
- "node_modules/monaco-editor-comp/node_modules/vscode-ws-jsonrpc": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/vscode-ws-jsonrpc/-/vscode-ws-jsonrpc-2.0.1.tgz",
- "integrity": "sha512-ne5DO8/qe8tHt1U4LafLiYS832Yd4OltkP4+YZVOQwqGEU5nwLwZowUBqqEWt8sOZ0eLdCLV9luotGC2aUQ+LA==",
- "dependencies": {
- "vscode-jsonrpc": "8.0.2"
- },
- "engines": {
- "node": ">=16.11.0",
- "npm": ">=8.0.0"
- }
- },
"node_modules/monaco-editor-workers": {
"version": "0.44.0",
"resolved": "https://registry.npmjs.org/monaco-editor-workers/-/monaco-editor-workers-0.44.0.tgz",
@@ -5038,14 +5034,6 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
- "node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/node-releases": {
"version": "2.0.13",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz",
@@ -5141,25 +5129,6 @@
"node": ">= 6"
}
},
- "node_modules/object-inspect": {
- "version": "1.12.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
- "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -5235,14 +5204,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/path-exists": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
@@ -5274,11 +5235,6 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true
},
- "node_modules/path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
- },
"node_modules/path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@@ -5471,18 +5427,6 @@
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/pump": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
@@ -5492,20 +5436,6 @@
"once": "^1.3.1"
}
},
- "node_modules/qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dependencies": {
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -5536,28 +5466,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
- "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
- "dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/react": {
"version": "18.2.0",
"resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
@@ -5672,11 +5580,6 @@
"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
"dev": true
},
- "node_modules/regexp-to-ast": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz",
- "integrity": "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw=="
- },
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -5856,66 +5759,6 @@
"semver": "bin/semver.js"
}
},
- "node_modules/send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/send/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/send/node_modules/debug/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/send/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "node_modules/serve-static": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
- "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
- "dependencies": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.18.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -5979,19 +5822,6 @@
"node": ">=6"
}
},
- "node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/slash": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
@@ -6043,14 +5873,6 @@
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz",
"integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w=="
},
- "node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
@@ -6261,14 +6083,6 @@
"node": ">=8.0"
}
},
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "engines": {
- "node": ">=0.6"
- }
- },
"node_modules/tree-kill": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
@@ -6295,18 +6109,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/typescript": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
@@ -6351,14 +6153,6 @@
"node": ">= 10.0.0"
}
},
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/update-browserslist-db": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
@@ -6393,14 +6187,6 @@
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
"node_modules/validate-npm-package-license": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
@@ -6410,14 +6196,6 @@
"spdx-expression-parse": "^3.0.0"
}
},
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/vite": {
"version": "4.4.11",
"resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz",
@@ -6562,49 +6340,6 @@
"node": ">=14.0.0"
}
},
- "node_modules/vscode-languageclient": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-8.0.2.tgz",
- "integrity": "sha512-lHlthJtphG9gibGb/y72CKqQUxwPsMXijJVpHEC2bvbFqxmkj9LwQ3aGU9dwjBLqsX1S4KjShYppLvg1UJDF/Q==",
- "dependencies": {
- "minimatch": "^3.0.4",
- "semver": "^7.3.5",
- "vscode-languageserver-protocol": "3.17.2"
- },
- "engines": {
- "vscode": "^1.67.0"
- }
- },
- "node_modules/vscode-languageclient/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/vscode-languageclient/node_modules/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/vscode-languageclient/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
"node_modules/vscode-languageserver": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.0.2.tgz",
@@ -6634,9 +6369,9 @@
}
},
"node_modules/vscode-languageserver-textdocument": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz",
- "integrity": "sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q=="
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz",
+ "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA=="
},
"node_modules/vscode-languageserver-types": {
"version": "3.17.2",
@@ -6654,9 +6389,9 @@
"integrity": "sha512-Cl65diFGxz7gpwbav10HqiY/eVYTO1sjQpmRmV991Bj7wAoOAjGQ97PpQcXorDE2Uc4hnGWLY17xme+5t6MlSg=="
},
"node_modules/vscode-uri": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz",
- "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA=="
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz",
+ "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw=="
},
"node_modules/vscode-ws-jsonrpc": {
"version": "3.0.0",
From 0d63cd8db7ee6e939d1ed40b89081aff45236bd5 Mon Sep 17 00:00:00 2001
From: Markus Rudolph
Date: Mon, 11 Mar 2024 11:30:03 +0100
Subject: [PATCH 02/14] Intermediate save
---
hugo/content/playground/common.ts | 3 +-
hugo/content/playground/langium-worker.ts | 6 +-
hugo/content/playground/monarch-generator.ts | 37 +-
hugo/content/playground/user-worker.ts | 5 +-
hugo/package.json | 1 +
package-lock.json | 587 +++++++------------
6 files changed, 243 insertions(+), 396 deletions(-)
diff --git a/hugo/content/playground/common.ts b/hugo/content/playground/common.ts
index 30641631..054c916c 100644
--- a/hugo/content/playground/common.ts
+++ b/hugo/content/playground/common.ts
@@ -16,8 +16,7 @@ import { render } from './Tree';
import { overlay, throttle } from "./utils";
import { addMonacoStyles, createUserConfig, MonacoEditorLanguageClientWrapper } from "langium-website-core/bundle";
import { DocumentChangeResponse } from "langium-ast-helper";
-import { createServicesForGrammar } from "langium/lib/grammar";
-import { DefaultAstNodeLocator } from "langium/lib/workspace/ast-node-locator";
+import { createServicesForGrammar, DefaultAstNodeLocator } from "langium";
export { share, overlay } from './utils';
export { addMonacoStyles, MonacoEditorLanguageClientWrapper };
diff --git a/hugo/content/playground/langium-worker.ts b/hugo/content/playground/langium-worker.ts
index a6bd9f81..05cdfc30 100644
--- a/hugo/content/playground/langium-worker.ts
+++ b/hugo/content/playground/langium-worker.ts
@@ -6,10 +6,8 @@
import { NotificationType } from 'vscode-languageserver/browser';
import { DocumentChange, createServerConnection } from './worker-utils';
-import { createLangiumGrammarServices } from 'langium/lib/grammar';
-import { startLanguageServer } from 'langium/lib/lsp';
-import { DocumentState } from 'langium/lib/workspace/documents';
-import { EmptyFileSystem } from 'langium/lib/workspace/file-system-provider';
+import { EmptyFileSystem, createLangiumGrammarServices, DocumentState } from 'langium';
+import { startLanguageServer } from 'langium/lsp';
// establish a browser server connection
const connection = createServerConnection();
diff --git a/hugo/content/playground/monarch-generator.ts b/hugo/content/playground/monarch-generator.ts
index 85ac25b1..59336082 100644
--- a/hugo/content/playground/monarch-generator.ts
+++ b/hugo/content/playground/monarch-generator.ts
@@ -4,10 +4,9 @@
* terms of the MIT License, which is available in the project root.
******************************************************************************/
-import { isCommentTerminal, terminalRegex } from "langium/lib/utils/grammar-utils";
-import { stream } from "langium/lib/utils/stream";
-import { escapeRegExp, getTerminalParts } from "langium/lib/utils/regexp-utils";
-import ast from "langium/lib/languages/generated/ast";
+import { isCommentTerminal, terminalRegex, stream, escapeRegExp, getTerminalParts } from "langium";
+import ast from "langium";
+import { languages } from "monaco-editor";
/**
* Monarch Language Definition, describes aspects & token categories of target language
@@ -120,7 +119,7 @@ interface MonarchGrammar {
* @param config Langium Config to also use during generation
* @returns Generated Monarch syntax highlighting file content
*/
-export function generateMonarch(grammar: ast.Grammar, id: string) {
+export function generateMonarch(grammar: ast.Grammar, id: string): languages.IMonarchLanguage {
const symbols = getSymbols(grammar);
const regex = /[{}[\]()]/;
const operators = symbols.filter((s) => !regex.test(s));
@@ -195,14 +194,14 @@ function getTokenizerStates(grammar: ast.Grammar): State[] {
* @param monarchGrammar Grammar to pretty print
* @returns Monarch grammar in concrete form
*/
-function prettyPrint(monarchGrammar: MonarchGrammar) {
+function prettyPrint(monarchGrammar: MonarchGrammar): languages.IMonarchLanguage {
const name = monarchGrammar.languageDefinition.name;
const languages = prettyPrintLangDef(monarchGrammar.languageDefinition);
const tokenizer = prettyPrintTokenizer(monarchGrammar.tokenizer);
return {
...languages,
- ...tokenizer
+ tokenizer
};
}
@@ -237,20 +236,20 @@ function prettyPrintLangDef(
* Pretty prints the tokenizer portion of a Monarch grammar file
* @param tokenizer Tokenizer portion to print out
*/
-function prettyPrintTokenizer(tokenizer: Tokenizer) {
+function prettyPrintTokenizer(tokenizer: Tokenizer): {
+ [name: string]: languages.IMonarchLanguageRule[];
+} {
const result = tokenizer.states
.map((s) => prettyPrintState(s))
.reduce((lhs, rhs) => ({ ...lhs, ...rhs }), {});
- return {
- tokenizer: result,
- };
+ return result;
}
/**
* Pretty prints a tokenizer state, composed of various rules
* @param state Tokenizer state to pretty print
*/
-function prettyPrintState(state: State) {
+function prettyPrintState(state: State): {[name: string]: languages.IMonarchLanguageRule[]} {
return {
[state.name]: state.rules.map((r) => prettyPrintRule(r)),
};
@@ -262,15 +261,13 @@ function prettyPrintState(state: State) {
* @param ruleOrState Rule to pretty print. If it's a state, we include that state's contents implicitly within this context.
* @returns Generator node containing this printed rule
*/
-function prettyPrintRule(ruleOrState: Rule | State): Rule {
+function prettyPrintRule(ruleOrState: Rule | State): languages.IMonarchLanguageRule {
if (isRegexRule(ruleOrState)) {
- return {
- regex:
- ruleOrState.regex instanceof RegExp
- ? ruleOrState.regex
- : new RegExp(ruleOrState.regex),
- action: prettyPrintAction(ruleOrState.action),
- };
+ const regex = ruleOrState.regex instanceof RegExp
+ ? ruleOrState.regex
+ : new RegExp(ruleOrState.regex);
+ const action = prettyPrintAction(ruleOrState.action);
+ return [regex, action] as const;
} else if (isIncludeRule(ruleOrState)) {
return ruleOrState;
} else {
diff --git a/hugo/content/playground/user-worker.ts b/hugo/content/playground/user-worker.ts
index a2c7c33d..c77c2467 100644
--- a/hugo/content/playground/user-worker.ts
+++ b/hugo/content/playground/user-worker.ts
@@ -6,9 +6,8 @@
import { NotificationType } from 'vscode-languageserver/browser.js';
import { DocumentChange, createServerConnection } from './worker-utils';
-import { createServicesForGrammar } from 'langium/lib/grammar';
-import { startLanguageServer } from 'langium/lib/lsp';
-import { DocumentState } from 'langium/lib/workspace/documents';
+import { startLanguageServer } from 'langium/lsp';
+import { DocumentState, createServicesForGrammar } from 'langium';
// listen for messages to trigger starting the LS with a given grammar
addEventListener('message', async (event) => {
diff --git a/hugo/package.json b/hugo/package.json
index 26395076..d08eb5a1 100644
--- a/hugo/package.json
+++ b/hugo/package.json
@@ -4,6 +4,7 @@
"author": "TypeFox",
"license": "MIT",
"private": true,
+ "type": "module",
"scripts": {
"clean:static": "shx rm -rf ./static/showcase ./static/playground ./static/libs",
"copy:libs:prepare": "shx mkdir -p ./static/libs/monaco-editor-workers/workers",
diff --git a/package-lock.json b/package-lock.json
index 0c7f46b2..3dd569d2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -99,107 +99,6 @@
"esbuild": "~0.19.4"
}
},
- "hugo/node_modules/@chevrotain/cst-dts-gen": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz",
- "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==",
- "dependencies": {
- "@chevrotain/gast": "11.0.3",
- "@chevrotain/types": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "hugo/node_modules/@chevrotain/gast": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz",
- "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==",
- "dependencies": {
- "@chevrotain/types": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "hugo/node_modules/@chevrotain/types": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz",
- "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ=="
- },
- "hugo/node_modules/@chevrotain/utils": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz",
- "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ=="
- },
- "hugo/node_modules/chevrotain": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz",
- "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==",
- "dependencies": {
- "@chevrotain/cst-dts-gen": "11.0.3",
- "@chevrotain/gast": "11.0.3",
- "@chevrotain/regexp-to-ast": "11.0.3",
- "@chevrotain/types": "11.0.3",
- "@chevrotain/utils": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "hugo/node_modules/chevrotain-allstar": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz",
- "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==",
- "dependencies": {
- "lodash-es": "^4.17.21"
- },
- "peerDependencies": {
- "chevrotain": "^11.0.0"
- }
- },
- "hugo/node_modules/langium": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/langium/-/langium-3.0.0.tgz",
- "integrity": "sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==",
- "dependencies": {
- "chevrotain": "~11.0.3",
- "chevrotain-allstar": "~0.3.0",
- "vscode-languageserver": "~9.0.1",
- "vscode-languageserver-textdocument": "~1.0.11",
- "vscode-uri": "~3.0.8"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "hugo/node_modules/langium/node_modules/vscode-languageserver": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
- "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==",
- "dependencies": {
- "vscode-languageserver-protocol": "3.17.5"
- },
- "bin": {
- "installServerIntoExtension": "bin/installServerIntoExtension"
- }
- },
- "hugo/node_modules/vscode-jsonrpc": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
- "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "hugo/node_modules/vscode-languageserver-protocol": {
- "version": "3.17.5",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
- "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
- "dependencies": {
- "vscode-jsonrpc": "8.2.0",
- "vscode-languageserver-types": "3.17.5"
- }
- },
- "hugo/node_modules/vscode-languageserver-types": {
- "version": "3.17.5",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
- "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
- },
"node_modules/@ampproject/remapping": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
@@ -241,16 +140,73 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz",
- "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==",
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
+ "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
"dependencies": {
- "@babel/highlight": "^7.22.5"
+ "@babel/highlight": "^7.23.4",
+ "chalk": "^2.4.2"
},
"engines": {
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/code-frame/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/@babel/code-frame/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/@babel/compat-data": {
"version": "7.22.9",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz",
@@ -289,11 +245,11 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz",
- "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==",
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz",
+ "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
"dependencies": {
- "@babel/types": "^7.22.5",
+ "@babel/types": "^7.23.6",
"@jridgewell/gen-mapping": "^0.3.2",
"@jridgewell/trace-mapping": "^0.3.17",
"jsesc": "^2.5.1"
@@ -354,20 +310,20 @@
}
},
"node_modules/@babel/helper-environment-visitor": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz",
- "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-function-name": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz",
- "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
"dependencies": {
- "@babel/template": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
},
"engines": {
"node": ">=6.9.0"
@@ -493,17 +449,17 @@
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
- "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
+ "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz",
- "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
"engines": {
"node": ">=6.9.0"
}
@@ -530,12 +486,12 @@
}
},
"node_modules/@babel/highlight": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz",
- "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
+ "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.22.5",
- "chalk": "^2.0.0",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
"js-tokens": "^4.0.0"
},
"engines": {
@@ -599,9 +555,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.22.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz",
- "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==",
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz",
+ "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==",
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -763,32 +719,32 @@
}
},
"node_modules/@babel/template": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz",
- "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==",
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz",
+ "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==",
"dependencies": {
- "@babel/code-frame": "^7.22.5",
- "@babel/parser": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "@babel/code-frame": "^7.23.5",
+ "@babel/parser": "^7.24.0",
+ "@babel/types": "^7.24.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.22.8",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz",
- "integrity": "sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==",
- "dependencies": {
- "@babel/code-frame": "^7.22.5",
- "@babel/generator": "^7.22.7",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz",
+ "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==",
+ "dependencies": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
"@babel/helper-hoist-variables": "^7.22.5",
"@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/parser": "^7.22.7",
- "@babel/types": "^7.22.5",
- "debug": "^4.1.0",
+ "@babel/parser": "^7.24.0",
+ "@babel/types": "^7.24.0",
+ "debug": "^4.3.1",
"globals": "^11.1.0"
},
"engines": {
@@ -796,23 +752,52 @@
}
},
"node_modules/@babel/types": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz",
- "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==",
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz",
+ "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==",
"dependencies": {
- "@babel/helper-string-parser": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.5",
+ "@babel/helper-string-parser": "^7.23.4",
+ "@babel/helper-validator-identifier": "^7.22.20",
"to-fast-properties": "^2.0.0"
},
"engines": {
"node": ">=6.9.0"
}
},
+ "node_modules/@chevrotain/cst-dts-gen": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz",
+ "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==",
+ "dependencies": {
+ "@chevrotain/gast": "11.0.3",
+ "@chevrotain/types": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "node_modules/@chevrotain/gast": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz",
+ "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==",
+ "dependencies": {
+ "@chevrotain/types": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
"node_modules/@chevrotain/regexp-to-ast": {
"version": "11.0.3",
"resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz",
"integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA=="
},
+ "node_modules/@chevrotain/types": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz",
+ "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ=="
+ },
+ "node_modules/@chevrotain/utils": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz",
+ "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ=="
+ },
"node_modules/@codingame/monaco-vscode-configuration-service-override": {
"version": "1.83.2",
"resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-configuration-service-override/-/monaco-vscode-configuration-service-override-1.83.2.tgz",
@@ -2121,6 +2106,30 @@
"node": ">=8"
}
},
+ "node_modules/chevrotain": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz",
+ "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==",
+ "dependencies": {
+ "@chevrotain/cst-dts-gen": "11.0.3",
+ "@chevrotain/gast": "11.0.3",
+ "@chevrotain/regexp-to-ast": "11.0.3",
+ "@chevrotain/types": "11.0.3",
+ "@chevrotain/utils": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "node_modules/chevrotain-allstar": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz",
+ "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==",
+ "dependencies": {
+ "lodash-es": "^4.17.21"
+ },
+ "peerDependencies": {
+ "chevrotain": "^11.0.0"
+ }
+ },
"node_modules/chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@@ -3964,6 +3973,21 @@
"json-buffer": "3.0.1"
}
},
+ "node_modules/langium": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/langium/-/langium-3.0.0.tgz",
+ "integrity": "sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==",
+ "dependencies": {
+ "chevrotain": "~11.0.3",
+ "chevrotain-allstar": "~0.3.0",
+ "vscode-languageserver": "~9.0.1",
+ "vscode-languageserver-textdocument": "~1.0.11",
+ "vscode-uri": "~3.0.8"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
"node_modules/langium-arithmetics-dsl": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/langium-arithmetics-dsl/-/langium-arithmetics-dsl-3.0.0.tgz",
@@ -3982,35 +4006,6 @@
"vscode": "^1.67.0"
}
},
- "node_modules/langium-arithmetics-dsl/node_modules/@chevrotain/cst-dts-gen": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz",
- "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==",
- "dependencies": {
- "@chevrotain/gast": "11.0.3",
- "@chevrotain/types": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "node_modules/langium-arithmetics-dsl/node_modules/@chevrotain/gast": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz",
- "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==",
- "dependencies": {
- "@chevrotain/types": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "node_modules/langium-arithmetics-dsl/node_modules/@chevrotain/types": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz",
- "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ=="
- },
- "node_modules/langium-arithmetics-dsl/node_modules/@chevrotain/utils": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz",
- "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ=="
- },
"node_modules/langium-arithmetics-dsl/node_modules/brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
@@ -4030,30 +4025,6 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/langium-arithmetics-dsl/node_modules/chevrotain": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz",
- "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==",
- "dependencies": {
- "@chevrotain/cst-dts-gen": "11.0.3",
- "@chevrotain/gast": "11.0.3",
- "@chevrotain/regexp-to-ast": "11.0.3",
- "@chevrotain/types": "11.0.3",
- "@chevrotain/utils": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "node_modules/langium-arithmetics-dsl/node_modules/chevrotain-allstar": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz",
- "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==",
- "dependencies": {
- "lodash-es": "^4.17.21"
- },
- "peerDependencies": {
- "chevrotain": "^11.0.0"
- }
- },
"node_modules/langium-arithmetics-dsl/node_modules/commander": {
"version": "11.0.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz",
@@ -4062,21 +4033,6 @@
"node": ">=16"
}
},
- "node_modules/langium-arithmetics-dsl/node_modules/langium": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/langium/-/langium-3.0.0.tgz",
- "integrity": "sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==",
- "dependencies": {
- "chevrotain": "~11.0.3",
- "chevrotain-allstar": "~0.3.0",
- "vscode-languageserver": "~9.0.1",
- "vscode-languageserver-textdocument": "~1.0.11",
- "vscode-uri": "~3.0.8"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
"node_modules/langium-arithmetics-dsl/node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
@@ -4188,35 +4144,6 @@
"vscode": "^1.67.0"
}
},
- "node_modules/langium-domainmodel-dsl/node_modules/@chevrotain/cst-dts-gen": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz",
- "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==",
- "dependencies": {
- "@chevrotain/gast": "11.0.3",
- "@chevrotain/types": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "node_modules/langium-domainmodel-dsl/node_modules/@chevrotain/gast": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz",
- "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==",
- "dependencies": {
- "@chevrotain/types": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "node_modules/langium-domainmodel-dsl/node_modules/@chevrotain/types": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz",
- "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ=="
- },
- "node_modules/langium-domainmodel-dsl/node_modules/@chevrotain/utils": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz",
- "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ=="
- },
"node_modules/langium-domainmodel-dsl/node_modules/brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
@@ -4236,30 +4163,6 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/langium-domainmodel-dsl/node_modules/chevrotain": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz",
- "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==",
- "dependencies": {
- "@chevrotain/cst-dts-gen": "11.0.3",
- "@chevrotain/gast": "11.0.3",
- "@chevrotain/regexp-to-ast": "11.0.3",
- "@chevrotain/types": "11.0.3",
- "@chevrotain/utils": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "node_modules/langium-domainmodel-dsl/node_modules/chevrotain-allstar": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz",
- "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==",
- "dependencies": {
- "lodash-es": "^4.17.21"
- },
- "peerDependencies": {
- "chevrotain": "^11.0.0"
- }
- },
"node_modules/langium-domainmodel-dsl/node_modules/commander": {
"version": "11.0.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz",
@@ -4268,21 +4171,6 @@
"node": ">=16"
}
},
- "node_modules/langium-domainmodel-dsl/node_modules/langium": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/langium/-/langium-3.0.0.tgz",
- "integrity": "sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==",
- "dependencies": {
- "chevrotain": "~11.0.3",
- "chevrotain-allstar": "~0.3.0",
- "vscode-languageserver": "~9.0.1",
- "vscode-languageserver-textdocument": "~1.0.11",
- "vscode-uri": "~3.0.8"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
"node_modules/langium-domainmodel-dsl/node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
@@ -4388,35 +4276,6 @@
"vscode": "^1.67.0"
}
},
- "node_modules/langium-statemachine-dsl/node_modules/@chevrotain/cst-dts-gen": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz",
- "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==",
- "dependencies": {
- "@chevrotain/gast": "11.0.3",
- "@chevrotain/types": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "node_modules/langium-statemachine-dsl/node_modules/@chevrotain/gast": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz",
- "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==",
- "dependencies": {
- "@chevrotain/types": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "node_modules/langium-statemachine-dsl/node_modules/@chevrotain/types": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz",
- "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ=="
- },
- "node_modules/langium-statemachine-dsl/node_modules/@chevrotain/utils": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz",
- "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ=="
- },
"node_modules/langium-statemachine-dsl/node_modules/brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
@@ -4436,30 +4295,6 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/langium-statemachine-dsl/node_modules/chevrotain": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz",
- "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==",
- "dependencies": {
- "@chevrotain/cst-dts-gen": "11.0.3",
- "@chevrotain/gast": "11.0.3",
- "@chevrotain/regexp-to-ast": "11.0.3",
- "@chevrotain/types": "11.0.3",
- "@chevrotain/utils": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "node_modules/langium-statemachine-dsl/node_modules/chevrotain-allstar": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz",
- "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==",
- "dependencies": {
- "lodash-es": "^4.17.21"
- },
- "peerDependencies": {
- "chevrotain": "^11.0.0"
- }
- },
"node_modules/langium-statemachine-dsl/node_modules/commander": {
"version": "11.0.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz",
@@ -4468,21 +4303,6 @@
"node": ">=16"
}
},
- "node_modules/langium-statemachine-dsl/node_modules/langium": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/langium/-/langium-3.0.0.tgz",
- "integrity": "sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==",
- "dependencies": {
- "chevrotain": "~11.0.3",
- "chevrotain-allstar": "~0.3.0",
- "vscode-languageserver": "~9.0.1",
- "vscode-languageserver-textdocument": "~1.0.11",
- "vscode-uri": "~3.0.8"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
"node_modules/langium-statemachine-dsl/node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
@@ -4582,6 +4402,39 @@
"resolved": "tailwind",
"link": true
},
+ "node_modules/langium/node_modules/vscode-jsonrpc": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
+ "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/langium/node_modules/vscode-languageserver": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
+ "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==",
+ "dependencies": {
+ "vscode-languageserver-protocol": "3.17.5"
+ },
+ "bin": {
+ "installServerIntoExtension": "bin/installServerIntoExtension"
+ }
+ },
+ "node_modules/langium/node_modules/vscode-languageserver-protocol": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
+ "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
+ "dependencies": {
+ "vscode-jsonrpc": "8.2.0",
+ "vscode-languageserver-types": "3.17.5"
+ }
+ },
+ "node_modules/langium/node_modules/vscode-languageserver-types": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
+ "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
+ },
"node_modules/lilconfig": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
@@ -5017,9 +4870,9 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
"dev": true,
"funding": [
{
@@ -5292,9 +5145,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.27",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz",
- "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==",
+ "version": "8.4.35",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz",
+ "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
"dev": true,
"funding": [
{
@@ -5311,7 +5164,7 @@
}
],
"dependencies": {
- "nanoid": "^3.3.6",
+ "nanoid": "^3.3.7",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
},
@@ -6197,9 +6050,9 @@
}
},
"node_modules/vite": {
- "version": "4.4.11",
- "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz",
- "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==",
+ "version": "4.4.12",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.12.tgz",
+ "integrity": "sha512-KtPlUbWfxzGVul8Nut8Gw2Qe8sBzWY+8QVc5SL8iRFnpnrcoCaNlzO40c1R6hPmcdTwIPEDkq0Y9+27a5tVbdQ==",
"dev": true,
"dependencies": {
"esbuild": "^0.18.10",
From ad2c78d1eced1f12b112d8f54f13a0f25c0256e7 Mon Sep 17 00:00:00 2001
From: Markus Rudolph
Date: Mon, 11 Mar 2024 11:57:04 +0100
Subject: [PATCH 03/14] Rename Babel config
---
hugo/{babel.config.js => babel.config.cjs} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename hugo/{babel.config.js => babel.config.cjs} (100%)
diff --git a/hugo/babel.config.js b/hugo/babel.config.cjs
similarity index 100%
rename from hugo/babel.config.js
rename to hugo/babel.config.cjs
From 52e034bd85146d62d988f23c3c786bcb897c3fa5 Mon Sep 17 00:00:00 2001
From: Markus Rudolph
Date: Tue, 19 Mar 2024 09:50:42 +0100
Subject: [PATCH 04/14] Fix versions of Langium-dependent packages
---
core/package.json | 4 +-
.../scripts/arithmetics/arithmetics.tsx | 1 -
.../scripts/domainmodel/domainmodel.tsx | 1 -
hugo/assets/scripts/minilogo/minilogo.tsx | 3 +-
hugo/assets/scripts/sql/language-server.ts | 9 +-
hugo/assets/scripts/sql/ui.tsx | 25 +-
.../scripts/statemachine/statemachine.tsx | 1 -
hugo/package.json | 6 +-
hugo/tsconfig.json | 15 +
package-lock.json | 795 +++++++++++-------
10 files changed, 532 insertions(+), 328 deletions(-)
create mode 100644 hugo/tsconfig.json
diff --git a/core/package.json b/core/package.json
index bcc0ab3a..7dad5219 100644
--- a/core/package.json
+++ b/core/package.json
@@ -5,7 +5,7 @@
"description": "Bundling complex sources for hugo",
"author": "TypeFox",
"license": "MIT",
- "private": true,
+ "private": true,
"main": "./dist/index.js",
"module": "./dist/index.js",
"exports": {
@@ -46,7 +46,7 @@
"@types/react-dom": "~18.2.13",
"@types/vscode": "~1.83.0",
"typescript": "~5.2.2",
- "vite": "~4.4.11"
+ "vite": "^4.5.2"
},
"dependencies": {
"@codingame/monaco-vscode-keybindings-service-override": "~1.83.2",
diff --git a/hugo/assets/scripts/arithmetics/arithmetics.tsx b/hugo/assets/scripts/arithmetics/arithmetics.tsx
index 84b29401..a3fad17a 100644
--- a/hugo/assets/scripts/arithmetics/arithmetics.tsx
+++ b/hugo/assets/scripts/arithmetics/arithmetics.tsx
@@ -192,7 +192,6 @@ class App extends React.Component<{}, AppState> {
userConfig = createUserConfig({
languageId: 'arithmetics',
code: examples[0],
- htmlElement: document.getElementById('root')!,
worker: '../../showcase/libs/worker/arithmeticsServerWorker.js',
monarchGrammar: syntaxHighlighting
});
diff --git a/hugo/assets/scripts/domainmodel/domainmodel.tsx b/hugo/assets/scripts/domainmodel/domainmodel.tsx
index 92ed77a2..1f3af9ff 100644
--- a/hugo/assets/scripts/domainmodel/domainmodel.tsx
+++ b/hugo/assets/scripts/domainmodel/domainmodel.tsx
@@ -144,7 +144,6 @@ class App extends React.Component<{}, AppState> {
userConfig = createUserConfig({
languageId: 'domainmodel',
code: example,
- htmlElement: document.getElementById('root')!,
worker: '../../showcase/libs/worker/domainmodelServerWorker.js',
monarchGrammar: syntaxHighlighting
});
diff --git a/hugo/assets/scripts/minilogo/minilogo.tsx b/hugo/assets/scripts/minilogo/minilogo.tsx
index c37802a1..605933e2 100644
--- a/hugo/assets/scripts/minilogo/minilogo.tsx
+++ b/hugo/assets/scripts/minilogo/minilogo.tsx
@@ -2,7 +2,7 @@ import { addMonacoStyles, createUserConfig, MonacoEditorReactComp, UserConfig }
import { buildWorkerDefinition } from "monaco-editor-workers";
import React, { createRef } from "react";
import { createRoot } from "react-dom/client";
-import { Diagnostic, DocumentChangeResponse, LangiumAST } from "../langium-utils/langium-ast";
+import { Diagnostic, DocumentChangeResponse } from "langium-ast-helper";
import { ColorArgs, Command, MoveArgs, examples, syntaxHighlighting } from "./minilogo-tools";
import { compressToEncodedURIComponent, decompressFromEncodedURIComponent } from "lz-string";
@@ -351,7 +351,6 @@ let code = url.searchParams.get("code");
userConfig = createUserConfig({
languageId: 'minilogo',
code: code ? decompressFromEncodedURIComponent(code) : examples[0].code,
- htmlElement: document.getElementById('root')!,
worker: '../../showcase/libs/worker/minilogoServerWorker.js',
monarchGrammar: syntaxHighlighting
});
diff --git a/hugo/assets/scripts/sql/language-server.ts b/hugo/assets/scripts/sql/language-server.ts
index 7c4a8381..e8f558b6 100644
--- a/hugo/assets/scripts/sql/language-server.ts
+++ b/hugo/assets/scripts/sql/language-server.ts
@@ -4,15 +4,14 @@
* terms of the MIT License, which is available in the project root.
******************************************************************************/
-import { startLanguageServer, EmptyFileSystem } from "langium";
+import { EmptyFileSystem } from "langium";
+import { startLanguageServer } from "langium/lsp";
import {
createConnection,
BrowserMessageReader,
BrowserMessageWriter,
-} from "vscode-languageserver/browser";
-import { createSqlServices } from "langium-sql";
-import { MySqlDialectTypes } from "langium-sql/lib/dialects/mysql/data-types";
-import { DialectTypes } from "langium-sql/lib/sql-data-types";
+} from "vscode-languageserver/browser.js";
+import { DialectTypes, MySqlDialectTypes, createSqlServices } from "langium-sql";
/* browser specific setup code */
const messageReader = new BrowserMessageReader(self);
diff --git a/hugo/assets/scripts/sql/ui.tsx b/hugo/assets/scripts/sql/ui.tsx
index 8cdacf04..2f9c56a8 100644
--- a/hugo/assets/scripts/sql/ui.tsx
+++ b/hugo/assets/scripts/sql/ui.tsx
@@ -2,13 +2,11 @@ import { addMonacoStyles, createUserConfig, MonacoEditorReactComp, UserConfig }
import { buildWorkerDefinition } from "monaco-editor-workers";
import React from "react";
import { createRoot } from "react-dom/client";
-import {
- DocumentChangeResponse,
-} from "../langium-utils/langium-ast";
import {
defaultText,
syntaxHighlighting,
} from "./constants";
+import { DocumentChangeResponse } from "langium-ast-helper";
addMonacoStyles('monaco-styles-helper');
@@ -88,17 +86,15 @@ class App extends React.Component<{}> {
is a Monaco editor driven by our SQL language server. The current setup mimics MySQL.
Features
-
-
- - Schema-driven: Add a set of table definitions to spread out the world for your SELECT queries. The table definitions can be located in a different file of the same workspace. You can keep definitions and queries separated.
- - Code completion: Press Ctrl + Space keys to trigger the completion directly. You will get suggestions for the current context.
- - Syntax highlighting: to distinguish what are keywords, identifiers, numeric literals and for a better perception of the SQL syntax.
- - Symbol search: Use Cmd or Ctrl + mouse click on a column name to find the definition of it or explore the places where a column is used.
- - Fast feedback about contextual correctness: Whether referenced columns exist or types on certain operators are matching.
- - Super-set approach: Any piece of any dialect that is missing can be added to the main grammar and be protected from other dialects using validations.
- - Highly customizable: Any behavior or aspect that is missing for your specific use case can be easily overwritten.
-
-
+
+ - Schema-driven: Add a set of table definitions to spread out the world for your SELECT queries. The table definitions can be located in a different file of the same workspace. You can keep definitions and queries separated.
+ - Code completion: Press Ctrl + Space keys to trigger the completion directly. You will get suggestions for the current context.
+ - Syntax highlighting: to distinguish what are keywords, identifiers, numeric literals and for a better perception of the SQL syntax.
+ - Symbol search: Use Cmd or Ctrl + mouse click on a column name to find the definition of it or explore the places where a column is used.
+ - Fast feedback about contextual correctness: Whether referenced columns exist or types on certain operators are matching.
+ - Super-set approach: Any piece of any dialect that is missing can be added to the main grammar and be protected from other dialects using validations.
+ - Highly customizable: Any behavior or aspect that is missing for your specific use case can be easily overwritten.
+
About the given SQL document
The document contains the database schema of an airport. It is a copy of the Flughafen DB by Stefan Proell, Eva Zangerle, Wolfgang Gassler
@@ -115,7 +111,6 @@ class App extends React.Component<{}> {
userConfig = createUserConfig({
languageId: 'sql',
code: defaultText,
- htmlElement: document.getElementById('root')!,
worker: '../../showcase/libs/worker/sqlServerWorker.js',
monarchGrammar: syntaxHighlighting
});
diff --git a/hugo/assets/scripts/statemachine/statemachine.tsx b/hugo/assets/scripts/statemachine/statemachine.tsx
index 75ee5284..568ba52e 100644
--- a/hugo/assets/scripts/statemachine/statemachine.tsx
+++ b/hugo/assets/scripts/statemachine/statemachine.tsx
@@ -291,7 +291,6 @@ class StateMachineComponent extends React.Component<{
const langiumGlobalConfig: UserConfig = createUserConfig({
languageId: 'statemachine',
code: defaultText,
- htmlElement: document.getElementById('root')!,
textmateGrammar: statemachineGrammar,
worker: '../../showcase/libs/worker/statemachineServerWorker.js'
});
diff --git a/hugo/package.json b/hugo/package.json
index d08eb5a1..cbcec977 100644
--- a/hugo/package.json
+++ b/hugo/package.json
@@ -39,17 +39,19 @@
"clsx": "^1.2.1",
"d3": "^7.8.5",
"hugo-extended": "~0.89.4",
- "langium": "^3.0.0",
+ "langium": "~3.0.0",
"langium-arithmetics-dsl": "^3.0.0",
"langium-ast-helper": "0.1.2",
"langium-domainmodel-dsl": "^3.0.0",
+ "langium-minilogo": "^3.0.0",
+ "langium-sql": "^0.3.1",
"langium-statemachine-dsl": "^3.0.0",
"langium-website-core": "~1.0.0",
"lz-string": "^1.4.4",
"monaco-editor-workers": "~0.44.0",
"react": "~18.2.0",
"react-dom": "~18.2.0",
- "vscode-languageserver": "~8.0.2"
+ "vscode-languageserver": "~9.0.1"
},
"volta": {
"node": "18.18.1",
diff --git a/hugo/tsconfig.json b/hugo/tsconfig.json
new file mode 100644
index 00000000..f85b0601
--- /dev/null
+++ b/hugo/tsconfig.json
@@ -0,0 +1,15 @@
+{
+ "compilerOptions": {
+ "noImplicitAny": true,
+ "target": "ES2022",
+ "module": "NodeNext",
+ "moduleResolution": "NodeNext",
+ "rootDir": ".",
+ "outDir": "dist",
+ "declaration": true,
+ "declarationDir": "dist"
+ },
+ "include": [
+ "**/*.ts",
+ ]
+}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 3dd569d2..cf4334d5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -38,7 +38,131 @@
"@types/react-dom": "~18.2.13",
"@types/vscode": "~1.83.0",
"typescript": "~5.2.2",
- "vite": "~4.4.11"
+ "vite": "^4.5.2"
+ }
+ },
+ "core/node_modules/@esbuild/android-arm": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
+ "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "core/node_modules/@esbuild/linux-loong64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
+ "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "core/node_modules/esbuild": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
+ "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/android-arm": "0.18.20",
+ "@esbuild/android-arm64": "0.18.20",
+ "@esbuild/android-x64": "0.18.20",
+ "@esbuild/darwin-arm64": "0.18.20",
+ "@esbuild/darwin-x64": "0.18.20",
+ "@esbuild/freebsd-arm64": "0.18.20",
+ "@esbuild/freebsd-x64": "0.18.20",
+ "@esbuild/linux-arm": "0.18.20",
+ "@esbuild/linux-arm64": "0.18.20",
+ "@esbuild/linux-ia32": "0.18.20",
+ "@esbuild/linux-loong64": "0.18.20",
+ "@esbuild/linux-mips64el": "0.18.20",
+ "@esbuild/linux-ppc64": "0.18.20",
+ "@esbuild/linux-riscv64": "0.18.20",
+ "@esbuild/linux-s390x": "0.18.20",
+ "@esbuild/linux-x64": "0.18.20",
+ "@esbuild/netbsd-x64": "0.18.20",
+ "@esbuild/openbsd-x64": "0.18.20",
+ "@esbuild/sunos-x64": "0.18.20",
+ "@esbuild/win32-arm64": "0.18.20",
+ "@esbuild/win32-ia32": "0.18.20",
+ "@esbuild/win32-x64": "0.18.20"
+ }
+ },
+ "core/node_modules/vite": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.2.tgz",
+ "integrity": "sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==",
+ "dev": true,
+ "dependencies": {
+ "esbuild": "^0.18.10",
+ "postcss": "^8.4.27",
+ "rollup": "^3.27.1"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ },
+ "peerDependencies": {
+ "@types/node": ">= 14",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ }
}
},
"foundation": {
@@ -78,17 +202,19 @@
"clsx": "^1.2.1",
"d3": "^7.8.5",
"hugo-extended": "~0.89.4",
- "langium": "^3.0.0",
+ "langium": "~3.0.0",
"langium-arithmetics-dsl": "^3.0.0",
"langium-ast-helper": "0.1.2",
"langium-domainmodel-dsl": "^3.0.0",
+ "langium-minilogo": "^3.0.0",
+ "langium-sql": "^0.3.1",
"langium-statemachine-dsl": "^3.0.0",
"langium-website-core": "~1.0.0",
"lz-string": "^1.4.4",
"monaco-editor-workers": "~0.44.0",
"react": "~18.2.0",
"react-dom": "~18.2.0",
- "vscode-languageserver": "~8.0.2"
+ "vscode-languageserver": "~9.0.1"
},
"devDependencies": {
"@rollup/plugin-inject": "~5.0.4",
@@ -99,6 +225,39 @@
"esbuild": "~0.19.4"
}
},
+ "hugo/node_modules/vscode-jsonrpc": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
+ "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "hugo/node_modules/vscode-languageserver": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
+ "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==",
+ "dependencies": {
+ "vscode-languageserver-protocol": "3.17.5"
+ },
+ "bin": {
+ "installServerIntoExtension": "bin/installServerIntoExtension"
+ }
+ },
+ "hugo/node_modules/vscode-languageserver-protocol": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
+ "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
+ "dependencies": {
+ "vscode-jsonrpc": "8.2.0",
+ "vscode-languageserver-types": "3.17.5"
+ }
+ },
+ "hugo/node_modules/vscode-languageserver-types": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
+ "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
+ },
"node_modules/@ampproject/remapping": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
@@ -1271,6 +1430,19 @@
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
},
+ "node_modules/@lit-labs/ssr-dom-shim": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz",
+ "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g=="
+ },
+ "node_modules/@lit/reactive-element": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz",
+ "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==",
+ "dependencies": {
+ "@lit-labs/ssr-dom-shim": "^1.0.0"
+ }
+ },
"node_modules/@nicolo-ribaudo/chokidar-2": {
"version": "2.1.8-no-fsevents.3",
"resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz",
@@ -1406,6 +1578,11 @@
"@types/responselike": "^1.0.0"
}
},
+ "node_modules/@types/css-font-loading-module": {
+ "version": "0.0.13",
+ "resolved": "https://registry.npmjs.org/@types/css-font-loading-module/-/css-font-loading-module-0.0.13.tgz",
+ "integrity": "sha512-EnmFmshMT9rD3yohKkrbMMrRULUVkZbUAJFrFFO12mxiFWQvRKDQYsK1CB8tSUYZQ+uUui5RBvENNHqhL9xqgQ=="
+ },
"node_modules/@types/d3": {
"version": "7.4.0",
"resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.0.tgz",
@@ -1718,6 +1895,11 @@
"integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==",
"dev": true
},
+ "node_modules/@types/trusted-types": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="
+ },
"node_modules/@types/vscode": {
"version": "1.83.0",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.83.0.tgz",
@@ -2216,6 +2398,14 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
+ "node_modules/colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
"node_modules/commander": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
@@ -4006,14 +4196,6 @@
"vscode": "^1.67.0"
}
},
- "node_modules/langium-arithmetics-dsl/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
"node_modules/langium-arithmetics-dsl/node_modules/chalk": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
@@ -4033,42 +4215,6 @@
"node": ">=16"
}
},
- "node_modules/langium-arithmetics-dsl/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/langium-arithmetics-dsl/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/langium-arithmetics-dsl/node_modules/semver": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/langium-arithmetics-dsl/node_modules/vscode-jsonrpc": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
@@ -4077,19 +4223,6 @@
"node": ">=14.0.0"
}
},
- "node_modules/langium-arithmetics-dsl/node_modules/vscode-languageclient": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-9.0.1.tgz",
- "integrity": "sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA==",
- "dependencies": {
- "minimatch": "^5.1.0",
- "semver": "^7.3.7",
- "vscode-languageserver-protocol": "3.17.5"
- },
- "engines": {
- "vscode": "^1.82.0"
- }
- },
"node_modules/langium-arithmetics-dsl/node_modules/vscode-languageserver": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
@@ -4115,11 +4248,6 @@
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
"integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
},
- "node_modules/langium-arithmetics-dsl/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
"node_modules/langium-ast-helper": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/langium-ast-helper/-/langium-ast-helper-0.1.2.tgz",
@@ -4144,14 +4272,6 @@
"vscode": "^1.67.0"
}
},
- "node_modules/langium-domainmodel-dsl/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
"node_modules/langium-domainmodel-dsl/node_modules/chalk": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
@@ -4171,43 +4291,68 @@
"node": ">=16"
}
},
- "node_modules/langium-domainmodel-dsl/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
+ "node_modules/langium-domainmodel-dsl/node_modules/vscode-jsonrpc": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
+ "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
"engines": {
- "node": ">=10"
+ "node": ">=14.0.0"
}
},
- "node_modules/langium-domainmodel-dsl/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "node_modules/langium-domainmodel-dsl/node_modules/vscode-languageserver": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
+ "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "vscode-languageserver-protocol": "3.17.5"
},
- "engines": {
- "node": ">=10"
+ "bin": {
+ "installServerIntoExtension": "bin/installServerIntoExtension"
}
},
- "node_modules/langium-domainmodel-dsl/node_modules/semver": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
+ "node_modules/langium-domainmodel-dsl/node_modules/vscode-languageserver-protocol": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
+ "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
+ "dependencies": {
+ "vscode-jsonrpc": "8.2.0",
+ "vscode-languageserver-types": "3.17.5"
+ }
+ },
+ "node_modules/langium-domainmodel-dsl/node_modules/vscode-languageserver-types": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
+ "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
+ },
+ "node_modules/langium-minilogo": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/langium-minilogo/-/langium-minilogo-3.0.0.tgz",
+ "integrity": "sha512-PBVw/xFsTSaw7fVngcZZ344Cn2X9O+yXxga7RUQl7AyEUC8VxxgJEy8lAbjrsm4LjiB9Z76gXlCGEO0yggxjQQ==",
+ "dependencies": {
+ "colors": "^1.4.0",
+ "commander": "^8.0.0",
+ "langium": "^3.0.0",
+ "monaco-editor-comp": "~1.6.0",
+ "vscode-languageclient": "~9.0.1",
+ "vscode-languageserver": "~9.0.1"
+ },
"bin": {
- "semver": "bin/semver.js"
+ "minilogo-cli": "bin/minilogo.js"
},
"engines": {
- "node": ">=10"
+ "node": ">=16",
+ "vscode": "^1.56.0"
}
},
- "node_modules/langium-domainmodel-dsl/node_modules/vscode-jsonrpc": {
+ "node_modules/langium-minilogo/node_modules/commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/langium-minilogo/node_modules/vscode-jsonrpc": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
"integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
@@ -4215,20 +4360,7 @@
"node": ">=14.0.0"
}
},
- "node_modules/langium-domainmodel-dsl/node_modules/vscode-languageclient": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-9.0.1.tgz",
- "integrity": "sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA==",
- "dependencies": {
- "minimatch": "^5.1.0",
- "semver": "^7.3.7",
- "vscode-languageserver-protocol": "3.17.5"
- },
- "engines": {
- "vscode": "^1.82.0"
- }
- },
- "node_modules/langium-domainmodel-dsl/node_modules/vscode-languageserver": {
+ "node_modules/langium-minilogo/node_modules/vscode-languageserver": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
"integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==",
@@ -4239,7 +4371,7 @@
"installServerIntoExtension": "bin/installServerIntoExtension"
}
},
- "node_modules/langium-domainmodel-dsl/node_modules/vscode-languageserver-protocol": {
+ "node_modules/langium-minilogo/node_modules/vscode-languageserver-protocol": {
"version": "3.17.5",
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
"integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
@@ -4248,15 +4380,19 @@
"vscode-languageserver-types": "3.17.5"
}
},
- "node_modules/langium-domainmodel-dsl/node_modules/vscode-languageserver-types": {
+ "node_modules/langium-minilogo/node_modules/vscode-languageserver-types": {
"version": "3.17.5",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
"integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
},
- "node_modules/langium-domainmodel-dsl/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ "node_modules/langium-sql": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/langium-sql/-/langium-sql-0.3.1.tgz",
+ "integrity": "sha512-KCr6rJsVRXjHrh6+G9RX3LiyCWRnZ925MH9vlit9XNx1qtEXLAhNqynF+1yuHXTkdHNNLfBoRiVN7OyWgm/9yw==",
+ "dependencies": {
+ "langium": "^3.0.0",
+ "lodash": "^4.17.21"
+ }
},
"node_modules/langium-statemachine-dsl": {
"version": "3.0.0",
@@ -4276,14 +4412,6 @@
"vscode": "^1.67.0"
}
},
- "node_modules/langium-statemachine-dsl/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
"node_modules/langium-statemachine-dsl/node_modules/chalk": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
@@ -4303,42 +4431,6 @@
"node": ">=16"
}
},
- "node_modules/langium-statemachine-dsl/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/langium-statemachine-dsl/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/langium-statemachine-dsl/node_modules/semver": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/langium-statemachine-dsl/node_modules/vscode-jsonrpc": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
@@ -4347,19 +4439,6 @@
"node": ">=14.0.0"
}
},
- "node_modules/langium-statemachine-dsl/node_modules/vscode-languageclient": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-9.0.1.tgz",
- "integrity": "sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA==",
- "dependencies": {
- "minimatch": "^5.1.0",
- "semver": "^7.3.7",
- "vscode-languageserver-protocol": "3.17.5"
- },
- "engines": {
- "vscode": "^1.82.0"
- }
- },
"node_modules/langium-statemachine-dsl/node_modules/vscode-languageserver": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
@@ -4385,11 +4464,6 @@
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
"integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
},
- "node_modules/langium-statemachine-dsl/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
"node_modules/langium-website-core": {
"resolved": "core",
"link": true
@@ -4449,6 +4523,34 @@
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
},
+ "node_modules/lit": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/lit/-/lit-2.5.0.tgz",
+ "integrity": "sha512-DtnUP6vR3l4Q8nRPPNBD+UxbAhwJPeky+OVbi3pdgMqm0g57xFSl1Sj64D1rIB+nVNdiVVg8YxB0hqKjvdadZA==",
+ "dependencies": {
+ "@lit/reactive-element": "^1.5.0",
+ "lit-element": "^3.2.0",
+ "lit-html": "^2.5.0"
+ }
+ },
+ "node_modules/lit-element": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz",
+ "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==",
+ "dependencies": {
+ "@lit-labs/ssr-dom-shim": "^1.1.0",
+ "@lit/reactive-element": "^1.3.0",
+ "lit-html": "^2.8.0"
+ }
+ },
+ "node_modules/lit-html": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz",
+ "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==",
+ "dependencies": {
+ "@types/trusted-types": "^2.0.2"
+ }
+ },
"node_modules/locate-path": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
@@ -4627,6 +4729,141 @@
"resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.44.0.tgz",
"integrity": "sha512-5SmjNStN6bSuSE5WPT2ZV+iYn1/yI9sd4Igtk23ChvqB7kDk9lZbB9F5frsuvpB+2njdIeGGFf2G4gbE6rCC9Q=="
},
+ "node_modules/monaco-editor-comp": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/monaco-editor-comp/-/monaco-editor-comp-1.6.0.tgz",
+ "integrity": "sha512-LGOubZ2YdyiwvoJGU732wTTpQ5LqU/Mx/WiN4tDVTWrAlDUyLPMqMLiow5erA5Rc7b6i+whNhyq9M5/g9CGOhw==",
+ "dependencies": {
+ "lit": "~2.5.0",
+ "monaco-editor-wrapper": "1.6.0"
+ }
+ },
+ "node_modules/monaco-editor-comp/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/monaco-editor-comp/node_modules/monaco-editor": {
+ "version": "0.34.1",
+ "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.34.1.tgz",
+ "integrity": "sha512-FKc80TyiMaruhJKKPz5SpJPIjL+dflGvz4CpuThaPMc94AyN7SeC9HQ8hrvaxX7EyHdJcUY5i4D0gNyJj1vSZQ==",
+ "peer": true
+ },
+ "node_modules/monaco-editor-comp/node_modules/monaco-editor-wrapper": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/monaco-editor-wrapper/-/monaco-editor-wrapper-1.6.0.tgz",
+ "integrity": "sha512-ETGAicvsGER2QUl0aUhm0K3gXPiQnidrMXkUEzdipTtkNKfoCt3+IgxxoUY1oYbaPNEyN7Vj9Tp5NoTMYxd47Q==",
+ "dependencies": {
+ "@types/css-font-loading-module": "~0.0.7",
+ "monaco-languageclient": "4.0.3",
+ "normalize-url": "~8.0.0",
+ "vscode-languageserver-protocol": "3.17.2",
+ "vscode-ws-jsonrpc": "2.0.1"
+ }
+ },
+ "node_modules/monaco-editor-comp/node_modules/monaco-languageclient": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-4.0.3.tgz",
+ "integrity": "sha512-1mGIUb5PFRknITBhNxgH0SnQy1/jntt9oo0cQpOl3HdhYEL/CYK2UrsZZX7Udqmz1PXKyRIzQ3tZ7dJn4mzWtA==",
+ "dependencies": {
+ "vscode": "npm:@codingame/monaco-vscode-api@1.69.13",
+ "vscode-jsonrpc": "8.0.2",
+ "vscode-languageclient": "8.0.2"
+ },
+ "engines": {
+ "node": ">=16.11.0",
+ "npm": ">=8.0.0"
+ },
+ "peerDependencies": {
+ "vscode": ">= npm:@codingame/monaco-vscode-api@1.69.0 < npm:@codingame/monaco-vscode-api@1.70.0"
+ }
+ },
+ "node_modules/monaco-editor-comp/node_modules/normalize-url": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz",
+ "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/monaco-editor-comp/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/monaco-editor-comp/node_modules/vscode": {
+ "name": "@codingame/monaco-vscode-api",
+ "version": "1.69.13",
+ "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-1.69.13.tgz",
+ "integrity": "sha512-7+dQbQ5O8mQhFyUcAiiJkCotNjZUzRxh4NMBKc/BSIFi0jG47bay+jP/+ngsmxHBapjs/xUAPaKSGNnf9WBmAA==",
+ "peerDependencies": {
+ "monaco-editor": "~0.34.0",
+ "vscode-oniguruma": "^1.6.2",
+ "vscode-textmate": "^7.0.1"
+ }
+ },
+ "node_modules/monaco-editor-comp/node_modules/vscode-jsonrpc": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2.tgz",
+ "integrity": "sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/monaco-editor-comp/node_modules/vscode-languageclient": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-8.0.2.tgz",
+ "integrity": "sha512-lHlthJtphG9gibGb/y72CKqQUxwPsMXijJVpHEC2bvbFqxmkj9LwQ3aGU9dwjBLqsX1S4KjShYppLvg1UJDF/Q==",
+ "dependencies": {
+ "minimatch": "^3.0.4",
+ "semver": "^7.3.5",
+ "vscode-languageserver-protocol": "3.17.2"
+ },
+ "engines": {
+ "vscode": "^1.67.0"
+ }
+ },
+ "node_modules/monaco-editor-comp/node_modules/vscode-textmate": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-7.0.4.tgz",
+ "integrity": "sha512-9hJp0xL7HW1Q5OgGe03NACo7yiCTMEk3WU/rtKXUbncLtdg6rVVNJnHwD88UhbIYU2KoxY0Dih0x+kIsmUKn2A==",
+ "peer": true
+ },
+ "node_modules/monaco-editor-comp/node_modules/vscode-ws-jsonrpc": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/vscode-ws-jsonrpc/-/vscode-ws-jsonrpc-2.0.1.tgz",
+ "integrity": "sha512-ne5DO8/qe8tHt1U4LafLiYS832Yd4OltkP4+YZVOQwqGEU5nwLwZowUBqqEWt8sOZ0eLdCLV9luotGC2aUQ+LA==",
+ "dependencies": {
+ "vscode-jsonrpc": "8.0.2"
+ },
+ "engines": {
+ "node": ">=16.11.0",
+ "npm": ">=8.0.0"
+ }
+ },
+ "node_modules/monaco-editor-comp/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
"node_modules/monaco-editor-workers": {
"version": "0.44.0",
"resolved": "https://registry.npmjs.org/monaco-editor-workers/-/monaco-editor-workers-0.44.0.tgz",
@@ -6049,150 +6286,110 @@
"spdx-expression-parse": "^3.0.0"
}
},
- "node_modules/vite": {
- "version": "4.4.12",
- "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.12.tgz",
- "integrity": "sha512-KtPlUbWfxzGVul8Nut8Gw2Qe8sBzWY+8QVc5SL8iRFnpnrcoCaNlzO40c1R6hPmcdTwIPEDkq0Y9+27a5tVbdQ==",
- "dev": true,
+ "node_modules/vscode": {
+ "name": "@codingame/monaco-vscode-api",
+ "version": "1.83.2",
+ "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-1.83.2.tgz",
+ "integrity": "sha512-wTdkrnMZV85jyZQm9PZW98JMTwhzuETALAtTiMVX9Lvw/tdrbRQC5lBZjjEytHGxhSC141rd5JcwPrDkuimZGA==",
"dependencies": {
- "esbuild": "^0.18.10",
- "postcss": "^8.4.27",
- "rollup": "^3.27.1"
+ "monaco-editor": "0.44.0"
},
"bin": {
- "vite": "bin/vite.js"
- },
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- },
- "peerDependencies": {
- "@types/node": ">= 14",
- "less": "*",
- "lightningcss": "^1.21.0",
- "sass": "*",
- "stylus": "*",
- "sugarss": "*",
- "terser": "^5.4.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "lightningcss": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- }
+ "monaco-treemending": "monaco-treemending.js"
}
},
- "node_modules/vite/node_modules/@esbuild/android-arm": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
- "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
+ "node_modules/vscode-jsonrpc": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0.tgz",
+ "integrity": "sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw==",
"engines": {
- "node": ">=12"
+ "node": ">=14.0.0"
}
},
- "node_modules/vite/node_modules/@esbuild/linux-loong64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
- "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/vscode-languageclient": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-9.0.1.tgz",
+ "integrity": "sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA==",
+ "dependencies": {
+ "minimatch": "^5.1.0",
+ "semver": "^7.3.7",
+ "vscode-languageserver-protocol": "3.17.5"
+ },
"engines": {
- "node": ">=12"
+ "vscode": "^1.82.0"
}
},
- "node_modules/vite/node_modules/esbuild": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
- "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
- "dev": true,
- "hasInstallScript": true,
- "bin": {
- "esbuild": "bin/esbuild"
+ "node_modules/vscode-languageclient/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/vscode-languageclient/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=10"
+ }
+ },
+ "node_modules/vscode-languageclient/node_modules/minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
},
- "optionalDependencies": {
- "@esbuild/android-arm": "0.18.20",
- "@esbuild/android-arm64": "0.18.20",
- "@esbuild/android-x64": "0.18.20",
- "@esbuild/darwin-arm64": "0.18.20",
- "@esbuild/darwin-x64": "0.18.20",
- "@esbuild/freebsd-arm64": "0.18.20",
- "@esbuild/freebsd-x64": "0.18.20",
- "@esbuild/linux-arm": "0.18.20",
- "@esbuild/linux-arm64": "0.18.20",
- "@esbuild/linux-ia32": "0.18.20",
- "@esbuild/linux-loong64": "0.18.20",
- "@esbuild/linux-mips64el": "0.18.20",
- "@esbuild/linux-ppc64": "0.18.20",
- "@esbuild/linux-riscv64": "0.18.20",
- "@esbuild/linux-s390x": "0.18.20",
- "@esbuild/linux-x64": "0.18.20",
- "@esbuild/netbsd-x64": "0.18.20",
- "@esbuild/openbsd-x64": "0.18.20",
- "@esbuild/sunos-x64": "0.18.20",
- "@esbuild/win32-arm64": "0.18.20",
- "@esbuild/win32-ia32": "0.18.20",
- "@esbuild/win32-x64": "0.18.20"
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/vscode": {
- "name": "@codingame/monaco-vscode-api",
- "version": "1.83.2",
- "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-1.83.2.tgz",
- "integrity": "sha512-wTdkrnMZV85jyZQm9PZW98JMTwhzuETALAtTiMVX9Lvw/tdrbRQC5lBZjjEytHGxhSC141rd5JcwPrDkuimZGA==",
+ "node_modules/vscode-languageclient/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
"dependencies": {
- "monaco-editor": "0.44.0"
+ "lru-cache": "^6.0.0"
},
"bin": {
- "monaco-treemending": "monaco-treemending.js"
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/vscode-jsonrpc": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0.tgz",
- "integrity": "sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw==",
+ "node_modules/vscode-languageclient/node_modules/vscode-jsonrpc": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
+ "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
"engines": {
"node": ">=14.0.0"
}
},
+ "node_modules/vscode-languageclient/node_modules/vscode-languageserver-protocol": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
+ "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
+ "dependencies": {
+ "vscode-jsonrpc": "8.2.0",
+ "vscode-languageserver-types": "3.17.5"
+ }
+ },
+ "node_modules/vscode-languageclient/node_modules/vscode-languageserver-types": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
+ "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
+ },
+ "node_modules/vscode-languageclient/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
"node_modules/vscode-languageserver": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.0.2.tgz",
From 2512ed548a8264b78ae3f0f83b6ad26d5f982664 Mon Sep 17 00:00:00 2001
From: Markus Rudolph
Date: Tue, 19 Mar 2024 11:55:22 +0100
Subject: [PATCH 05/14] Fixing SQL showcase
---
hugo/assets/scripts/sql/constants.ts | 135 --------------------
hugo/assets/scripts/sql/sql.tmLanguage.json | 71 ++++++++++
hugo/assets/scripts/sql/ui.tsx | 4 +-
hugo/package.json | 2 +-
hugo/sql.esbuild.mjs | 8 ++
package-lock.json | 9 +-
6 files changed, 88 insertions(+), 141 deletions(-)
create mode 100644 hugo/assets/scripts/sql/sql.tmLanguage.json
create mode 100644 hugo/sql.esbuild.mjs
diff --git a/hugo/assets/scripts/sql/constants.ts b/hugo/assets/scripts/sql/constants.ts
index 5d237a09..b1577475 100644
--- a/hugo/assets/scripts/sql/constants.ts
+++ b/hugo/assets/scripts/sql/constants.ts
@@ -1,138 +1,3 @@
-import { monaco } from "langium-website-core/bundle";
-
-export const syntaxHighlighting: monaco.languages.IMonarchLanguage = {
- tokenizer: {
- initial: [
- { regex: /x\'[A-Fa-f0-9]+\'/, action: { token: "string" } },
- { regex: /"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/, action: { token: "string" } },
- { regex: /\`(\\.|\\\\|[^`\\])*\`/, action: { token: "string" } },
- {
- regex: /[_a-zA-Z][\w_]*/,
- action: {
- cases: {
- "@keywords": { token: "keyword" },
- "@default": { token: "ID" },
- },
- },
- },
- { regex: /\d+((\.\d+)?([eE][\-+]?\d+)?)?/, action: { token: "number" } },
- { include: "@whitespace" },
- {
- regex: /@symbols/,
- action: {
- cases: {
- "@operators": { token: "operator" },
- "@default": { token: "" },
- },
- },
- },
- ],
- whitespace: [
- { regex: /\s+/, action: { token: "white" } },
- { regex: /\/\*/, action: { token: "comment", next: "@comment" } },
- { regex: /\-\-[^\n\r]*/, action: { token: "comment" } },
- { regex: /\/\/[^\n\r]*/, action: { token: "comment" } },
- ],
- comment: [
- { regex: /[^\/\*]+/, action: { token: "comment" } },
- { regex: /\*\//, action: { token: "comment", next: "@pop" } },
- { regex: /[\/\*]/, action: { token: "comment" } },
- ],
- },
- keywords: [
- "ALL",
- "AND",
- "AS",
- "ASC",
- "BETWEEN",
- "BY",
- "CASCADE",
- "CAST",
- "CATALOG",
- "CONSTRAINT",
- "CREATE",
- "CURRENT",
- "DATABASE",
- "DELETE",
- "DESC",
- "DISTINCT",
- "EXCEPT",
- "FALSE",
- "FETCH",
- "FIRST",
- "FOLLOWING",
- "FOREIGN",
- "FROM",
- "FUNCTION",
- "GROUP",
- "HAVING",
- "IN",
- "INDEX",
- "INTERSECT",
- "IS",
- "JOIN",
- "KEY",
- "LEFT",
- "LIKE",
- "LIMIT",
- "MINUS",
- "NEXT",
- "NOT",
- "NULL",
- "OFFSET",
- "ON",
- "ONLY",
- "OR",
- "ORDER",
- "OVER",
- "PARTITION",
- "PERCENT",
- "PRECEDING",
- "PRIMARY",
- "RANGE",
- "RECURSIVE",
- "REFERENCES",
- "REPLACE",
- "RIGHT",
- "ROW",
- "ROWS",
- "SCHEMA",
- "SELECT",
- "TABLE",
- "TIES",
- "TOP",
- "TRUE",
- "UNBOUNDED",
- "UNION",
- "UNIQUE",
- "USING",
- "WHERE",
- "WITH",
- ],
- symbols: /%|\(|\)|\*|\+|,|\-|\.|\/|::|::\$|::%|;|<|<=|<>|=|>|>=|\|\|/,
-
- operators: [
- "%",
- "*",
- "+",
- ",",
- "-",
- ".",
- "/",
- "::",
- "::$",
- "::%",
- ";",
- "<",
- "<=",
- "<>",
- "=",
- ">",
- ">=",
- "||",
- ],
-};
-
export const defaultText = `SELECT p.firstname, p.lastname
FROM
passenger p
diff --git a/hugo/assets/scripts/sql/sql.tmLanguage.json b/hugo/assets/scripts/sql/sql.tmLanguage.json
new file mode 100644
index 00000000..3662d7ae
--- /dev/null
+++ b/hugo/assets/scripts/sql/sql.tmLanguage.json
@@ -0,0 +1,71 @@
+{
+ "name": "sql",
+ "scopeName": "source.sql",
+ "fileTypes": [
+ ".sql"
+ ],
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "name": "keyword.control.sql",
+ "match": "\\b([aA][lL][lL]|[aA][nN][dD]|[aA][sS]|[aA][sS][cC]|[bB][eE][tT][wW][eE][eE][nN]|[bB][yY]|[cC][aA][sS][cC][aA][dD][eE]|[cC][aA][sS][tT]|[cC][aA][tT][aA][lL][oO][gG]|[cC][oO][nN][sS][tT][rR][aA][iI][nN][tT]|[cC][rR][eE][aA][tT][eE]|[cC][uU][rR][rR][eE][nN][tT]|[dD][aA][tT][aA][bB][aA][sS][eE]|[dD][eE][lL][eE][tT][eE]|[dD][eE][sS][cC]|[dD][iI][sS][tT][iI][nN][cC][tT]|[eE][xX][cC][eE][pP][tT]|[fF][aA][lL][sS][eE]|[fF][eE][tT][cC][hH]|[fF][iI][rR][sS][tT]|[fF][oO][lL][lL][oO][wW][iI][nN][gG]|[fF][oO][rR][eE][iI][gG][nN]|[fF][rR][oO][mM]|[fF][uU][nN][cC][tT][iI][oO][nN]|[gG][rR][oO][uU][pP]|[hH][aA][vV][iI][nN][gG]|[iI][nN]|[iI][nN][dD][eE][xX]|[iI][nN][tT][eE][rR][sS][eE][cC][tT]|[iI][sS]|[jJ][oO][iI][nN]|[kK][eE][yY]|[lL][eE][fF][tT]|[lL][iI][kK][eE]|[lL][iI][mM][iI][tT]|[mM][iI][nN][uU][sS]|[nN][eE][xX][tT]|[nN][oO][tT]|[nN][uU][lL][lL]|[oO][fF][fF][sS][eE][tT]|[oO][nN]|[oO][nN][lL][yY]|[oO][rR]|[oO][rR][dD][eE][rR]|[oO][vV][eE][rR]|[pP][aA][rR][tT][iI][tT][iI][oO][nN]|[pP][eE][rR][cC][eE][nN][tT]|[pP][rR][eE][cC][eE][dD][iI][nN][gG]|[pP][rR][iI][mM][aA][rR][yY]|[rR][aA][nN][gG][eE]|[rR][eE][cC][uU][rR][sS][iI][vV][eE]|[rR][eE][fF][eE][rR][eE][nN][cC][eE][sS]|[rR][eE][pP][lL][aA][cC][eE]|[rR][iI][gG][hH][tT]|[rR][oO][wW]|[rR][oO][wW][sS]|[sS][cC][hH][eE][mM][aA]|[sS][eE][lL][eE][cC][tT]|[tT][aA][bB][lL][eE]|[tT][iI][eE][sS]|[tT][oO][pP]|[tT][rR][uU][eE]|[uU][nN][bB][oO][uU][nN][dD][eE][dD]|[uU][nN][iI][oO][nN]|[uU][nN][iI][qQ][uU][eE]|[uU][sS][iI][nN][gG]|[wW][hH][eE][rR][eE]|[wW][iI][tT][hH])\\b"
+ },
+ {
+ "name": "string.quoted.single.sql",
+ "begin": "'",
+ "end": "'",
+ "patterns": [
+ {
+ "include": "#string-character-escape"
+ }
+ ]
+ }
+ ],
+ "repository": {
+ "comments": {
+ "patterns": [
+ {
+ "name": "comment.block.sql",
+ "begin": "/\\*",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.sql"
+ }
+ },
+ "end": "\\*/",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.sql"
+ }
+ }
+ },
+ {
+ "begin": "--",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.whitespace.comment.leading.sql"
+ }
+ },
+ "end": "(?=$)",
+ "name": "comment.line.sql"
+ },
+ {
+ "begin": "//",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.whitespace.comment.leading.sql"
+ }
+ },
+ "end": "(?=$)",
+ "name": "comment.line.sql"
+ }
+ ]
+ },
+ "string-character-escape": {
+ "name": "constant.character.escape.sql",
+ "match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"
+ }
+ }
+}
diff --git a/hugo/assets/scripts/sql/ui.tsx b/hugo/assets/scripts/sql/ui.tsx
index 2f9c56a8..9c55aed9 100644
--- a/hugo/assets/scripts/sql/ui.tsx
+++ b/hugo/assets/scripts/sql/ui.tsx
@@ -4,8 +4,8 @@ import React from "react";
import { createRoot } from "react-dom/client";
import {
defaultText,
- syntaxHighlighting,
} from "./constants";
+import textMateGrammar from './sql.tmLanguage.json';
import { DocumentChangeResponse } from "langium-ast-helper";
addMonacoStyles('monaco-styles-helper');
@@ -112,7 +112,7 @@ userConfig = createUserConfig({
languageId: 'sql',
code: defaultText,
worker: '../../showcase/libs/worker/sqlServerWorker.js',
- monarchGrammar: syntaxHighlighting
+ textmateGrammar: textMateGrammar
});
const element = document.getElementById("root") as HTMLElement;
diff --git a/hugo/package.json b/hugo/package.json
index cbcec977..491145e5 100644
--- a/hugo/package.json
+++ b/hugo/package.json
@@ -15,7 +15,7 @@
"build:worker/playground-langium": "esbuild ./content/playground/langium-worker.ts --bundle --format=iife --outfile=./static/playground/libs/worker/langiumServerWorker.js",
"build:worker/playground-user": "esbuild ./content/playground/user-worker.ts --bundle --format=iife --outfile=./static/playground/libs/worker/userServerWorker.js",
"build:worker/playground-common": "esbuild ./content/playground/common.ts --bundle --format=esm --outfile=./static/playground/libs/worker/common.js",
- "build:worker/sql": "esbuild ./assets/scripts/sql/language-server.ts --bundle --format=iife --outfile=./static/showcase/libs/worker/sqlServerWorker.js",
+ "build:worker/sql": "node sql.esbuild.mjs",
"build:worker/minilogo": "esbuild ../node_modules/langium-minilogo/out/language-server/main-browser.js --bundle --format=iife --outfile=./static/showcase/libs/worker/minilogoServerWorker.js",
"build:static": "npm run clean:static && npm run build:worker/statemachine && npm run build:worker/domainmodel && npm run build:worker/sql && npm run build:worker/minilogo && npm run build:worker/arithmetics && npm run build:worker/playground-common && npm run build:worker/playground-langium && npm run build:worker/playground-user && npm run copy:monaco-workers",
"build": "npm run build:static && cross-env NODE_ENV=production hugo --config ./config.toml -b / -d ../public --gc --minify ",
diff --git a/hugo/sql.esbuild.mjs b/hugo/sql.esbuild.mjs
new file mode 100644
index 00000000..a4637b78
--- /dev/null
+++ b/hugo/sql.esbuild.mjs
@@ -0,0 +1,8 @@
+import * as esbuild from 'esbuild';
+
+await esbuild.build({
+ entryPoints: ['./assets/scripts/sql/language-server.ts'],
+ bundle: true,
+ format: "iife",
+ outfile: './static/showcase/libs/worker/sqlServerWorker.js',
+})
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index cf4334d5..a22a76ab 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -3714,9 +3714,12 @@
}
},
"node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/gensync": {
"version": "1.0.0-beta.2",
From 530f6b0b1bf2978e1ca86f6cec0618522924ff04 Mon Sep 17 00:00:00 2001
From: Markus Rudolph
Date: Tue, 19 Mar 2024 14:57:00 +0100
Subject: [PATCH 06/14] Update Langium/SQL
---
hugo/package.json | 4 ++--
package-lock.json | 26 +++++++++++++++++++++-----
2 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/hugo/package.json b/hugo/package.json
index 491145e5..358ea7a8 100644
--- a/hugo/package.json
+++ b/hugo/package.json
@@ -44,11 +44,11 @@
"langium-ast-helper": "0.1.2",
"langium-domainmodel-dsl": "^3.0.0",
"langium-minilogo": "^3.0.0",
- "langium-sql": "^0.3.1",
+ "langium-sql": "^0.3.2",
"langium-statemachine-dsl": "^3.0.0",
"langium-website-core": "~1.0.0",
"lz-string": "^1.4.4",
- "monaco-editor-workers": "~0.44.0",
+ "monaco-editor-workers": "~0.45.0",
"react": "~18.2.0",
"react-dom": "~18.2.0",
"vscode-languageserver": "~9.0.1"
diff --git a/package-lock.json b/package-lock.json
index a22a76ab..0f548b3d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -207,11 +207,11 @@
"langium-ast-helper": "0.1.2",
"langium-domainmodel-dsl": "^3.0.0",
"langium-minilogo": "^3.0.0",
- "langium-sql": "^0.3.1",
+ "langium-sql": "^0.3.2",
"langium-statemachine-dsl": "^3.0.0",
"langium-website-core": "~1.0.0",
"lz-string": "^1.4.4",
- "monaco-editor-workers": "~0.44.0",
+ "monaco-editor-workers": "~0.45.0",
"react": "~18.2.0",
"react-dom": "~18.2.0",
"vscode-languageserver": "~9.0.1"
@@ -225,6 +225,22 @@
"esbuild": "~0.19.4"
}
},
+ "hugo/node_modules/monaco-editor": {
+ "version": "0.45.0",
+ "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.45.0.tgz",
+ "integrity": "sha512-mjv1G1ZzfEE3k9HZN0dQ2olMdwIfaeAAjFiwNprLfYNRSz7ctv9XuCT7gPtBGrMUeV1/iZzYKj17Khu1hxoHOA=="
+ },
+ "hugo/node_modules/monaco-editor-workers": {
+ "version": "0.45.0",
+ "resolved": "https://registry.npmjs.org/monaco-editor-workers/-/monaco-editor-workers-0.45.0.tgz",
+ "integrity": "sha512-KSN7FXdehjwnu1JbpfERVP8KGqioXabNmpDfmh1P5RcG2k6OTAyh5cmLg55AsI/upzUqbEuq1F4NUh7mASsY9w==",
+ "dependencies": {
+ "monaco-editor": "~0.45.0"
+ },
+ "peerDependencies": {
+ "monaco-editor": "~0.45.0"
+ }
+ },
"hugo/node_modules/vscode-jsonrpc": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
@@ -4389,9 +4405,9 @@
"integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
},
"node_modules/langium-sql": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/langium-sql/-/langium-sql-0.3.1.tgz",
- "integrity": "sha512-KCr6rJsVRXjHrh6+G9RX3LiyCWRnZ925MH9vlit9XNx1qtEXLAhNqynF+1yuHXTkdHNNLfBoRiVN7OyWgm/9yw==",
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/langium-sql/-/langium-sql-0.3.2.tgz",
+ "integrity": "sha512-Ut2Spt5FK461E2OW4ULgWb9GIzqjJLnjksz2DprPwaTpfwE1hAeizfshCCdT2wCJVESkWzHQFeMCgKT9Yd2jiw==",
"dependencies": {
"langium": "^3.0.0",
"lodash": "^4.17.21"
From 50acbd978bea941280dac7990c9e67dd03cb7263 Mon Sep 17 00:00:00 2001
From: Markus Rudolph
Date: Wed, 20 Mar 2024 09:21:02 +0100
Subject: [PATCH 07/14] Fix playground except syntax highlighting
---
hugo/content/playground/Tree.tsx | 7 +-
hugo/content/playground/common.ts | 13 ++-
hugo/content/playground/langium-worker.ts | 7 +-
hugo/content/playground/monaco-utils.ts | 114 -------------------
hugo/content/playground/monarch-generator.ts | 66 +++++------
hugo/content/playground/preprocess.ts | 5 +-
hugo/content/playground/types.ts | 4 +-
hugo/content/playground/user-worker.ts | 5 +-
hugo/content/playground/worker-utils.ts | 2 +-
hugo/tsconfig.json | 3 +-
10 files changed, 57 insertions(+), 169 deletions(-)
delete mode 100644 hugo/content/playground/monaco-utils.ts
diff --git a/hugo/content/playground/Tree.tsx b/hugo/content/playground/Tree.tsx
index d999031d..cbcb9060 100644
--- a/hugo/content/playground/Tree.tsx
+++ b/hugo/content/playground/Tree.tsx
@@ -4,12 +4,11 @@
* terms of the MIT License, which is available in the project root.
******************************************************************************/
-import React, { FC, useState } from "react";
+import { FC, useState } from "react";
import * as ReactDOM from "react-dom/client";
-import { preprocessAstNodeObject, PropertyNode, ValueNode } from "./preprocess";
+import { preprocessAstNodeObject, PropertyNode, ValueNode } from "./preprocess.js";
import { clsx } from "clsx";
-import { AstNodeLocator } from "langium/lib/workspace/ast-node-locator";
-import { AstNode } from "langium/lib/syntax-tree";
+import { AstNode, AstNodeLocator } from "langium";
export let treeRoot: ReactDOM.Root;
diff --git a/hugo/content/playground/common.ts b/hugo/content/playground/common.ts
index 054c916c..df5d166d 100644
--- a/hugo/content/playground/common.ts
+++ b/hugo/content/playground/common.ts
@@ -8,17 +8,18 @@ import {
HelloWorldGrammar,
LangiumMonarchContent,
DSLInitialContent,
-} from "./data";
-import { generateMonarch } from "./monarch-generator";
+} from "./data.js";
+import { generateMonarch } from "./monarch-generator.js";
import { decompressFromEncodedURIComponent } from 'lz-string';
import { Disposable } from "vscode-languageserver";
-import { render } from './Tree';
-import { overlay, throttle } from "./utils";
+import { render } from './Tree.js';
+import { overlay, throttle } from "./utils.js";
import { addMonacoStyles, createUserConfig, MonacoEditorLanguageClientWrapper } from "langium-website-core/bundle";
import { DocumentChangeResponse } from "langium-ast-helper";
-import { createServicesForGrammar, DefaultAstNodeLocator } from "langium";
+import { DefaultAstNodeLocator } from "langium";
+import { createServicesForGrammar } from "langium/grammar";
-export { share, overlay } from './utils';
+export { share, overlay } from './utils.js';
export { addMonacoStyles, MonacoEditorLanguageClientWrapper };
export interface PlaygroundParameters {
diff --git a/hugo/content/playground/langium-worker.ts b/hugo/content/playground/langium-worker.ts
index 05cdfc30..59eb71c3 100644
--- a/hugo/content/playground/langium-worker.ts
+++ b/hugo/content/playground/langium-worker.ts
@@ -4,10 +4,11 @@
* terms of the MIT License, which is available in the project root.
******************************************************************************/
-import { NotificationType } from 'vscode-languageserver/browser';
-import { DocumentChange, createServerConnection } from './worker-utils';
-import { EmptyFileSystem, createLangiumGrammarServices, DocumentState } from 'langium';
+import { NotificationType } from 'vscode-languageserver/browser.js';
+import { DocumentChange, createServerConnection } from './worker-utils.js';
+import { EmptyFileSystem, DocumentState } from 'langium';
import { startLanguageServer } from 'langium/lsp';
+import { createLangiumGrammarServices } from 'langium/grammar';
// establish a browser server connection
const connection = createServerConnection();
diff --git a/hugo/content/playground/monaco-utils.ts b/hugo/content/playground/monaco-utils.ts
deleted file mode 100644
index e74ae5db..00000000
--- a/hugo/content/playground/monaco-utils.ts
+++ /dev/null
@@ -1,114 +0,0 @@
-/******************************************************************************
- * Copyright 2022 TypeFox GmbH
- * This program and the accompanying materials are made available under the
- * terms of the MIT License, which is available in the project root.
- ******************************************************************************/
-
- import { MagicAction, Message, MessageWrapper, PlaygroundMessage, Notification, isNotification, DedicatedWorkerGlobalScope, MessageCallback } from "./types";
-import {
- AbstractMessageReader,
- BrowserMessageReader,
- BrowserMessageWriter,
- DataCallback,
- Disposable,
- Emitter,
- MessageReader,
- } from "vscode-languageserver/browser";
-
-export { BrowserMessageReader, BrowserMessageWriter };
-
-export class PlaygroundWrapper implements MessageWrapper {
- wrap(message: PlaygroundMessage): Message {
- return {
- jsonrpc: "2.0",
- method: MagicAction,
- params: [message],
- } as Notification;
- }
- unwrap(message: Message): PlaygroundMessage | null {
- if (isNotification(message) && message.method === MagicAction) {
- return message.params![0] as PlaygroundMessage;
- }
- return null;
- }
-}
-
-export class ByPassingMessageReader
- extends AbstractMessageReader
- implements MessageReader
-{
- private _onData: Emitter;
- private _onByPass: Emitter;
- private _messageListener: (event: MessageEvent) => void;
-
- public constructor(
- port: MessagePort | Worker | DedicatedWorkerGlobalScope,
- wrapper: MessageWrapper
- ) {
- super();
- this._onData = new Emitter();
- this._onByPass = new Emitter();
- this._messageListener = (event: MessageEvent) => {
- const unwrapped = wrapper.unwrap(event.data);
- if (unwrapped) {
- this._onByPass.fire(unwrapped);
- return;
- }
- this._onData.fire(event.data);
- };
- port.addEventListener("error", (event) => this.fireError(event));
- port.onmessage = this._messageListener;
- }
-
- public listen(callback: DataCallback): Disposable {
- return this._onData.event((x) => callback(x as any));
- }
-
- public listenByPass(callback: MessageCallback): Disposable {
- return this._onByPass.event(callback);
- }
-}
-
-export class ByPassingMessageWriter extends BrowserMessageWriter {
- public constructor(
- port: MessagePort | Worker | DedicatedWorkerGlobalScope,
- private wrapper: MessageWrapper
- ) {
- super(port);
- }
-
- public byPassWrite(message: T) {
- return this.write(this.wrapper.wrap(message));
- }
-}
-
-export interface MonacoConnection {
- reader: ByPassingMessageReader;
- writer: ByPassingMessageWriter;
-}
-
-export interface MonacoEditorResult {
- out: ByPassingMessageReader;
- in: ByPassingMessageWriter;
- editor: MonacoClient;
-}
-
-export interface MonacoConfig {
- getMainCode(): string;
- setMainCode(code: string): void;
- setMainLanguageId(name: string): void;
- setMonarchTokensProvider(monarch: any): void;
- theme: string;
- useLanguageClient: boolean;
- useWebSocket: boolean;
- setMonacoEditorOptions(monacoEditorOptions: Record): void;
-}
-
-export interface MonacoClient {
- getEditorConfig(): MonacoConfig;
- setWorker(worker: Worker, connection: MonacoConnection): void;
- startEditor(domElement: HTMLElement): void;
- updateLayout(): void;
- dispose(): Promise;
- getMainCode(): string;
-}
diff --git a/hugo/content/playground/monarch-generator.ts b/hugo/content/playground/monarch-generator.ts
index 59336082..e0c0c68d 100644
--- a/hugo/content/playground/monarch-generator.ts
+++ b/hugo/content/playground/monarch-generator.ts
@@ -4,8 +4,8 @@
* terms of the MIT License, which is available in the project root.
******************************************************************************/
-import { isCommentTerminal, terminalRegex, stream, escapeRegExp, getTerminalParts } from "langium";
-import ast from "langium";
+import { GrammarUtils, stream, RegExpUtils } from "langium";
+import { GrammarAST } from "langium";
import { languages } from "monaco-editor";
/**
@@ -119,7 +119,7 @@ interface MonarchGrammar {
* @param config Langium Config to also use during generation
* @returns Generated Monarch syntax highlighting file content
*/
-export function generateMonarch(grammar: ast.Grammar, id: string): languages.IMonarchLanguage {
+export function generateMonarch(grammar: GrammarAST.Grammar, id: string): languages.IMonarchLanguage {
const symbols = getSymbols(grammar);
const regex = /[{}[\]()]/;
const operators = symbols.filter((s) => !regex.test(s));
@@ -147,7 +147,7 @@ export function generateMonarch(grammar: ast.Grammar, id: string): languages.IMo
* @param grammar Langium grammar to source tokenizer states from
* @returns Array of tokenizer states
*/
-function getTokenizerStates(grammar: ast.Grammar): State[] {
+function getTokenizerStates(grammar: GrammarAST.Grammar): State[] {
// initial state, name is arbitrary, just needs to come first
const initialState: State = {
name: "initial",
@@ -224,7 +224,7 @@ function prettyPrintLangDef(
) {
const keywords = genLanguageDefEntry("keywords", languageDef.keywords);
const operators = genLanguageDefEntry("operators", languageDef.operators);
- const symbols = { symbols: new RegExp(languageDef.symbols.map(escapeRegExp).join("|"))}
+ const symbols = { symbols: new RegExp(languageDef.symbols.map(RegExpUtils.escapeRegExp).join("|"))}
return {
...keywords,
...operators,
@@ -298,7 +298,7 @@ function prettyPrintAction(action: Action | Case[]): Action {
* @param rule Rule to convert to a Monarch token name
* @returns Returns the equivalent monarch token name, or the original rule name
*/
-function getMonarchTokenName(rule: ast.TerminalRule): string {
+function getMonarchTokenName(rule: GrammarAST.TerminalRule): string {
if (rule.name.toLowerCase() === "string") {
// string is clarified as a terminal by name, but not necessarily by type
return "string";
@@ -316,24 +316,24 @@ function getMonarchTokenName(rule: ast.TerminalRule): string {
* @param grammar Langium grammar to extract whitespace rules from
* @returns Array of Monarch whitespace rules
*/
-function getWhitespaceRules(grammar: ast.Grammar): Rule[] {
+function getWhitespaceRules(grammar: GrammarAST.Grammar): Rule[] {
const rules: Rule[] = [];
for (const rule of grammar.rules) {
- if (ast.isTerminalRule(rule) && ast.isRegexToken(rule.definition)) {
- const regex = new RegExp(terminalRegex(rule));
+ if (GrammarAST.isTerminalRule(rule) && GrammarAST.isRegexToken(rule.definition)) {
+ const regex = new RegExp(GrammarUtils.terminalRegex(rule));
- if (!isCommentTerminal(rule) && !regex.test(" ")) {
+ if (!GrammarUtils.isCommentTerminal(rule) && !regex.test(" ")) {
// skip rules that are not comments or whitespace
continue;
}
// token name is either comment or whitespace
- const tokenName = isCommentTerminal(rule) ? "comment" : "white";
+ const tokenName = GrammarUtils.isCommentTerminal(rule) ? "comment" : "white";
- const part = getTerminalParts(terminalRegex(rule))[0];
+ const part = RegExpUtils.getTerminalParts(GrammarUtils.terminalRegex(rule))[0];
// check if this is a comment terminal w/ a start & end sequence (multi-line)
- if (part.start !== "" && part.end !== "" && isCommentTerminal(rule)) {
+ if (part.start !== "" && part.end !== "" && GrammarUtils.isCommentTerminal(rule)) {
// state-based comment rule, only add push to jump into it
rules.push({
regex: part.start.replace("/", "\\/"),
@@ -357,16 +357,16 @@ function getWhitespaceRules(grammar: ast.Grammar): Rule[] {
* @param grammar Langium grammar to extract comment rules from
* @returns Array of Monarch comment rules
*/
-function getCommentRules(grammar: ast.Grammar): Rule[] {
+function getCommentRules(grammar: GrammarAST.Grammar): Rule[] {
const rules: Rule[] = [];
for (const rule of grammar.rules) {
if (
- ast.isTerminalRule(rule) &&
- isCommentTerminal(rule) &&
- ast.isRegexToken(rule.definition)
+ GrammarAST.isTerminalRule(rule) &&
+ GrammarUtils.isCommentTerminal(rule) &&
+ GrammarAST.isRegexToken(rule.definition)
) {
const tokenName = "comment";
- const part = getTerminalParts(terminalRegex(rule))[0];
+ const part = RegExpUtils.getTerminalParts(GrammarUtils.terminalRegex(rule))[0];
if (part.start !== "" && part.end !== "") {
// rules to manage comment start/end
// rule order matters
@@ -402,15 +402,15 @@ function getCommentRules(grammar: ast.Grammar): Rule[] {
* @param grammar Grammar to get non-comment terminals from
* @returns Array of Rules to add to a Monarch tokenizer state
*/
-function getTerminalRules(grammar: ast.Grammar): Rule[] {
+function getTerminalRules(grammar: GrammarAST.Grammar): Rule[] {
const rules: Rule[] = [];
for (const rule of grammar.rules) {
if (
- ast.isTerminalRule(rule) &&
- !isCommentTerminal(rule) &&
- ast.isRegexToken(rule.definition)
+ GrammarAST.isTerminalRule(rule) &&
+ !GrammarUtils.isCommentTerminal(rule) &&
+ GrammarAST.isRegexToken(rule.definition)
) {
- const regex = new RegExp(terminalRegex(rule));
+ const regex = new RegExp(GrammarUtils.terminalRegex(rule));
if (regex.test(" ")) {
// disallow terminal rules that match whitespace
@@ -455,7 +455,7 @@ const KeywordRegex = /[A-Za-z]/;
* @param grammar Grammar to get keywords from
* @returns Array of keywords
*/
-function getKeywords(grammar: ast.Grammar): string[] {
+function getKeywords(grammar: GrammarAST.Grammar): string[] {
return collectKeywords(grammar).filter((kw) => KeywordRegex.test(kw));
}
@@ -464,14 +464,14 @@ function getKeywords(grammar: ast.Grammar): string[] {
* @param grammar Grammar to get symbols from
* @returns Array of symbols, effective inverse of getKeywords
*/
-function getSymbols(grammar: ast.Grammar): string[] {
+function getSymbols(grammar: GrammarAST.Grammar): string[] {
return collectKeywords(grammar).filter((kw) => !KeywordRegex.test(kw));
}
-export function collectKeywords(grammar: ast.Grammar): string[] {
+export function collectKeywords(grammar: GrammarAST.Grammar): string[] {
const keywords = new Set();
- for (const rule of stream(grammar.rules).filter(ast.isParserRule)) {
+ for (const rule of stream(grammar.rules).filter(GrammarAST.isParserRule)) {
collectElementKeywords(rule.definition, keywords);
}
@@ -479,20 +479,20 @@ export function collectKeywords(grammar: ast.Grammar): string[] {
}
function collectElementKeywords(
- element: ast.AbstractElement,
+ element: GrammarAST.AbstractElement,
keywords: Set
) {
if (
- ast.isAlternatives(element) ||
- ast.isGroup(element) ||
- ast.isUnorderedGroup(element)
+ GrammarAST.isAlternatives(element) ||
+ GrammarAST.isGroup(element) ||
+ GrammarAST.isUnorderedGroup(element)
) {
for (const item of element.elements) {
collectElementKeywords(item, keywords);
}
- } else if (ast.isAssignment(element)) {
+ } else if (GrammarAST.isAssignment(element)) {
collectElementKeywords(element.terminal, keywords);
- } else if (ast.isKeyword(element)) {
+ } else if (GrammarAST.isKeyword(element)) {
keywords.add(element.value);
}
}
diff --git a/hugo/content/playground/preprocess.ts b/hugo/content/playground/preprocess.ts
index a1ad43e8..d9bfd51f 100644
--- a/hugo/content/playground/preprocess.ts
+++ b/hugo/content/playground/preprocess.ts
@@ -4,8 +4,7 @@
* terms of the MIT License, which is available in the project root.
******************************************************************************/
-import { AstNode } from "langium/lib/syntax-tree";
-import { AstNodeLocator } from "langium/lib/workspace/ast-node-locator";
+import { AstNode, AstNodeLocator } from "langium";
/**
* Represents a serialized version of a reference to an AstNode
@@ -104,7 +103,7 @@ export function preprocessAstNodeObject(
const properties: PropertyNode[] = Object.keys(node)
.filter((n) => !n.startsWith("$"))
.map((n) => {
- const valueOrValues = node[n] as
+ const valueOrValues = ((node as any)[n]) as
| AstNode
| AstNode[]
| "string"
diff --git a/hugo/content/playground/types.ts b/hugo/content/playground/types.ts
index 82b6b747..7d86432b 100644
--- a/hugo/content/playground/types.ts
+++ b/hugo/content/playground/types.ts
@@ -4,7 +4,7 @@
* terms of the MIT License, which is available in the project root.
******************************************************************************/
-import { AstNode } from "langium/lib/syntax-tree";
+import { AstNode } from "langium";
import { Diagnostic } from "vscode-languageserver";
export declare type DedicatedWorkerGlobalScope = any;
@@ -71,7 +71,7 @@ export interface PlaygroundParameters {
}
export function isNotification(msg: Message): msg is Notification {
- return !msg["id"] && msg["method"];
+ return !("id" in msg) && ("method" in msg);
}
export type Message = Request | ResponseError | ResponseOK | Notification;
diff --git a/hugo/content/playground/user-worker.ts b/hugo/content/playground/user-worker.ts
index c77c2467..e752a43d 100644
--- a/hugo/content/playground/user-worker.ts
+++ b/hugo/content/playground/user-worker.ts
@@ -5,9 +5,10 @@
******************************************************************************/
import { NotificationType } from 'vscode-languageserver/browser.js';
-import { DocumentChange, createServerConnection } from './worker-utils';
+import { DocumentChange, createServerConnection } from './worker-utils.js';
import { startLanguageServer } from 'langium/lsp';
-import { DocumentState, createServicesForGrammar } from 'langium';
+import { DocumentState } from 'langium';
+import { createServicesForGrammar } from 'langium/grammar';
// listen for messages to trigger starting the LS with a given grammar
addEventListener('message', async (event) => {
diff --git a/hugo/content/playground/worker-utils.ts b/hugo/content/playground/worker-utils.ts
index 344d7a23..7a6ee503 100644
--- a/hugo/content/playground/worker-utils.ts
+++ b/hugo/content/playground/worker-utils.ts
@@ -1,4 +1,4 @@
-import { Diagnostic, BrowserMessageReader, BrowserMessageWriter, createConnection, Connection } from 'vscode-languageserver/browser';
+import { Diagnostic, BrowserMessageReader, BrowserMessageWriter, createConnection, Connection } from 'vscode-languageserver/browser.js';
/**
* Describes a notification that can be sent from the LS,
diff --git a/hugo/tsconfig.json b/hugo/tsconfig.json
index f85b0601..0c1fa7ba 100644
--- a/hugo/tsconfig.json
+++ b/hugo/tsconfig.json
@@ -7,7 +7,8 @@
"rootDir": ".",
"outDir": "dist",
"declaration": true,
- "declarationDir": "dist"
+ "declarationDir": "dist",
+ "jsx": "react-jsx"
},
"include": [
"**/*.ts",
From e0e3ec5f37f9cf69826f3a96c815d944d62efec1 Mon Sep 17 00:00:00 2001
From: Markus Rudolph
Date: Wed, 20 Mar 2024 10:15:37 +0100
Subject: [PATCH 08/14] Save the migration of MonarchGenerator
---
hugo/content/playground/common.ts | 10 +-
hugo/content/playground/data.ts | 349 +++++++++++++++----
hugo/content/playground/monarch-generator.ts | 34 +-
hugo/package.json | 2 +-
package-lock.json | 2 +-
5 files changed, 300 insertions(+), 97 deletions(-)
diff --git a/hugo/content/playground/common.ts b/hugo/content/playground/common.ts
index df5d166d..df1ebc94 100644
--- a/hugo/content/playground/common.ts
+++ b/hugo/content/playground/common.ts
@@ -6,7 +6,7 @@
import {
HelloWorldGrammar,
- LangiumMonarchContent,
+ LangiumTextMateContent,
DSLInitialContent,
} from "./data.js";
import { generateMonarch } from "./monarch-generator.js";
@@ -158,7 +158,7 @@ export async function setupPlayground(
await setupDSLWrapper();
overlay(false, false);
- }).catch(async (e) => {
+ }).catch(async (e: any) => {
// failed to dispose, report & discard this error
// can happen when a previous editor was not started correctly
console.error('DSL editor disposal error: ' + e);
@@ -224,7 +224,7 @@ async function getFreshDSLWrapper(
monarchGrammar: generateMonarch(Grammar, languageId)
}), htmlElement).then(() => {
return wrapper;
- }).catch(async (e) => {
+ }).catch(async (e: any) => {
console.error('Failed to start DSL wrapper: ' + e);
// don't leak the worker on failure to start
// normally we wouldn't need to manually terminate, but if the LC is stuck in the 'starting' state, the following dispose will fail prematurely
@@ -235,7 +235,7 @@ async function getFreshDSLWrapper(
try {
await wrapper.dispose();
} catch (e) {}
- return undefined;
+ return undefined as MonacoEditorLanguageClientWrapper|undefined;
});
}
@@ -252,7 +252,7 @@ async function getFreshLangiumWrapper(htmlElement: HTMLElement): Promise",
- ",",
- ";",
- ":",
- "!",
- "?",
- "?=",
- ".",
- "..",
- "@",
- "*",
- "&",
- "+",
- "+=",
- "<",
- "=",
- "=>",
- ">",
- "|",
+ "patterns": [
+ {
+ "include": "#regex"
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "name": "keyword.control.langium",
+ "match": "\\b(current|entry|extends|fragment|grammar|hidden|import|infer|infers|interface|returns|terminal|type|with)\\b"
+ },
+ {
+ "name": "constant.language.langium",
+ "match": "\\b(?i:true|false)\\b"
+ },
+ {
+ "name": "keyword.symbol.langium",
+ "match": "(\\{|\\}|\\:|\\]|\\[|\\(|\\)|(\\??|\\+?)\\=|->|\\=>|<|>|\\,|\\*|\\+|\\@|\\||\\&|\\?|\\!|\\;)"
+ },
+ {
+ "name": "string.quoted.double.langium",
+ "begin": "\"",
+ "end": "\"",
+ "patterns": [
+ {
+ "include": "#string-character-escape"
+ }
+ ]
+ },
+ {
+ "name": "string.quoted.single.langium",
+ "begin": "'",
+ "end": "'",
+ "patterns": [
+ {
+ "include": "#string-character-escape"
+ }
+ ]
+ }
],
- symbols:
- /->|,|;|:|!|\?|\?=|\.|\.\.|\(|\)|\[|\[\]|\]|\{|\}|@|\*|&|\+|\+=|<|=|=>|>|\|/,
-
- tokenizer: {
- initial: [
+ "repository": {
+ "comments": {
+ "patterns": [
+ {
+ "name": "comment.block.langium",
+ "begin": "/\\*",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.langium"
+ }
+ },
+ "end": "\\*/",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.langium"
+ }
+ }
+ },
+ {
+ "begin": "(^\\s+)?(?=//)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.whitespace.comment.leading.cs"
+ }
+ },
+ "end": "(?=$)",
+ "name": "comment.line.langium"
+ }
+ ]
+ },
+ "string-character-escape": {
+ "name": "constant.character.escape.langium",
+ "match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"
+ },
+ "regex": {
+ "patterns": [
+ {
+ "name": "string.regexp.ts",
+ "begin": "(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([a-z]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.begin.ts"
+ }
+ },
+ "end": "(/)([a-z]*)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.end.ts"
+ },
+ "2": {
+ "name": "keyword.other.ts"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#regexp"
+ }
+ ]
+ },
+ {
+ "name": "string.regexp.ts",
+ "begin": "((?",
+ "captures": {
+ "0": {
+ "name": "keyword.other.back-reference.regexp"
},
+ "1": {
+ "name": "variable.other.regexp"
+ }
+ }
+ },
+ {
+ "name": "keyword.operator.quantifier.regexp",
+ "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"
+ },
+ {
+ "name": "keyword.operator.or.regexp",
+ "match": "\\|"
+ },
+ {
+ "name": "meta.group.assertion.regexp",
+ "begin": "(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.group.regexp"
+ },
+ "1": {
+ "name": "punctuation.definition.group.no-capture.regexp"
+ },
+ "2": {
+ "name": "variable.other.regexp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.group.regexp"
+ }
},
+ "patterns": [
+ {
+ "include": "#regexp"
+ }
+ ]
},
- { regex: /"[^"]*"|'[^']*'/, action: { token: "string" } },
- { include: "@whitespace" },
{
- regex: /@symbols/,
- action: {
- cases: {
- "@operators": { token: "operator" },
- "@default": { token: "" },
+ "name": "constant.other.character-class.set.regexp",
+ "begin": "(\\[)(\\^)?",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.character-class.regexp"
},
+ "2": {
+ "name": "keyword.operator.negation.regexp"
+ }
},
+ "end": "(\\])",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.character-class.regexp"
+ }
+ },
+ "patterns": [
+ {
+ "name": "constant.other.character-class.range.regexp",
+ "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",
+ "captures": {
+ "1": {
+ "name": "constant.character.numeric.regexp"
+ },
+ "2": {
+ "name": "constant.character.control.regexp"
+ },
+ "3": {
+ "name": "constant.character.escape.backslash.regexp"
+ },
+ "4": {
+ "name": "constant.character.numeric.regexp"
+ },
+ "5": {
+ "name": "constant.character.control.regexp"
+ },
+ "6": {
+ "name": "constant.character.escape.backslash.regexp"
+ }
+ }
+ },
+ {
+ "include": "#regex-character-class"
+ }
+ ]
},
- ],
- whitespace: [
- { regex: /\s+/, action: { token: "white" } },
- { regex: /\/\*/, action: { token: "comment", next: "@comment" } },
- { regex: /\/\/[^\n\r]*/, action: { token: "comment" } },
- ],
- comment: [
- { regex: /[^\/\*]+/, action: { token: "comment" } },
- { regex: /\*\//, action: { token: "comment", next: "@pop" } },
- { regex: /[\/\*]/, action: { token: "comment" } },
- ],
+ {
+ "include": "#regex-character-class"
+ }
+ ]
},
+ "regex-character-class": {
+ "patterns": [
+ {
+ "name": "constant.other.character-class.regexp",
+ "match": "\\\\[wWsSdDtrnvf]|\\."
+ },
+ {
+ "name": "constant.character.numeric.regexp",
+ "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"
+ },
+ {
+ "name": "constant.character.control.regexp",
+ "match": "\\\\c[A-Z]"
+ },
+ {
+ "name": "constant.character.escape.backslash.regexp",
+ "match": "\\\\."
+ }
+ ]
+ }
+ }
};
export const HelloWorldGrammar = `grammar HelloWorld
diff --git a/hugo/content/playground/monarch-generator.ts b/hugo/content/playground/monarch-generator.ts
index e0c0c68d..f8ac8006 100644
--- a/hugo/content/playground/monarch-generator.ts
+++ b/hugo/content/playground/monarch-generator.ts
@@ -4,9 +4,7 @@
* terms of the MIT License, which is available in the project root.
******************************************************************************/
-import { GrammarUtils, stream, RegExpUtils } from "langium";
-import { GrammarAST } from "langium";
-import { languages } from "monaco-editor";
+import { GrammarAST, GrammarUtils, RegExpUtils, stream } from "langium";
/**
* Monarch Language Definition, describes aspects & token categories of target language
@@ -119,7 +117,7 @@ interface MonarchGrammar {
* @param config Langium Config to also use during generation
* @returns Generated Monarch syntax highlighting file content
*/
-export function generateMonarch(grammar: GrammarAST.Grammar, id: string): languages.IMonarchLanguage {
+export function generateMonarch(grammar: GrammarAST.Grammar, id: string) {
const symbols = getSymbols(grammar);
const regex = /[{}[\]()]/;
const operators = symbols.filter((s) => !regex.test(s));
@@ -194,14 +192,14 @@ function getTokenizerStates(grammar: GrammarAST.Grammar): State[] {
* @param monarchGrammar Grammar to pretty print
* @returns Monarch grammar in concrete form
*/
-function prettyPrint(monarchGrammar: MonarchGrammar): languages.IMonarchLanguage {
+function prettyPrint(monarchGrammar: MonarchGrammar) {
const name = monarchGrammar.languageDefinition.name;
const languages = prettyPrintLangDef(monarchGrammar.languageDefinition);
const tokenizer = prettyPrintTokenizer(monarchGrammar.tokenizer);
return {
...languages,
- tokenizer
+ ...tokenizer
};
}
@@ -236,20 +234,20 @@ function prettyPrintLangDef(
* Pretty prints the tokenizer portion of a Monarch grammar file
* @param tokenizer Tokenizer portion to print out
*/
-function prettyPrintTokenizer(tokenizer: Tokenizer): {
- [name: string]: languages.IMonarchLanguageRule[];
-} {
+function prettyPrintTokenizer(tokenizer: Tokenizer) {
const result = tokenizer.states
.map((s) => prettyPrintState(s))
.reduce((lhs, rhs) => ({ ...lhs, ...rhs }), {});
- return result;
+ return {
+ tokenizer: result,
+ };
}
/**
* Pretty prints a tokenizer state, composed of various rules
* @param state Tokenizer state to pretty print
*/
-function prettyPrintState(state: State): {[name: string]: languages.IMonarchLanguageRule[]} {
+function prettyPrintState(state: State) {
return {
[state.name]: state.rules.map((r) => prettyPrintRule(r)),
};
@@ -261,13 +259,15 @@ function prettyPrintState(state: State): {[name: string]: languages.IMonarchLang
* @param ruleOrState Rule to pretty print. If it's a state, we include that state's contents implicitly within this context.
* @returns Generator node containing this printed rule
*/
-function prettyPrintRule(ruleOrState: Rule | State): languages.IMonarchLanguageRule {
+function prettyPrintRule(ruleOrState: Rule | State): Rule {
if (isRegexRule(ruleOrState)) {
- const regex = ruleOrState.regex instanceof RegExp
- ? ruleOrState.regex
- : new RegExp(ruleOrState.regex);
- const action = prettyPrintAction(ruleOrState.action);
- return [regex, action] as const;
+ return {
+ regex:
+ ruleOrState.regex instanceof RegExp
+ ? ruleOrState.regex
+ : new RegExp(ruleOrState.regex),
+ action: prettyPrintAction(ruleOrState.action),
+ };
} else if (isIncludeRule(ruleOrState)) {
return ruleOrState;
} else {
diff --git a/hugo/package.json b/hugo/package.json
index 358ea7a8..7b46358e 100644
--- a/hugo/package.json
+++ b/hugo/package.json
@@ -48,7 +48,7 @@
"langium-statemachine-dsl": "^3.0.0",
"langium-website-core": "~1.0.0",
"lz-string": "^1.4.4",
- "monaco-editor-workers": "~0.45.0",
+ "monaco-editor-workers": "~0.44.0",
"react": "~18.2.0",
"react-dom": "~18.2.0",
"vscode-languageserver": "~9.0.1"
diff --git a/package-lock.json b/package-lock.json
index 0f548b3d..4d451611 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -211,7 +211,7 @@
"langium-statemachine-dsl": "^3.0.0",
"langium-website-core": "~1.0.0",
"lz-string": "^1.4.4",
- "monaco-editor-workers": "~0.45.0",
+ "monaco-editor-workers": "~0.44.0",
"react": "~18.2.0",
"react-dom": "~18.2.0",
"vscode-languageserver": "~9.0.1"
From 8e6a210284968e0d049ab176c91af0f9e5d0305d Mon Sep 17 00:00:00 2001
From: Markus Rudolph
Date: Wed, 20 Mar 2024 10:32:01 +0100
Subject: [PATCH 09/14] Fix syntax highlighting
---
hugo/content/playground/common.ts | 7 +-
hugo/content/playground/monarch-generator.ts | 498 ------------------
hugo/content/playground/textmate-generator.ts | 255 +++++++++
3 files changed, 258 insertions(+), 502 deletions(-)
delete mode 100644 hugo/content/playground/monarch-generator.ts
create mode 100644 hugo/content/playground/textmate-generator.ts
diff --git a/hugo/content/playground/common.ts b/hugo/content/playground/common.ts
index df1ebc94..a5fe6017 100644
--- a/hugo/content/playground/common.ts
+++ b/hugo/content/playground/common.ts
@@ -9,7 +9,6 @@ import {
LangiumTextMateContent,
DSLInitialContent,
} from "./data.js";
-import { generateMonarch } from "./monarch-generator.js";
import { decompressFromEncodedURIComponent } from 'lz-string';
import { Disposable } from "vscode-languageserver";
import { render } from './Tree.js';
@@ -18,7 +17,7 @@ import { addMonacoStyles, createUserConfig, MonacoEditorLanguageClientWrapper }
import { DocumentChangeResponse } from "langium-ast-helper";
import { DefaultAstNodeLocator } from "langium";
import { createServicesForGrammar } from "langium/grammar";
-
+import { generateTextMate } from "./textmate-generator.js";
export { share, overlay } from './utils.js';
export { addMonacoStyles, MonacoEditorLanguageClientWrapper };
@@ -221,7 +220,7 @@ async function getFreshDSLWrapper(
languageId,
code,
worker,
- monarchGrammar: generateMonarch(Grammar, languageId)
+ textmateGrammar: generateTextMate(Grammar, {id: languageId, grammar: 'UserGrammar'})
}), htmlElement).then(() => {
return wrapper;
}).catch(async (e: any) => {
@@ -252,7 +251,7 @@ async function getFreshLangiumWrapper(htmlElement: HTMLElement): Promise;
-}
-
-/**
- * A rule that matches input. Can have either an action, or an array of cases.
- */
-interface RegexRule {
- regex: RegExp | string;
- action: Action | Case[];
-}
-
-interface IncludeRule {
- include: string;
-}
-
-type Rule = RegexRule | IncludeRule;
-
-/**
- * A case that selects a specific action by matching a guard pattern
- */
-interface Case {
- guard: string;
- action: Action;
-}
-
-/**
- * Determines whether a given object is a Rule instance
- * @param obj Object to check
- * @returns Whether this object is a Rule
- */
-function isRegexRule(obj: State | Rule): obj is RegexRule {
- return (
- (obj as RegexRule).regex !== undefined &&
- (obj as RegexRule).action !== undefined
- );
-}
-
-function isIncludeRule(obj: State | Rule): obj is IncludeRule {
- return (obj as IncludeRule).include !== undefined;
-}
-
-/**
- * Name of a token type, such as 'string'
- */
-type Token = string;
-
-/**
- * Token class to be used for CSS rendering, such as 'keyword', 'component', or 'type.identifer'
- */
-type TokenClass = string;
-
-/**
- * Next state that proceeds from an action, can also be a pop or a push of the current state (like for nested block comments)
- */
-type NextState = StateName | "@pop" | "@push";
-
-/**
- * An action performed when a rule (or a case) matches token.
- * It can determine the token class, as well whether to push/pop a tokenizer state
- */
-interface Action {
- token?: Token;
- tokenClass?: TokenClass;
- next?: NextState;
- cases?: { [name: string]: Action };
- // other more advanced states omitted...
-}
-
-/**
- * Abstract representation of a Monarch grammar file
- */
-interface MonarchGrammar {
- readonly languageDefinition: LanguageDefinition;
- readonly tokenizer: Tokenizer;
-}
-
-/**
- * Generates a Monarch highlighting grammar file's contents, based on the passed Langium grammar
- * @param grammar Langium grammar to use in generating this Monarch syntax highlighting file content
- * @param config Langium Config to also use during generation
- * @returns Generated Monarch syntax highlighting file content
- */
-export function generateMonarch(grammar: GrammarAST.Grammar, id: string) {
- const symbols = getSymbols(grammar);
- const regex = /[{}[\]()]/;
- const operators = symbols.filter((s) => !regex.test(s));
-
- // build absract monarch grammar representation
- const monarchGrammar: MonarchGrammar = {
- languageDefinition: {
- name: id, // identifier for generating the grammar export
- keywords: getKeywords(grammar),
- operators,
- symbols,
- tokenPostfix: "." + id, // category appended to all tokens
- },
- tokenizer: {
- states: getTokenizerStates(grammar),
- },
- };
-
- // return concrete monarch grammar representation
- return prettyPrint(monarchGrammar);
-}
-
-/**
- * Gets Monarch tokenizer states from a Langium grammar
- * @param grammar Langium grammar to source tokenizer states from
- * @returns Array of tokenizer states
- */
-function getTokenizerStates(grammar: GrammarAST.Grammar): State[] {
- // initial state, name is arbitrary, just needs to come first
- const initialState: State = {
- name: "initial",
- rules: getTerminalRules(grammar),
- };
-
- const whitespaceState: State = {
- name: "whitespace",
- rules: getWhitespaceRules(grammar),
- };
-
- const commentState: State = {
- name: "comment",
- rules: getCommentRules(grammar),
- };
-
- // order the following additional rules, to prevent
- // comment sequences being classified as symbols
-
- // add include for the whitespace state
- initialState.rules.push(whitespaceState);
-
- // add operator & symbol case handling
- initialState.rules.push({
- regex: "@symbols",
- action: [
- {
- guard: "@operators",
- action: { token: "operator" },
- },
- // by default, leave the symbol alone
- {
- guard: "@default",
- action: { token: "" },
- },
- ],
- });
-
- return [initialState, whitespaceState, commentState];
-}
-
-/**
- * Pretty prints a monarch grammar into a concrete form, suitable for writing to a file
- * @param monarchGrammar Grammar to pretty print
- * @returns Monarch grammar in concrete form
- */
-function prettyPrint(monarchGrammar: MonarchGrammar) {
- const name = monarchGrammar.languageDefinition.name;
-
- const languages = prettyPrintLangDef(monarchGrammar.languageDefinition);
- const tokenizer = prettyPrintTokenizer(monarchGrammar.tokenizer);
- return {
- ...languages,
- ...tokenizer
- };
-}
-
-/**
- * Generates an entry for a language definition, given a name (token category) and values
- * @param name Category of language definition to add
- * @param values Values to add under the given category
- * @returns GeneratorNode containing this printed language definition entry
- */
-function genLanguageDefEntry(name: string, values: string[]) {
- return { [name]: values };
-}
-
-/**
- * Pretty prints the language definition portion of a Monarch grammar
- * @param languageDef LanguageDefinition to pretty print
- */
-function prettyPrintLangDef(
- languageDef: LanguageDefinition,
-) {
- const keywords = genLanguageDefEntry("keywords", languageDef.keywords);
- const operators = genLanguageDefEntry("operators", languageDef.operators);
- const symbols = { symbols: new RegExp(languageDef.symbols.map(RegExpUtils.escapeRegExp).join("|"))}
- return {
- ...keywords,
- ...operators,
- ...symbols
- };
-}
-
-/**
- * Pretty prints the tokenizer portion of a Monarch grammar file
- * @param tokenizer Tokenizer portion to print out
- */
-function prettyPrintTokenizer(tokenizer: Tokenizer) {
- const result = tokenizer.states
- .map((s) => prettyPrintState(s))
- .reduce((lhs, rhs) => ({ ...lhs, ...rhs }), {});
- return {
- tokenizer: result,
- };
-}
-
-/**
- * Pretty prints a tokenizer state, composed of various rules
- * @param state Tokenizer state to pretty print
- */
-function prettyPrintState(state: State) {
- return {
- [state.name]: state.rules.map((r) => prettyPrintRule(r)),
- };
-}
-
-/**
- * Pretty prints a Rule.
- * This can either be a literal rule to match w/ an action, or a reference to a state to include here
- * @param ruleOrState Rule to pretty print. If it's a state, we include that state's contents implicitly within this context.
- * @returns Generator node containing this printed rule
- */
-function prettyPrintRule(ruleOrState: Rule | State): Rule {
- if (isRegexRule(ruleOrState)) {
- return {
- regex:
- ruleOrState.regex instanceof RegExp
- ? ruleOrState.regex
- : new RegExp(ruleOrState.regex),
- action: prettyPrintAction(ruleOrState.action),
- };
- } else if (isIncludeRule(ruleOrState)) {
- return ruleOrState;
- } else {
- // include another state by name, implicitly includes all of its contents
- return { include: `@${ruleOrState.name}` };
- }
-}
-
-/**
- * Pretty prints the action of a Rule
- * @param action Action to print. Can have several keywords to control what the state machine should do next.
- * @returns Action in concrete form
- */
-function prettyPrintAction(action: Action | Case[]): Action {
- if (!Array.isArray(action)) {
- return action;
- } else {
- const cases: { [name: string]: Action } = {};
- action.forEach((a) => {
- cases[a.guard] = prettyPrintAction(a.action);
- });
- return { cases };
- }
-}
-
-/**
- * Extracts Monarch token name from a Langium terminal rule, using either name or type.
- * @param rule Rule to convert to a Monarch token name
- * @returns Returns the equivalent monarch token name, or the original rule name
- */
-function getMonarchTokenName(rule: GrammarAST.TerminalRule): string {
- if (rule.name.toLowerCase() === "string") {
- // string is clarified as a terminal by name, but not necessarily by type
- return "string";
- } else if (rule.type) {
- // use rule type
- return rule.type.name;
- } else {
- // fallback to the original name
- return rule.name;
- }
-}
-
-/**
- * Gets whitespace rules from the langium grammar. Includes starting comment sequence.
- * @param grammar Langium grammar to extract whitespace rules from
- * @returns Array of Monarch whitespace rules
- */
-function getWhitespaceRules(grammar: GrammarAST.Grammar): Rule[] {
- const rules: Rule[] = [];
- for (const rule of grammar.rules) {
- if (GrammarAST.isTerminalRule(rule) && GrammarAST.isRegexToken(rule.definition)) {
- const regex = new RegExp(GrammarUtils.terminalRegex(rule));
-
- if (!GrammarUtils.isCommentTerminal(rule) && !regex.test(" ")) {
- // skip rules that are not comments or whitespace
- continue;
- }
-
- // token name is either comment or whitespace
- const tokenName = GrammarUtils.isCommentTerminal(rule) ? "comment" : "white";
-
- const part = RegExpUtils.getTerminalParts(GrammarUtils.terminalRegex(rule))[0];
-
- // check if this is a comment terminal w/ a start & end sequence (multi-line)
- if (part.start !== "" && part.end !== "" && GrammarUtils.isCommentTerminal(rule)) {
- // state-based comment rule, only add push to jump into it
- rules.push({
- regex: part.start.replace("/", "\\/"),
- action: { token: tokenName, next: "@" + tokenName },
- });
- } else {
- // single regex rule, generally for whitespace
- rules.push({
- regex: rule.definition.regex,
- action: { token: tokenName },
- });
- }
- }
- }
- return rules;
-}
-
-/**
- * Gets comment state rules from the Langium grammar.
- * Accounts for multi-line comments, but without nesting.
- * @param grammar Langium grammar to extract comment rules from
- * @returns Array of Monarch comment rules
- */
-function getCommentRules(grammar: GrammarAST.Grammar): Rule[] {
- const rules: Rule[] = [];
- for (const rule of grammar.rules) {
- if (
- GrammarAST.isTerminalRule(rule) &&
- GrammarUtils.isCommentTerminal(rule) &&
- GrammarAST.isRegexToken(rule.definition)
- ) {
- const tokenName = "comment";
- const part = RegExpUtils.getTerminalParts(GrammarUtils.terminalRegex(rule))[0];
- if (part.start !== "" && part.end !== "") {
- // rules to manage comment start/end
- // rule order matters
-
- const start = part.start.replace("/", "\\/");
- const end = part.end.replace("/", "\\/");
-
- // 1st, add anything that's not in the start sequence
- rules.push({
- regex: `[^${start}]+`,
- action: { token: tokenName },
- });
-
- // 2nd, end of sequence, pop this state, keeping others on the stack
- rules.push({
- regex: end,
- action: { token: tokenName, next: "@pop" },
- });
-
- // 3rd, otherwise, start sequence characters are OK in this state
- rules.push({
- regex: `[${start}]`,
- action: { token: tokenName },
- });
- }
- }
- }
- return rules;
-}
-
-/**
- * Retrieves non-comment terminal rules, creating associated actions for them
- * @param grammar Grammar to get non-comment terminals from
- * @returns Array of Rules to add to a Monarch tokenizer state
- */
-function getTerminalRules(grammar: GrammarAST.Grammar): Rule[] {
- const rules: Rule[] = [];
- for (const rule of grammar.rules) {
- if (
- GrammarAST.isTerminalRule(rule) &&
- !GrammarUtils.isCommentTerminal(rule) &&
- GrammarAST.isRegexToken(rule.definition)
- ) {
- const regex = new RegExp(GrammarUtils.terminalRegex(rule));
-
- if (regex.test(" ")) {
- // disallow terminal rules that match whitespace
- continue;
- }
-
- const tokenName = getMonarchTokenName(rule);
- // default action...
- let action: Action | Case[] = { token: tokenName };
-
- if (getKeywords(grammar).some((keyword) => regex.test(keyword))) {
- // this rule overlaps with at least one keyword
- // add case so keywords aren't tagged incorrectly as this token type
- action = [
- {
- guard: "@keywords",
- action: { token: "keyword" },
- },
- {
- guard: "@default",
- action, // include default action from above
- },
- ];
- }
-
- rules.push({
- regex: rule.definition.regex,
- action,
- });
- }
- }
- return rules;
-}
-
-/**
- * Keyword regex for matching keyword terminals, or for only collecting symbol terminals
- */
-const KeywordRegex = /[A-Za-z]/;
-
-/**
- * Retrieves keywords from the current grammar
- * @param grammar Grammar to get keywords from
- * @returns Array of keywords
- */
-function getKeywords(grammar: GrammarAST.Grammar): string[] {
- return collectKeywords(grammar).filter((kw) => KeywordRegex.test(kw));
-}
-
-/**
- * Retrieve symbols from langium grammar
- * @param grammar Grammar to get symbols from
- * @returns Array of symbols, effective inverse of getKeywords
- */
-function getSymbols(grammar: GrammarAST.Grammar): string[] {
- return collectKeywords(grammar).filter((kw) => !KeywordRegex.test(kw));
-}
-
-export function collectKeywords(grammar: GrammarAST.Grammar): string[] {
- const keywords = new Set();
-
- for (const rule of stream(grammar.rules).filter(GrammarAST.isParserRule)) {
- collectElementKeywords(rule.definition, keywords);
- }
-
- return Array.from(keywords).sort((a, b) => a.localeCompare(b));
-}
-
-function collectElementKeywords(
- element: GrammarAST.AbstractElement,
- keywords: Set
-) {
- if (
- GrammarAST.isAlternatives(element) ||
- GrammarAST.isGroup(element) ||
- GrammarAST.isUnorderedGroup(element)
- ) {
- for (const item of element.elements) {
- collectElementKeywords(item, keywords);
- }
- } else if (GrammarAST.isAssignment(element)) {
- collectElementKeywords(element.terminal, keywords);
- } else if (GrammarAST.isKeyword(element)) {
- keywords.add(element.value);
- }
-}
diff --git a/hugo/content/playground/textmate-generator.ts b/hugo/content/playground/textmate-generator.ts
new file mode 100644
index 00000000..c6458606
--- /dev/null
+++ b/hugo/content/playground/textmate-generator.ts
@@ -0,0 +1,255 @@
+/******************************************************************************
+ * Copyright 2021-2022 TypeFox GmbH
+ * This program and the accompanying materials are made available under the
+ * terms of the MIT License, which is available in the project root.
+******************************************************************************/
+//ATTENTION!!! This file is basically copied from langium-cli!
+import type { Grammar } from 'langium';
+import { AstUtils, GrammarAST, GrammarUtils, RegExpUtils, stream, IParserConfig } from 'langium';
+
+/* eslint-disable dot-notation */
+
+export interface LangiumLanguageConfig {
+ /** The identifier of your language as used in vscode */
+ id: string
+ /** Path to the grammar file */
+ grammar: string
+ /** File extensions with leading `.` */
+ fileExtensions?: string[]
+ /** Enable case-insensitive keywords parsing */
+ caseInsensitive?: boolean
+ /** Enable generating a TextMate syntax highlighting file */
+ textMate?: {
+ /** Output path to syntax highlighting file */
+ out: string
+ }
+ /** Enable generating a Monarch syntax highlighting file */
+ monarch?: {
+ /** Output path to syntax highlighting file */
+ out: string
+ }
+ /** Enable generating a Prism syntax highlighting file */
+ prism?: {
+ /** Output path to syntax highlighting file */
+ out: string
+ }
+ /** Enable generating railroad syntax diagrams */
+ railroad?: {
+ /** Output path for railroad diagrams */
+ out: string;
+ /** Whether to print diagrams all into a single html file or in separate svg files */
+ mode?: 'html' | 'svg';
+ /** Path to a css file that will be included in the generated output files */
+ css?: string;
+ }
+ /** Configure the chevrotain parser for a single language */
+ chevrotainParserConfig?: IParserConfig
+}
+
+
+export interface TextMateGrammar {
+ repository: Repository;
+ readonly scopeName: string;
+ readonly patterns: Pattern[];
+ readonly injections?: { [expression: string]: Pattern };
+ readonly injectionSelector?: string;
+ readonly fileTypes?: string[];
+ readonly name?: string;
+ readonly firstLineMatch?: string;
+}
+
+export interface Repository {
+ [name: string]: Pattern;
+}
+
+export interface Pattern {
+ id?: number;
+ readonly include?: string;
+ readonly name?: string;
+ readonly contentName?: string;
+ readonly match?: string;
+ readonly captures?: Captures;
+ readonly begin?: string;
+ readonly beginCaptures?: Captures;
+ readonly end?: string;
+ readonly endCaptures?: Captures;
+ readonly while?: string;
+ readonly whileCaptures?: Captures;
+ readonly patterns?: Pattern[];
+ readonly repository?: Repository;
+ readonly applyEndPatternLast?: boolean;
+}
+
+export interface Captures {
+ [captureId: string]: Pattern;
+}
+
+export function generateTextMate(grammar: Grammar, config: LangiumLanguageConfig): TextMateGrammar {
+ const json: TextMateGrammar = {
+ name: config.id,
+ scopeName: `source.${config.id}`,
+ fileTypes: config.fileExtensions ?? [],
+ patterns: getPatterns(grammar, config),
+ repository: getRepository(grammar, config)
+ };
+
+ return json;
+}
+
+function getPatterns(grammar: Grammar, config: LangiumLanguageConfig): Pattern[] {
+ const patterns: Pattern[] = [];
+ patterns.push({
+ include: '#comments'
+ });
+ patterns.push(getControlKeywords(grammar, config));
+ patterns.push(...getStringPatterns(grammar, config));
+ return patterns;
+}
+
+function getRepository(grammar: Grammar, config: LangiumLanguageConfig): Repository {
+ const repository: Repository = {};
+ const commentPatterns: Pattern[] = [];
+ let stringEscapePattern: Pattern | undefined;
+ for (const rule of grammar.rules) {
+ if (GrammarAST.isTerminalRule(rule) && GrammarUtils.isCommentTerminal(rule)) {
+ const parts = RegExpUtils.getTerminalParts(GrammarUtils.terminalRegex(rule));
+ for (const part of parts) {
+ if (part.end) {
+ commentPatterns.push({
+ 'name': `comment.block.${config.id}`,
+ 'begin': part.start,
+ 'beginCaptures': {
+ '0': {
+ 'name': `punctuation.definition.comment.${config.id}`
+ }
+ },
+ 'end': part.end,
+ 'endCaptures': {
+ '0': {
+ 'name': `punctuation.definition.comment.${config.id}`
+ }
+ }
+ });
+ } else {
+ commentPatterns.push({
+ 'begin': part.start,
+ 'beginCaptures': {
+ '1': {
+ 'name': `punctuation.whitespace.comment.leading.${config.id}`
+ }
+ },
+ 'end': '(?=$)',
+ 'name': `comment.line.${config.id}`
+ });
+ }
+ }
+ } else if (GrammarAST.isTerminalRule(rule) && rule.name.toLowerCase() === 'string') {
+ stringEscapePattern = {
+ 'name': `constant.character.escape.${config.id}`,
+ 'match': '\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)'
+ };
+ }
+ }
+
+ if (commentPatterns.length > 0) {
+ repository['comments'] = {
+ 'patterns': commentPatterns
+ };
+ }
+ if (stringEscapePattern) {
+ repository['string-character-escape'] = stringEscapePattern;
+ }
+ return repository;
+}
+
+function getControlKeywords(grammar: Grammar, pack: LangiumLanguageConfig): Pattern {
+ const regex = /[A-Za-z]/;
+ const controlKeywords = collectKeywords(grammar).filter(kw => regex.test(kw));
+ const groups = groupKeywords(controlKeywords, pack.caseInsensitive);
+ return {
+ 'name': `keyword.control.${pack.id}`,
+ 'match': groups.join('|')
+ };
+}
+
+function groupKeywords(keywords: string[], caseInsensitive: boolean | undefined): string[] {
+ const groups: {
+ letter: string[],
+ leftSpecial: string[],
+ rightSpecial: string[],
+ special: string[];
+ } = { letter: [], leftSpecial: [], rightSpecial: [], special: [] };
+
+ keywords.forEach(keyword => {
+ const keywordPattern = caseInsensitive ? RegExpUtils.getCaseInsensitivePattern(keyword) : RegExpUtils.escapeRegExp(keyword);
+ if (/\w/.test(keyword[0])) {
+ if (/\w/.test(keyword[keyword.length - 1])) {
+ groups.letter.push(keywordPattern);
+ } else {
+ groups.rightSpecial.push(keywordPattern);
+ }
+ } else {
+ if ((/\w/).test(keyword[keyword.length - 1])) {
+ groups.leftSpecial.push(keywordPattern);
+ } else {
+ groups.special.push(keywordPattern);
+ }
+ }
+ });
+
+ const res = [];
+ if (groups.letter.length) res.push(`\\b(${groups.letter.join('|')})\\b`);
+ if (groups.leftSpecial.length) res.push(`\\B(${groups.leftSpecial.join('|')})\\b`);
+ if (groups.rightSpecial.length) res.push(`\\b(${groups.rightSpecial.join('|')})\\B`);
+ if (groups.special.length) res.push(`\\B(${groups.special.join('|')})\\B`);
+ return res;
+}
+
+function getStringPatterns(grammar: Grammar, pack: LangiumLanguageConfig): Pattern[] {
+ const terminals = stream(grammar.rules).filter(GrammarAST.isTerminalRule);
+ const stringTerminal = terminals.find(e => e.name.toLowerCase() === 'string');
+ const stringPatterns: Pattern[] = [];
+ if (stringTerminal) {
+ const parts = RegExpUtils.getTerminalParts(GrammarUtils.terminalRegex(stringTerminal));
+ for (const part of parts) {
+ if (part.end) {
+ stringPatterns.push({
+ 'name': `string.quoted.${delimiterName(part.start)}.${pack.id}`,
+ 'begin': part.start,
+ 'end': part.end,
+ 'patterns': [
+ {
+ 'include': '#string-character-escape'
+ }
+ ]
+ });
+ }
+ }
+ }
+ return stringPatterns;
+}
+
+function delimiterName(delimiter: string): string {
+ if (delimiter === "'") {
+ return 'single';
+ } else if (delimiter === '"') {
+ return 'double';
+ } else if (delimiter === '`') {
+ return 'backtick';
+ } else {
+ return 'delimiter';
+ }
+}
+
+export function collectKeywords(grammar: Grammar): string[] {
+ const keywords = new Set();
+ const reachableRules = GrammarUtils.getAllReachableRules(grammar, false);
+
+ for (const keyword of stream(reachableRules)
+ .filter(GrammarAST.isParserRule)
+ .flatMap(rule => AstUtils.streamAllContents(rule).filter(GrammarAST.isKeyword))) {
+ keywords.add(keyword.value);
+ }
+
+ return Array.from(keywords).sort();
+}
\ No newline at end of file
From 67e47429bf952795cdbcc4209a0bb6a63651e804 Mon Sep 17 00:00:00 2001
From: Markus Rudolph
Date: Wed, 20 Mar 2024 10:45:29 +0100
Subject: [PATCH 10/14] Remove ESBuild file, Renaming data to constants
---
hugo/content/playground/common.ts | 2 +-
hugo/content/playground/{data.ts => constants.ts} | 0
hugo/package.json | 2 +-
hugo/sql.esbuild.mjs | 8 --------
4 files changed, 2 insertions(+), 10 deletions(-)
rename hugo/content/playground/{data.ts => constants.ts} (100%)
delete mode 100644 hugo/sql.esbuild.mjs
diff --git a/hugo/content/playground/common.ts b/hugo/content/playground/common.ts
index a5fe6017..fbf825aa 100644
--- a/hugo/content/playground/common.ts
+++ b/hugo/content/playground/common.ts
@@ -8,7 +8,7 @@ import {
HelloWorldGrammar,
LangiumTextMateContent,
DSLInitialContent,
-} from "./data.js";
+} from "./constants.js";
import { decompressFromEncodedURIComponent } from 'lz-string';
import { Disposable } from "vscode-languageserver";
import { render } from './Tree.js';
diff --git a/hugo/content/playground/data.ts b/hugo/content/playground/constants.ts
similarity index 100%
rename from hugo/content/playground/data.ts
rename to hugo/content/playground/constants.ts
diff --git a/hugo/package.json b/hugo/package.json
index 7b46358e..fbc78ff0 100644
--- a/hugo/package.json
+++ b/hugo/package.json
@@ -15,7 +15,7 @@
"build:worker/playground-langium": "esbuild ./content/playground/langium-worker.ts --bundle --format=iife --outfile=./static/playground/libs/worker/langiumServerWorker.js",
"build:worker/playground-user": "esbuild ./content/playground/user-worker.ts --bundle --format=iife --outfile=./static/playground/libs/worker/userServerWorker.js",
"build:worker/playground-common": "esbuild ./content/playground/common.ts --bundle --format=esm --outfile=./static/playground/libs/worker/common.js",
- "build:worker/sql": "node sql.esbuild.mjs",
+ "build:worker/sql": "esbuild ./assets/scripts/sql/language-server.ts --bundle --format=iife --outfile=./static/showcase/libs/worker/sqlServerWorker.js",
"build:worker/minilogo": "esbuild ../node_modules/langium-minilogo/out/language-server/main-browser.js --bundle --format=iife --outfile=./static/showcase/libs/worker/minilogoServerWorker.js",
"build:static": "npm run clean:static && npm run build:worker/statemachine && npm run build:worker/domainmodel && npm run build:worker/sql && npm run build:worker/minilogo && npm run build:worker/arithmetics && npm run build:worker/playground-common && npm run build:worker/playground-langium && npm run build:worker/playground-user && npm run copy:monaco-workers",
"build": "npm run build:static && cross-env NODE_ENV=production hugo --config ./config.toml -b / -d ../public --gc --minify ",
diff --git a/hugo/sql.esbuild.mjs b/hugo/sql.esbuild.mjs
deleted file mode 100644
index a4637b78..00000000
--- a/hugo/sql.esbuild.mjs
+++ /dev/null
@@ -1,8 +0,0 @@
-import * as esbuild from 'esbuild';
-
-await esbuild.build({
- entryPoints: ['./assets/scripts/sql/language-server.ts'],
- bundle: true,
- format: "iife",
- outfile: './static/showcase/libs/worker/sqlServerWorker.js',
-})
\ No newline at end of file
From 9f67db6cd627d656572ec506af97706f525707aa Mon Sep 17 00:00:00 2001
From: Markus Rudolph
Date: Tue, 2 Apr 2024 08:58:41 +0200
Subject: [PATCH 11/14] Resolve first comments
---
hugo/content/playground/preprocess.ts | 20 +++++---------------
hugo/package.json | 2 +-
package-lock.json | 2 +-
3 files changed, 7 insertions(+), 17 deletions(-)
diff --git a/hugo/content/playground/preprocess.ts b/hugo/content/playground/preprocess.ts
index d9bfd51f..c877922b 100644
--- a/hugo/content/playground/preprocess.ts
+++ b/hugo/content/playground/preprocess.ts
@@ -59,15 +59,11 @@ export interface PropertyNode {
name: string;
type: ValueNode;
}
+
+export type AstValue = AstNode | AstNode[] | string | number | boolean | Reference | undefined;
+
export function preprocessAstNodeValue(
- valueOrValues:
- | AstNode
- | AstNode[]
- | string
- | number
- | boolean
- | Reference
- | undefined,
+ valueOrValues: AstValue,
locator: AstNodeLocator
): ValueNode {
if (Array.isArray(valueOrValues)) {
@@ -103,13 +99,7 @@ export function preprocessAstNodeObject(
const properties: PropertyNode[] = Object.keys(node)
.filter((n) => !n.startsWith("$"))
.map((n) => {
- const valueOrValues = ((node as any)[n]) as
- | AstNode
- | AstNode[]
- | "string"
- | "number"
- | "boolean"
- | Reference;
+ const valueOrValues = ((node as any)[n]) as AstValue;
return {
name: n,
type: preprocessAstNodeValue(valueOrValues, locator),
diff --git a/hugo/package.json b/hugo/package.json
index fbc78ff0..55c3dc86 100644
--- a/hugo/package.json
+++ b/hugo/package.json
@@ -39,7 +39,7 @@
"clsx": "^1.2.1",
"d3": "^7.8.5",
"hugo-extended": "~0.89.4",
- "langium": "~3.0.0",
+ "langium": "^3.0.0",
"langium-arithmetics-dsl": "^3.0.0",
"langium-ast-helper": "0.1.2",
"langium-domainmodel-dsl": "^3.0.0",
diff --git a/package-lock.json b/package-lock.json
index 4d451611..98ea9bbe 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -202,7 +202,7 @@
"clsx": "^1.2.1",
"d3": "^7.8.5",
"hugo-extended": "~0.89.4",
- "langium": "~3.0.0",
+ "langium": "^3.0.0",
"langium-arithmetics-dsl": "^3.0.0",
"langium-ast-helper": "0.1.2",
"langium-domainmodel-dsl": "^3.0.0",
From cf9f6d03333136b00fe8f4acc83da70d9976213c Mon Sep 17 00:00:00 2001
From: Markus Rudolph
Date: Tue, 2 Apr 2024 09:05:24 +0200
Subject: [PATCH 12/14] Splitting tsconfig.json to have base part and specific
non-redundant configs
---
core/tsconfig.json | 6 +-----
hugo/tsconfig.json | 6 +-----
tsconfig.json | 10 ++++++++++
3 files changed, 12 insertions(+), 10 deletions(-)
create mode 100644 tsconfig.json
diff --git a/core/tsconfig.json b/core/tsconfig.json
index 501bcbcb..0681bfee 100644
--- a/core/tsconfig.json
+++ b/core/tsconfig.json
@@ -1,12 +1,8 @@
{
+ "extends": "../tsconfig.json",
"compilerOptions": {
- "noImplicitAny": true,
- "target": "ES2022",
- "module": "Node16",
- "moduleResolution": "Node16",
"rootDir": "src",
"outDir": "dist",
- "declaration": true,
"declarationDir": "dist"
},
"include": [
diff --git a/hugo/tsconfig.json b/hugo/tsconfig.json
index 0c1fa7ba..dd1f6c10 100644
--- a/hugo/tsconfig.json
+++ b/hugo/tsconfig.json
@@ -1,12 +1,8 @@
{
+ "extends": "../tsconfig.json",
"compilerOptions": {
- "noImplicitAny": true,
- "target": "ES2022",
- "module": "NodeNext",
- "moduleResolution": "NodeNext",
"rootDir": ".",
"outDir": "dist",
- "declaration": true,
"declarationDir": "dist",
"jsx": "react-jsx"
},
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 00000000..d6ce28a3
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "compilerOptions": {
+ "noImplicitAny": true,
+ "target": "ES2022",
+ "module": "Node16",
+ "moduleResolution": "Node16",
+ "declaration": true,
+ "sourceMap": true
+ }
+}
\ No newline at end of file
From 7ea70ead71c52e525de89b83ce697c28a40da012 Mon Sep 17 00:00:00 2001
From: Markus Rudolph
Date: Tue, 23 Apr 2024 09:41:37 +0200
Subject: [PATCH 13/14] Remove TextMate generator and use the one fro the CLI
---
hugo/content/playground/common.ts | 8 +-
hugo/content/playground/textmate-generator.ts | 255 ------------------
hugo/package.json | 1 +
package-lock.json | 75 ++++++
4 files changed, 79 insertions(+), 260 deletions(-)
delete mode 100644 hugo/content/playground/textmate-generator.ts
diff --git a/hugo/content/playground/common.ts b/hugo/content/playground/common.ts
index fbf825aa..b67af5fe 100644
--- a/hugo/content/playground/common.ts
+++ b/hugo/content/playground/common.ts
@@ -3,7 +3,6 @@
* This program and the accompanying materials are made available under the
* terms of the MIT License, which is available in the project root.
******************************************************************************/
-
import {
HelloWorldGrammar,
LangiumTextMateContent,
@@ -17,7 +16,7 @@ import { addMonacoStyles, createUserConfig, MonacoEditorLanguageClientWrapper }
import { DocumentChangeResponse } from "langium-ast-helper";
import { DefaultAstNodeLocator } from "langium";
import { createServicesForGrammar } from "langium/grammar";
-import { generateTextMate } from "./textmate-generator.js";
+import { generateTextMate } from "langium-cli/textmate";
export { share, overlay } from './utils.js';
export { addMonacoStyles, MonacoEditorLanguageClientWrapper };
@@ -210,17 +209,16 @@ async function getFreshDSLWrapper(
code: string,
grammarText: string
): Promise {
-
// construct and set a new monarch syntax onto the editor
const { Grammar } = await createServicesForGrammar({ grammar: grammarText });
-
const worker = await getLSWorkerForGrammar(grammarText);
const wrapper = new MonacoEditorLanguageClientWrapper();
+ const textmateGrammar = JSON.parse(generateTextMate(Grammar, { id: languageId, grammar: 'UserGrammar' }));
return wrapper.start(createUserConfig({
languageId,
code,
worker,
- textmateGrammar: generateTextMate(Grammar, {id: languageId, grammar: 'UserGrammar'})
+ textmateGrammar
}), htmlElement).then(() => {
return wrapper;
}).catch(async (e: any) => {
diff --git a/hugo/content/playground/textmate-generator.ts b/hugo/content/playground/textmate-generator.ts
deleted file mode 100644
index c6458606..00000000
--- a/hugo/content/playground/textmate-generator.ts
+++ /dev/null
@@ -1,255 +0,0 @@
-/******************************************************************************
- * Copyright 2021-2022 TypeFox GmbH
- * This program and the accompanying materials are made available under the
- * terms of the MIT License, which is available in the project root.
-******************************************************************************/
-//ATTENTION!!! This file is basically copied from langium-cli!
-import type { Grammar } from 'langium';
-import { AstUtils, GrammarAST, GrammarUtils, RegExpUtils, stream, IParserConfig } from 'langium';
-
-/* eslint-disable dot-notation */
-
-export interface LangiumLanguageConfig {
- /** The identifier of your language as used in vscode */
- id: string
- /** Path to the grammar file */
- grammar: string
- /** File extensions with leading `.` */
- fileExtensions?: string[]
- /** Enable case-insensitive keywords parsing */
- caseInsensitive?: boolean
- /** Enable generating a TextMate syntax highlighting file */
- textMate?: {
- /** Output path to syntax highlighting file */
- out: string
- }
- /** Enable generating a Monarch syntax highlighting file */
- monarch?: {
- /** Output path to syntax highlighting file */
- out: string
- }
- /** Enable generating a Prism syntax highlighting file */
- prism?: {
- /** Output path to syntax highlighting file */
- out: string
- }
- /** Enable generating railroad syntax diagrams */
- railroad?: {
- /** Output path for railroad diagrams */
- out: string;
- /** Whether to print diagrams all into a single html file or in separate svg files */
- mode?: 'html' | 'svg';
- /** Path to a css file that will be included in the generated output files */
- css?: string;
- }
- /** Configure the chevrotain parser for a single language */
- chevrotainParserConfig?: IParserConfig
-}
-
-
-export interface TextMateGrammar {
- repository: Repository;
- readonly scopeName: string;
- readonly patterns: Pattern[];
- readonly injections?: { [expression: string]: Pattern };
- readonly injectionSelector?: string;
- readonly fileTypes?: string[];
- readonly name?: string;
- readonly firstLineMatch?: string;
-}
-
-export interface Repository {
- [name: string]: Pattern;
-}
-
-export interface Pattern {
- id?: number;
- readonly include?: string;
- readonly name?: string;
- readonly contentName?: string;
- readonly match?: string;
- readonly captures?: Captures;
- readonly begin?: string;
- readonly beginCaptures?: Captures;
- readonly end?: string;
- readonly endCaptures?: Captures;
- readonly while?: string;
- readonly whileCaptures?: Captures;
- readonly patterns?: Pattern[];
- readonly repository?: Repository;
- readonly applyEndPatternLast?: boolean;
-}
-
-export interface Captures {
- [captureId: string]: Pattern;
-}
-
-export function generateTextMate(grammar: Grammar, config: LangiumLanguageConfig): TextMateGrammar {
- const json: TextMateGrammar = {
- name: config.id,
- scopeName: `source.${config.id}`,
- fileTypes: config.fileExtensions ?? [],
- patterns: getPatterns(grammar, config),
- repository: getRepository(grammar, config)
- };
-
- return json;
-}
-
-function getPatterns(grammar: Grammar, config: LangiumLanguageConfig): Pattern[] {
- const patterns: Pattern[] = [];
- patterns.push({
- include: '#comments'
- });
- patterns.push(getControlKeywords(grammar, config));
- patterns.push(...getStringPatterns(grammar, config));
- return patterns;
-}
-
-function getRepository(grammar: Grammar, config: LangiumLanguageConfig): Repository {
- const repository: Repository = {};
- const commentPatterns: Pattern[] = [];
- let stringEscapePattern: Pattern | undefined;
- for (const rule of grammar.rules) {
- if (GrammarAST.isTerminalRule(rule) && GrammarUtils.isCommentTerminal(rule)) {
- const parts = RegExpUtils.getTerminalParts(GrammarUtils.terminalRegex(rule));
- for (const part of parts) {
- if (part.end) {
- commentPatterns.push({
- 'name': `comment.block.${config.id}`,
- 'begin': part.start,
- 'beginCaptures': {
- '0': {
- 'name': `punctuation.definition.comment.${config.id}`
- }
- },
- 'end': part.end,
- 'endCaptures': {
- '0': {
- 'name': `punctuation.definition.comment.${config.id}`
- }
- }
- });
- } else {
- commentPatterns.push({
- 'begin': part.start,
- 'beginCaptures': {
- '1': {
- 'name': `punctuation.whitespace.comment.leading.${config.id}`
- }
- },
- 'end': '(?=$)',
- 'name': `comment.line.${config.id}`
- });
- }
- }
- } else if (GrammarAST.isTerminalRule(rule) && rule.name.toLowerCase() === 'string') {
- stringEscapePattern = {
- 'name': `constant.character.escape.${config.id}`,
- 'match': '\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)'
- };
- }
- }
-
- if (commentPatterns.length > 0) {
- repository['comments'] = {
- 'patterns': commentPatterns
- };
- }
- if (stringEscapePattern) {
- repository['string-character-escape'] = stringEscapePattern;
- }
- return repository;
-}
-
-function getControlKeywords(grammar: Grammar, pack: LangiumLanguageConfig): Pattern {
- const regex = /[A-Za-z]/;
- const controlKeywords = collectKeywords(grammar).filter(kw => regex.test(kw));
- const groups = groupKeywords(controlKeywords, pack.caseInsensitive);
- return {
- 'name': `keyword.control.${pack.id}`,
- 'match': groups.join('|')
- };
-}
-
-function groupKeywords(keywords: string[], caseInsensitive: boolean | undefined): string[] {
- const groups: {
- letter: string[],
- leftSpecial: string[],
- rightSpecial: string[],
- special: string[];
- } = { letter: [], leftSpecial: [], rightSpecial: [], special: [] };
-
- keywords.forEach(keyword => {
- const keywordPattern = caseInsensitive ? RegExpUtils.getCaseInsensitivePattern(keyword) : RegExpUtils.escapeRegExp(keyword);
- if (/\w/.test(keyword[0])) {
- if (/\w/.test(keyword[keyword.length - 1])) {
- groups.letter.push(keywordPattern);
- } else {
- groups.rightSpecial.push(keywordPattern);
- }
- } else {
- if ((/\w/).test(keyword[keyword.length - 1])) {
- groups.leftSpecial.push(keywordPattern);
- } else {
- groups.special.push(keywordPattern);
- }
- }
- });
-
- const res = [];
- if (groups.letter.length) res.push(`\\b(${groups.letter.join('|')})\\b`);
- if (groups.leftSpecial.length) res.push(`\\B(${groups.leftSpecial.join('|')})\\b`);
- if (groups.rightSpecial.length) res.push(`\\b(${groups.rightSpecial.join('|')})\\B`);
- if (groups.special.length) res.push(`\\B(${groups.special.join('|')})\\B`);
- return res;
-}
-
-function getStringPatterns(grammar: Grammar, pack: LangiumLanguageConfig): Pattern[] {
- const terminals = stream(grammar.rules).filter(GrammarAST.isTerminalRule);
- const stringTerminal = terminals.find(e => e.name.toLowerCase() === 'string');
- const stringPatterns: Pattern[] = [];
- if (stringTerminal) {
- const parts = RegExpUtils.getTerminalParts(GrammarUtils.terminalRegex(stringTerminal));
- for (const part of parts) {
- if (part.end) {
- stringPatterns.push({
- 'name': `string.quoted.${delimiterName(part.start)}.${pack.id}`,
- 'begin': part.start,
- 'end': part.end,
- 'patterns': [
- {
- 'include': '#string-character-escape'
- }
- ]
- });
- }
- }
- }
- return stringPatterns;
-}
-
-function delimiterName(delimiter: string): string {
- if (delimiter === "'") {
- return 'single';
- } else if (delimiter === '"') {
- return 'double';
- } else if (delimiter === '`') {
- return 'backtick';
- } else {
- return 'delimiter';
- }
-}
-
-export function collectKeywords(grammar: Grammar): string[] {
- const keywords = new Set();
- const reachableRules = GrammarUtils.getAllReachableRules(grammar, false);
-
- for (const keyword of stream(reachableRules)
- .filter(GrammarAST.isParserRule)
- .flatMap(rule => AstUtils.streamAllContents(rule).filter(GrammarAST.isKeyword))) {
- keywords.add(keyword.value);
- }
-
- return Array.from(keywords).sort();
-}
\ No newline at end of file
diff --git a/hugo/package.json b/hugo/package.json
index 55c3dc86..4b4ec22d 100644
--- a/hugo/package.json
+++ b/hugo/package.json
@@ -42,6 +42,7 @@
"langium": "^3.0.0",
"langium-arithmetics-dsl": "^3.0.0",
"langium-ast-helper": "0.1.2",
+ "langium-cli": "^3.0.2",
"langium-domainmodel-dsl": "^3.0.0",
"langium-minilogo": "^3.0.0",
"langium-sql": "^0.3.2",
diff --git a/package-lock.json b/package-lock.json
index 98ea9bbe..9893a4a5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -205,6 +205,7 @@
"langium": "^3.0.0",
"langium-arithmetics-dsl": "^3.0.0",
"langium-ast-helper": "0.1.2",
+ "langium-cli": "^3.0.2",
"langium-domainmodel-dsl": "^3.0.0",
"langium-minilogo": "^3.0.0",
"langium-sql": "^0.3.2",
@@ -4174,6 +4175,14 @@
"graceful-fs": "^4.1.6"
}
},
+ "node_modules/jsonschema": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz",
+ "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==",
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/keyv": {
"version": "4.5.3",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz",
@@ -4272,6 +4281,58 @@
"resolved": "https://registry.npmjs.org/langium-ast-helper/-/langium-ast-helper-0.1.2.tgz",
"integrity": "sha512-xS64ZOp3fOUcTnlQoLwYwJKi2SU8yPeKGLFZlhxFUR4zJCtJ0teFfwsC+TR7GXWS5Tf3pxG+/Lf4mgkpKhOY+Q=="
},
+ "node_modules/langium-cli": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/langium-cli/-/langium-cli-3.0.2.tgz",
+ "integrity": "sha512-5+YMBIxth0RbQAFdTl/LekIidQaUKwUIailYbn4z33FCSIxj/2N+ohPTqkzBwbjaJZbmJicHTxXV59/9jBn7wQ==",
+ "dependencies": {
+ "chalk": "~5.3.0",
+ "commander": "~11.0.0",
+ "fs-extra": "~11.1.1",
+ "jsonschema": "~1.4.1",
+ "langium": "~3.0.0",
+ "langium-railroad": "~3.0.0",
+ "lodash": "~4.17.21"
+ },
+ "bin": {
+ "langium": "bin/langium.js"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/langium-cli/node_modules/chalk": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/langium-cli/node_modules/commander": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz",
+ "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==",
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/langium-cli/node_modules/fs-extra": {
+ "version": "11.1.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+ "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
"node_modules/langium-domainmodel-dsl": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/langium-domainmodel-dsl/-/langium-domainmodel-dsl-3.0.0.tgz",
@@ -4404,6 +4465,15 @@
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
"integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
},
+ "node_modules/langium-railroad": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/langium-railroad/-/langium-railroad-3.0.0.tgz",
+ "integrity": "sha512-GQOnQBGl5gJqzgK/4bKvJO5QhJGNnprpYH6Fghbl4FviVLHwP6yzyqiouDelLSoCadChCr2JqKaBp5HXv7CgWw==",
+ "dependencies": {
+ "langium": "~3.0.0",
+ "railroad-diagrams": "~1.0.0"
+ }
+ },
"node_modules/langium-sql": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/langium-sql/-/langium-sql-0.3.2.tgz",
@@ -5575,6 +5645,11 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/railroad-diagrams": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz",
+ "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A=="
+ },
"node_modules/react": {
"version": "18.2.0",
"resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
From 3d326f7d4578732dbbb9729f1cae56980e2bb6b9 Mon Sep 17 00:00:00 2001
From: Markus Rudolph
Date: Tue, 23 Apr 2024 11:18:53 +0200
Subject: [PATCH 14/14] Update Langium-CLI
---
hugo/package.json | 2 +-
package-lock.json | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/hugo/package.json b/hugo/package.json
index 4b4ec22d..bb8189bf 100644
--- a/hugo/package.json
+++ b/hugo/package.json
@@ -42,7 +42,7 @@
"langium": "^3.0.0",
"langium-arithmetics-dsl": "^3.0.0",
"langium-ast-helper": "0.1.2",
- "langium-cli": "^3.0.2",
+ "langium-cli": "^3.0.3",
"langium-domainmodel-dsl": "^3.0.0",
"langium-minilogo": "^3.0.0",
"langium-sql": "^0.3.2",
diff --git a/package-lock.json b/package-lock.json
index 9893a4a5..6abb9bfd 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -205,7 +205,7 @@
"langium": "^3.0.0",
"langium-arithmetics-dsl": "^3.0.0",
"langium-ast-helper": "0.1.2",
- "langium-cli": "^3.0.2",
+ "langium-cli": "^3.0.3",
"langium-domainmodel-dsl": "^3.0.0",
"langium-minilogo": "^3.0.0",
"langium-sql": "^0.3.2",
@@ -4282,9 +4282,9 @@
"integrity": "sha512-xS64ZOp3fOUcTnlQoLwYwJKi2SU8yPeKGLFZlhxFUR4zJCtJ0teFfwsC+TR7GXWS5Tf3pxG+/Lf4mgkpKhOY+Q=="
},
"node_modules/langium-cli": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/langium-cli/-/langium-cli-3.0.2.tgz",
- "integrity": "sha512-5+YMBIxth0RbQAFdTl/LekIidQaUKwUIailYbn4z33FCSIxj/2N+ohPTqkzBwbjaJZbmJicHTxXV59/9jBn7wQ==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/langium-cli/-/langium-cli-3.0.3.tgz",
+ "integrity": "sha512-g6PdhEq5IiYWK/oiySILglPvFdK6ofQdzC+U7PJmFH++bDKu0DGdxjWzDauUN5WUDyVQETWKgtYDmmbcxPzN0w==",
"dependencies": {
"chalk": "~5.3.0",
"commander": "~11.0.0",