aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2022-11-22 16:35:42 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2022-11-22 16:40:04 +0100
commit862cb00e40aa6f094aff019a44f52ebfca90ab88 (patch)
tree3c32b6ca6612d07d3d1fcfc5620c86ba9c774b3b
parentrefactor(language): simplify syntax (diff)
downloadrefinery-862cb00e40aa6f094aff019a44f52ebfca90ab88.tar.gz
refinery-862cb00e40aa6f094aff019a44f52ebfca90ab88.tar.zst
refinery-862cb00e40aa6f094aff019a44f52ebfca90ab88.zip
fix(frontend): mobx 6.7.0 typing
Also bumps some dependencies and updates tsconfig.json The added workarounds should be remove once https://github.com/mobxjs/mobx/issues/3582 is resolved.
-rw-r--r--subprojects/frontend/.eslintrc.cjs2
-rw-r--r--subprojects/frontend/package.json11
-rw-r--r--subprojects/frontend/src/App.tsx2
-rw-r--r--subprojects/frontend/src/Loading.tsx1
-rw-r--r--subprojects/frontend/src/Refinery.tsx1
-rw-r--r--subprojects/frontend/src/RootStoreProvider.tsx2
-rw-r--r--subprojects/frontend/src/ToggleDarkModeButton.tsx1
-rw-r--r--subprojects/frontend/src/TopBar.tsx2
-rw-r--r--subprojects/frontend/src/UpdateNotification.tsx2
-rw-r--r--subprojects/frontend/src/editor/AnimatedButton.tsx2
-rw-r--r--subprojects/frontend/src/editor/ConnectButton.tsx1
-rw-r--r--subprojects/frontend/src/editor/ConnectionStatusNotification.tsx2
-rw-r--r--subprojects/frontend/src/editor/EditorArea.tsx2
-rw-r--r--subprojects/frontend/src/editor/EditorButtons.tsx1
-rw-r--r--subprojects/frontend/src/editor/EditorPane.tsx2
-rw-r--r--subprojects/frontend/src/editor/EditorStore.ts5
-rw-r--r--subprojects/frontend/src/editor/GenerateButton.tsx1
-rw-r--r--subprojects/frontend/src/editor/SearchPanelPortal.tsx1
-rw-r--r--subprojects/frontend/src/editor/SearchToolbar.tsx2
-rw-r--r--subprojects/frontend/src/editor/indentationMarkerViewPlugin.ts2
-rw-r--r--subprojects/frontend/src/editor/scrollbarViewPlugin.ts5
-rw-r--r--subprojects/frontend/src/index.tsx1
-rw-r--r--subprojects/frontend/src/language/problem.grammar2
-rw-r--r--subprojects/frontend/src/language/problemLanguageSupport.ts2
-rw-r--r--subprojects/frontend/src/theme/ThemeProvider.tsx2
-rw-r--r--subprojects/frontend/src/utils/PendingTask.ts1
-rw-r--r--subprojects/frontend/src/utils/useDelayedSnackbar.ts1
-rw-r--r--subprojects/frontend/src/xtext/OccurrencesService.ts2
-rw-r--r--subprojects/frontend/src/xtext/webSocketMachine.ts2
-rw-r--r--subprojects/frontend/tsconfig.base.json11
-rw-r--r--subprojects/frontend/tsconfig.json4
-rw-r--r--subprojects/frontend/tsconfig.node.json3
-rw-r--r--subprojects/frontend/vite.config.ts14
-rw-r--r--yarn.lock224
34 files changed, 159 insertions, 160 deletions
diff --git a/subprojects/frontend/.eslintrc.cjs b/subprojects/frontend/.eslintrc.cjs
index 0bf65c4f..eadd3fb4 100644
--- a/subprojects/frontend/.eslintrc.cjs
+++ b/subprojects/frontend/.eslintrc.cjs
@@ -67,6 +67,8 @@ module.exports = {
67 ], 67 ],
68 // Use prop spreading to conditionally add props with `exactOptionalPropertyTypes`. 68 // Use prop spreading to conditionally add props with `exactOptionalPropertyTypes`.
69 'react/jsx-props-no-spreading': 'off', 69 'react/jsx-props-no-spreading': 'off',
70 // We use the `react-jsx` runtime, so there is no need to import `React`.
71 'react/react-in-jsx-scope': 'off',
70 }, 72 },
71 overrides: [ 73 overrides: [
72 { 74 {
diff --git a/subprojects/frontend/package.json b/subprojects/frontend/package.json
index 4a890ee5..3bc84d6e 100644
--- a/subprojects/frontend/package.json
+++ b/subprojects/frontend/package.json
@@ -38,8 +38,8 @@
38 "@lezer/highlight": "^1.1.2", 38 "@lezer/highlight": "^1.1.2",
39 "@lezer/lr": "^1.2.5", 39 "@lezer/lr": "^1.2.5",
40 "@material-icons/svg": "^1.0.33", 40 "@material-icons/svg": "^1.0.33",
41 "@mui/icons-material": "5.10.14", 41 "@mui/icons-material": "5.10.15",
42 "@mui/material": "5.10.14", 42 "@mui/material": "5.10.15",
43 "ansi-styles": "^6.2.1", 43 "ansi-styles": "^6.2.1",
44 "escape-string-regexp": "^5.0.0", 44 "escape-string-regexp": "^5.0.0",
45 "lodash-es": "^4.17.21", 45 "lodash-es": "^4.17.21",
@@ -57,6 +57,7 @@
57 }, 57 },
58 "devDependencies": { 58 "devDependencies": {
59 "@lezer/generator": "^1.1.3", 59 "@lezer/generator": "^1.1.3",
60 "@tsconfig/node18-strictest-esm": "^1.0.1",
60 "@types/eslint": "^8.4.10", 61 "@types/eslint": "^8.4.10",
61 "@types/html-minifier-terser": "^7.0.0", 62 "@types/html-minifier-terser": "^7.0.0",
62 "@types/lodash-es": "^4.17.6", 63 "@types/lodash-es": "^4.17.6",
@@ -65,8 +66,8 @@
65 "@types/prettier": "^2.7.1", 66 "@types/prettier": "^2.7.1",
66 "@types/react": "^18.0.25", 67 "@types/react": "^18.0.25",
67 "@types/react-dom": "^18.0.9", 68 "@types/react-dom": "^18.0.9",
68 "@typescript-eslint/eslint-plugin": "^5.43.0", 69 "@typescript-eslint/eslint-plugin": "^5.44.0",
69 "@typescript-eslint/parser": "^5.43.0", 70 "@typescript-eslint/parser": "^5.44.0",
70 "@vitejs/plugin-react": "^2.2.0", 71 "@vitejs/plugin-react": "^2.2.0",
71 "@xstate/cli": "^0.3.3", 72 "@xstate/cli": "^0.3.3",
72 "cross-env": "^7.0.3", 73 "cross-env": "^7.0.3",
@@ -81,7 +82,7 @@
81 "eslint-plugin-prettier": "^4.2.1", 82 "eslint-plugin-prettier": "^4.2.1",
82 "eslint-plugin-react": "^7.31.11", 83 "eslint-plugin-react": "^7.31.11",
83 "eslint-plugin-react-hooks": "^4.6.0", 84 "eslint-plugin-react-hooks": "^4.6.0",
84 "html-minifier-terser": "^7.0.0", 85 "html-minifier-terser": "^7.1.0",
85 "prettier": "^2.7.1", 86 "prettier": "^2.7.1",
86 "typescript": "4.9.3", 87 "typescript": "4.9.3",
87 "vite": "^3.2.4", 88 "vite": "^3.2.4",
diff --git a/subprojects/frontend/src/App.tsx b/subprojects/frontend/src/App.tsx
index a471690b..b162e551 100644
--- a/subprojects/frontend/src/App.tsx
+++ b/subprojects/frontend/src/App.tsx
@@ -1,6 +1,6 @@
1import Box from '@mui/material/Box'; 1import Box from '@mui/material/Box';
2import CssBaseline from '@mui/material/CssBaseline'; 2import CssBaseline from '@mui/material/CssBaseline';
3import React, { StrictMode, Suspense, lazy } from 'react'; 3import { StrictMode, Suspense, lazy } from 'react';
4 4
5import Loading from './Loading'; 5import Loading from './Loading';
6import type RootStore from './RootStore'; 6import type RootStore from './RootStore';
diff --git a/subprojects/frontend/src/Loading.tsx b/subprojects/frontend/src/Loading.tsx
index 8c293239..489563e0 100644
--- a/subprojects/frontend/src/Loading.tsx
+++ b/subprojects/frontend/src/Loading.tsx
@@ -1,6 +1,5 @@
1import CircularProgress from '@mui/material/CircularProgress'; 1import CircularProgress from '@mui/material/CircularProgress';
2import { styled } from '@mui/material/styles'; 2import { styled } from '@mui/material/styles';
3import React from 'react';
4 3
5const LoadingRoot = styled('div')(({ theme }) => ({ 4const LoadingRoot = styled('div')(({ theme }) => ({
6 width: '100%', 5 width: '100%',
diff --git a/subprojects/frontend/src/Refinery.tsx b/subprojects/frontend/src/Refinery.tsx
index 41f835b3..d6bd6159 100644
--- a/subprojects/frontend/src/Refinery.tsx
+++ b/subprojects/frontend/src/Refinery.tsx
@@ -1,7 +1,6 @@
1import Grow from '@mui/material/Grow'; 1import Grow from '@mui/material/Grow';
2import Stack from '@mui/material/Stack'; 2import Stack from '@mui/material/Stack';
3import { SnackbarProvider } from 'notistack'; 3import { SnackbarProvider } from 'notistack';
4import React from 'react';
5 4
6import TopBar from './TopBar'; 5import TopBar from './TopBar';
7import UpdateNotification from './UpdateNotification'; 6import UpdateNotification from './UpdateNotification';
diff --git a/subprojects/frontend/src/RootStoreProvider.tsx b/subprojects/frontend/src/RootStoreProvider.tsx
index 70ac7776..2c11a0f9 100644
--- a/subprojects/frontend/src/RootStoreProvider.tsx
+++ b/subprojects/frontend/src/RootStoreProvider.tsx
@@ -1,4 +1,4 @@
1import React, { type ReactNode, createContext, useContext } from 'react'; 1import { type ReactNode, createContext, useContext } from 'react';
2 2
3import type RootStore from './RootStore'; 3import type RootStore from './RootStore';
4 4
diff --git a/subprojects/frontend/src/ToggleDarkModeButton.tsx b/subprojects/frontend/src/ToggleDarkModeButton.tsx
index 52606242..59714f20 100644
--- a/subprojects/frontend/src/ToggleDarkModeButton.tsx
+++ b/subprojects/frontend/src/ToggleDarkModeButton.tsx
@@ -2,7 +2,6 @@ import DarkModeIcon from '@mui/icons-material/DarkMode';
2import LightModeIcon from '@mui/icons-material/LightMode'; 2import LightModeIcon from '@mui/icons-material/LightMode';
3import IconButton from '@mui/material/IconButton'; 3import IconButton from '@mui/material/IconButton';
4import { observer } from 'mobx-react-lite'; 4import { observer } from 'mobx-react-lite';
5import React from 'react';
6 5
7import { useRootStore } from './RootStoreProvider'; 6import { useRootStore } from './RootStoreProvider';
8 7
diff --git a/subprojects/frontend/src/TopBar.tsx b/subprojects/frontend/src/TopBar.tsx
index 79ea0b65..c943f7c4 100644
--- a/subprojects/frontend/src/TopBar.tsx
+++ b/subprojects/frontend/src/TopBar.tsx
@@ -5,7 +5,7 @@ import { useTheme } from '@mui/material/styles';
5import useMediaQuery from '@mui/material/useMediaQuery'; 5import useMediaQuery from '@mui/material/useMediaQuery';
6import { throttle } from 'lodash-es'; 6import { throttle } from 'lodash-es';
7import { observer } from 'mobx-react-lite'; 7import { observer } from 'mobx-react-lite';
8import React, { useEffect, useMemo, useState } from 'react'; 8import { useEffect, useMemo, useState } from 'react';
9 9
10import { useRootStore } from './RootStoreProvider'; 10import { useRootStore } from './RootStoreProvider';
11import ToggleDarkModeButton from './ToggleDarkModeButton'; 11import ToggleDarkModeButton from './ToggleDarkModeButton';
diff --git a/subprojects/frontend/src/UpdateNotification.tsx b/subprojects/frontend/src/UpdateNotification.tsx
index 8c46186a..07f7f5f7 100644
--- a/subprojects/frontend/src/UpdateNotification.tsx
+++ b/subprojects/frontend/src/UpdateNotification.tsx
@@ -1,6 +1,6 @@
1import Button from '@mui/material/Button'; 1import Button from '@mui/material/Button';
2import { observer } from 'mobx-react-lite'; 2import { observer } from 'mobx-react-lite';
3import React, { useEffect } from 'react'; 3import { useEffect } from 'react';
4 4
5import { useRootStore } from './RootStoreProvider'; 5import { useRootStore } from './RootStoreProvider';
6import { ContrastThemeProvider } from './theme/ThemeProvider'; 6import { ContrastThemeProvider } from './theme/ThemeProvider';
diff --git a/subprojects/frontend/src/editor/AnimatedButton.tsx b/subprojects/frontend/src/editor/AnimatedButton.tsx
index d08decbc..7f6c61f0 100644
--- a/subprojects/frontend/src/editor/AnimatedButton.tsx
+++ b/subprojects/frontend/src/editor/AnimatedButton.tsx
@@ -1,7 +1,7 @@
1import Box from '@mui/material/Box'; 1import Box from '@mui/material/Box';
2import Button from '@mui/material/Button'; 2import Button from '@mui/material/Button';
3import { styled } from '@mui/material/styles'; 3import { styled } from '@mui/material/styles';
4import React, { type ReactNode, useLayoutEffect, useState } from 'react'; 4import { type ReactNode, useLayoutEffect, useState } from 'react';
5 5
6const AnimatedButtonBase = styled(Button, { 6const AnimatedButtonBase = styled(Button, {
7 shouldForwardProp: (prop) => prop !== 'width', 7 shouldForwardProp: (prop) => prop !== 'width',
diff --git a/subprojects/frontend/src/editor/ConnectButton.tsx b/subprojects/frontend/src/editor/ConnectButton.tsx
index 52e7b854..e2d251f3 100644
--- a/subprojects/frontend/src/editor/ConnectButton.tsx
+++ b/subprojects/frontend/src/editor/ConnectButton.tsx
@@ -5,7 +5,6 @@ import SyncProblemIcon from '@mui/icons-material/SyncProblem';
5import IconButton from '@mui/material/IconButton'; 5import IconButton from '@mui/material/IconButton';
6import { keyframes, styled } from '@mui/material/styles'; 6import { keyframes, styled } from '@mui/material/styles';
7import { observer } from 'mobx-react-lite'; 7import { observer } from 'mobx-react-lite';
8import React from 'react';
9 8
10import type EditorStore from './EditorStore'; 9import type EditorStore from './EditorStore';
11 10
diff --git a/subprojects/frontend/src/editor/ConnectionStatusNotification.tsx b/subprojects/frontend/src/editor/ConnectionStatusNotification.tsx
index f7f089f0..9b27f45c 100644
--- a/subprojects/frontend/src/editor/ConnectionStatusNotification.tsx
+++ b/subprojects/frontend/src/editor/ConnectionStatusNotification.tsx
@@ -1,6 +1,6 @@
1import Button from '@mui/material/Button'; 1import Button from '@mui/material/Button';
2import { observer } from 'mobx-react-lite'; 2import { observer } from 'mobx-react-lite';
3import React, { useEffect } from 'react'; 3import { useEffect } from 'react';
4 4
5import { ContrastThemeProvider } from '../theme/ThemeProvider'; 5import { ContrastThemeProvider } from '../theme/ThemeProvider';
6import useDelayedSnackbar from '../utils/useDelayedSnackbar'; 6import useDelayedSnackbar from '../utils/useDelayedSnackbar';
diff --git a/subprojects/frontend/src/editor/EditorArea.tsx b/subprojects/frontend/src/editor/EditorArea.tsx
index 95f0f92e..cfb988b2 100644
--- a/subprojects/frontend/src/editor/EditorArea.tsx
+++ b/subprojects/frontend/src/editor/EditorArea.tsx
@@ -1,7 +1,7 @@
1import Box from '@mui/material/Box'; 1import Box from '@mui/material/Box';
2import { useTheme } from '@mui/material/styles'; 2import { useTheme } from '@mui/material/styles';
3import { observer } from 'mobx-react-lite'; 3import { observer } from 'mobx-react-lite';
4import React, { useCallback, useEffect } from 'react'; 4import { useCallback, useEffect } from 'react';
5 5
6import type EditorStore from './EditorStore'; 6import type EditorStore from './EditorStore';
7import EditorTheme from './EditorTheme'; 7import EditorTheme from './EditorTheme';
diff --git a/subprojects/frontend/src/editor/EditorButtons.tsx b/subprojects/frontend/src/editor/EditorButtons.tsx
index fd046d46..53b06e23 100644
--- a/subprojects/frontend/src/editor/EditorButtons.tsx
+++ b/subprojects/frontend/src/editor/EditorButtons.tsx
@@ -13,7 +13,6 @@ import Stack from '@mui/material/Stack';
13import ToggleButton from '@mui/material/ToggleButton'; 13import ToggleButton from '@mui/material/ToggleButton';
14import ToggleButtonGroup from '@mui/material/ToggleButtonGroup'; 14import ToggleButtonGroup from '@mui/material/ToggleButtonGroup';
15import { observer } from 'mobx-react-lite'; 15import { observer } from 'mobx-react-lite';
16import React from 'react';
17 16
18import ConnectButton from './ConnectButton'; 17import ConnectButton from './ConnectButton';
19import type EditorStore from './EditorStore'; 18import type EditorStore from './EditorStore';
diff --git a/subprojects/frontend/src/editor/EditorPane.tsx b/subprojects/frontend/src/editor/EditorPane.tsx
index 0db4b892..1d51b3f5 100644
--- a/subprojects/frontend/src/editor/EditorPane.tsx
+++ b/subprojects/frontend/src/editor/EditorPane.tsx
@@ -5,7 +5,7 @@ import Toolbar from '@mui/material/Toolbar';
5import { useTheme } from '@mui/material/styles'; 5import { useTheme } from '@mui/material/styles';
6import useMediaQuery from '@mui/material/useMediaQuery'; 6import useMediaQuery from '@mui/material/useMediaQuery';
7import { observer } from 'mobx-react-lite'; 7import { observer } from 'mobx-react-lite';
8import React, { useState } from 'react'; 8import { useState } from 'react';
9 9
10import { useRootStore } from '../RootStoreProvider'; 10import { useRootStore } from '../RootStoreProvider';
11 11
diff --git a/subprojects/frontend/src/editor/EditorStore.ts b/subprojects/frontend/src/editor/EditorStore.ts
index acad3d09..d966690c 100644
--- a/subprojects/frontend/src/editor/EditorStore.ts
+++ b/subprojects/frontend/src/editor/EditorStore.ts
@@ -1,4 +1,7 @@
1import { CompletionContext, CompletionResult } from '@codemirror/autocomplete'; 1import type {
2 CompletionContext,
3 CompletionResult,
4} from '@codemirror/autocomplete';
2import { redo, redoDepth, undo, undoDepth } from '@codemirror/commands'; 5import { redo, redoDepth, undo, undoDepth } from '@codemirror/commands';
3import { 6import {
4 type Diagnostic, 7 type Diagnostic,
diff --git a/subprojects/frontend/src/editor/GenerateButton.tsx b/subprojects/frontend/src/editor/GenerateButton.tsx
index 8b6ae660..1a32f5ce 100644
--- a/subprojects/frontend/src/editor/GenerateButton.tsx
+++ b/subprojects/frontend/src/editor/GenerateButton.tsx
@@ -2,7 +2,6 @@ import DangerousOutlinedIcon from '@mui/icons-material/DangerousOutlined';
2import PlayArrowIcon from '@mui/icons-material/PlayArrow'; 2import PlayArrowIcon from '@mui/icons-material/PlayArrow';
3import Button from '@mui/material/Button'; 3import Button from '@mui/material/Button';
4import { observer } from 'mobx-react-lite'; 4import { observer } from 'mobx-react-lite';
5import React from 'react';
6 5
7import AnimatedButton from './AnimatedButton'; 6import AnimatedButton from './AnimatedButton';
8import type EditorStore from './EditorStore'; 7import type EditorStore from './EditorStore';
diff --git a/subprojects/frontend/src/editor/SearchPanelPortal.tsx b/subprojects/frontend/src/editor/SearchPanelPortal.tsx
index b6b375e3..5cf1c90e 100644
--- a/subprojects/frontend/src/editor/SearchPanelPortal.tsx
+++ b/subprojects/frontend/src/editor/SearchPanelPortal.tsx
@@ -1,6 +1,5 @@
1import Portal from '@mui/material/Portal'; 1import Portal from '@mui/material/Portal';
2import { observer } from 'mobx-react-lite'; 2import { observer } from 'mobx-react-lite';
3import React from 'react';
4 3
5import type EditorStore from './EditorStore'; 4import type EditorStore from './EditorStore';
6import SearchToolbar from './SearchToolbar'; 5import SearchToolbar from './SearchToolbar';
diff --git a/subprojects/frontend/src/editor/SearchToolbar.tsx b/subprojects/frontend/src/editor/SearchToolbar.tsx
index a9b9811d..54f3dba7 100644
--- a/subprojects/frontend/src/editor/SearchToolbar.tsx
+++ b/subprojects/frontend/src/editor/SearchToolbar.tsx
@@ -14,7 +14,7 @@ import Toolbar from '@mui/material/Toolbar';
14import { styled } from '@mui/material/styles'; 14import { styled } from '@mui/material/styles';
15import useMediaQuery from '@mui/material/useMediaQuery'; 15import useMediaQuery from '@mui/material/useMediaQuery';
16import { observer } from 'mobx-react-lite'; 16import { observer } from 'mobx-react-lite';
17import React, { useCallback, useState } from 'react'; 17import { useCallback, useState } from 'react';
18 18
19import type SearchPanelStore from './SearchPanelStore'; 19import type SearchPanelStore from './SearchPanelStore';
20 20
diff --git a/subprojects/frontend/src/editor/indentationMarkerViewPlugin.ts b/subprojects/frontend/src/editor/indentationMarkerViewPlugin.ts
index 96be0eea..d5ad536b 100644
--- a/subprojects/frontend/src/editor/indentationMarkerViewPlugin.ts
+++ b/subprojects/frontend/src/editor/indentationMarkerViewPlugin.ts
@@ -91,7 +91,7 @@ function getNumIndentMarkersForNonEmptyLine(
91) { 91) {
92 let numIndents = 0; 92 let numIndents = 0;
93 let numConsecutiveSpaces = 0; 93 let numConsecutiveSpaces = 0;
94 let prevChar: string | null = null; 94 let prevChar: string | undefined;
95 95
96 for (let char = 0; char < text.length; char += 1) { 96 for (let char = 0; char < text.length; char += 1) {
97 // Bail if we encounter a non-whitespace character 97 // Bail if we encounter a non-whitespace character
diff --git a/subprojects/frontend/src/editor/scrollbarViewPlugin.ts b/subprojects/frontend/src/editor/scrollbarViewPlugin.ts
index c95e581d..0edaeb70 100644
--- a/subprojects/frontend/src/editor/scrollbarViewPlugin.ts
+++ b/subprojects/frontend/src/editor/scrollbarViewPlugin.ts
@@ -128,10 +128,11 @@ export default function scrollbarViewPlugin(
128 Math.max(1, endLine - startLine) * lineHeight, 128 Math.max(1, endLine - startLine) * lineHeight,
129 ); 129 );
130 130
131 let annotation: HTMLDivElement; 131 let annotation: HTMLDivElement | undefined;
132 if (i < annotations.length) { 132 if (i < annotations.length) {
133 annotation = annotations[i]; 133 annotation = annotations[i];
134 } else { 134 }
135 if (annotation === undefined) {
135 annotation = ownerDocument.createElement('div'); 136 annotation = ownerDocument.createElement('div');
136 annotations.push(annotation); 137 annotations.push(annotation);
137 holder.appendChild(annotation); 138 holder.appendChild(annotation);
diff --git a/subprojects/frontend/src/index.tsx b/subprojects/frontend/src/index.tsx
index a40f1762..3e56d941 100644
--- a/subprojects/frontend/src/index.tsx
+++ b/subprojects/frontend/src/index.tsx
@@ -1,5 +1,4 @@
1import { configure } from 'mobx'; 1import { configure } from 'mobx';
2import React from 'react';
3import { type Root, createRoot } from 'react-dom/client'; 2import { type Root, createRoot } from 'react-dom/client';
4 3
5import App from './App'; 4import App from './App';
diff --git a/subprojects/frontend/src/language/problem.grammar b/subprojects/frontend/src/language/problem.grammar
index c2410913..f4cf1712 100644
--- a/subprojects/frontend/src/language/problem.grammar
+++ b/subprojects/frontend/src/language/problem.grammar
@@ -37,7 +37,7 @@ statement {
37 PredicateBody { ("<->" sep<OrOp, Conjunction>)? "." } 37 PredicateBody { ("<->" sep<OrOp, Conjunction>)? "." }
38 } | 38 } |
39 FunctionDefinition { 39 FunctionDefinition {
40 PrimitiveType RelationName ParameterList<Parameter>? 40 kw<"fn"> PrimitiveType RelationName ParameterList<Parameter>?
41 FunctionBody { ("=" sep<OrOp, Case>)? "." } 41 FunctionBody { ("=" sep<OrOp, Case>)? "." }
42 } | 42 } |
43 //RuleDefinition { 43 //RuleDefinition {
diff --git a/subprojects/frontend/src/language/problemLanguageSupport.ts b/subprojects/frontend/src/language/problemLanguageSupport.ts
index 497030e2..c3ae7ed9 100644
--- a/subprojects/frontend/src/language/problemLanguageSupport.ts
+++ b/subprojects/frontend/src/language/problemLanguageSupport.ts
@@ -21,7 +21,7 @@ const parserWithMetadata = parser.configure({
21 styleTags({ 21 styleTags({
22 LineComment: t.lineComment, 22 LineComment: t.lineComment,
23 BlockComment: t.blockComment, 23 BlockComment: t.blockComment,
24 'problem class enum pred indiv scope': t.definitionKeyword, 24 'problem class enum pred fn indiv scope': t.definitionKeyword,
25 'abstract extends refers contains container opposite': t.modifier, 25 'abstract extends refers contains container opposite': t.modifier,
26 'default error contained containment': t.modifier, 26 'default error contained containment': t.modifier,
27 'true false unknown error': t.keyword, 27 'true false unknown error': t.keyword,
diff --git a/subprojects/frontend/src/theme/ThemeProvider.tsx b/subprojects/frontend/src/theme/ThemeProvider.tsx
index a00d70fe..9cf870d5 100644
--- a/subprojects/frontend/src/theme/ThemeProvider.tsx
+++ b/subprojects/frontend/src/theme/ThemeProvider.tsx
@@ -12,7 +12,7 @@ import {
12 useTheme, 12 useTheme,
13} from '@mui/material/styles'; 13} from '@mui/material/styles';
14import { observer } from 'mobx-react-lite'; 14import { observer } from 'mobx-react-lite';
15import React, { type ReactNode, createContext, useContext } from 'react'; 15import { type ReactNode, createContext, useContext } from 'react';
16 16
17import { useRootStore } from '../RootStoreProvider'; 17import { useRootStore } from '../RootStoreProvider';
18 18
diff --git a/subprojects/frontend/src/utils/PendingTask.ts b/subprojects/frontend/src/utils/PendingTask.ts
index d0b24c1f..fd52cef1 100644
--- a/subprojects/frontend/src/utils/PendingTask.ts
+++ b/subprojects/frontend/src/utils/PendingTask.ts
@@ -20,6 +20,7 @@ export default class PendingTask<T> {
20 ) { 20 ) {
21 this.resolveCallback = resolveCallback; 21 this.resolveCallback = resolveCallback;
22 this.rejectCallback = rejectCallback; 22 this.rejectCallback = rejectCallback;
23 // @ts-expect-error See https://github.com/mobxjs/mobx/issues/3582 on `@types/node` pollution
23 this.timeout = setTimeout(() => { 24 this.timeout = setTimeout(() => {
24 if (!this.resolved) { 25 if (!this.resolved) {
25 this.reject(new TimeoutError()); 26 this.reject(new TimeoutError());
diff --git a/subprojects/frontend/src/utils/useDelayedSnackbar.ts b/subprojects/frontend/src/utils/useDelayedSnackbar.ts
index 03ad6caa..54716c0c 100644
--- a/subprojects/frontend/src/utils/useDelayedSnackbar.ts
+++ b/subprojects/frontend/src/utils/useDelayedSnackbar.ts
@@ -21,6 +21,7 @@ export default function useDelayedSnackbar(
21 delay = defaultDelay, 21 delay = defaultDelay,
22 ) => { 22 ) => {
23 let key: SnackbarKey | undefined; 23 let key: SnackbarKey | undefined;
24 // @ts-expect-error See https://github.com/mobxjs/mobx/issues/3582 on `@types/node` pollution
24 let timeout: number | undefined = setTimeout(() => { 25 let timeout: number | undefined = setTimeout(() => {
25 timeout = undefined; 26 timeout = undefined;
26 key = enqueueSnackbar(message, options); 27 key = enqueueSnackbar(message, options);
diff --git a/subprojects/frontend/src/xtext/OccurrencesService.ts b/subprojects/frontend/src/xtext/OccurrencesService.ts
index 248a9a87..fc72ead2 100644
--- a/subprojects/frontend/src/xtext/OccurrencesService.ts
+++ b/subprojects/frontend/src/xtext/OccurrencesService.ts
@@ -1,4 +1,4 @@
1import { Transaction } from '@codemirror/state'; 1import type { Transaction } from '@codemirror/state';
2import { debounce } from 'lodash-es'; 2import { debounce } from 'lodash-es';
3import ms from 'ms'; 3import ms from 'ms';
4 4
diff --git a/subprojects/frontend/src/xtext/webSocketMachine.ts b/subprojects/frontend/src/xtext/webSocketMachine.ts
index 5f6bc604..216ed86a 100644
--- a/subprojects/frontend/src/xtext/webSocketMachine.ts
+++ b/subprojects/frontend/src/xtext/webSocketMachine.ts
@@ -205,7 +205,7 @@ export default createMachine(
205 ERROR_WAIT_TIME: ({ errors: { length: retryCount } }) => { 205 ERROR_WAIT_TIME: ({ errors: { length: retryCount } }) => {
206 const { length } = ERROR_WAIT_TIMES; 206 const { length } = ERROR_WAIT_TIMES;
207 const index = retryCount < length ? retryCount : length - 1; 207 const index = retryCount < length ? retryCount : length - 1;
208 return ERROR_WAIT_TIMES[index]; 208 return ERROR_WAIT_TIMES[index] ?? 0;
209 }, 209 },
210 }, 210 },
211 actions: { 211 actions: {
diff --git a/subprojects/frontend/tsconfig.base.json b/subprojects/frontend/tsconfig.base.json
index 9cc8ace4..585866f1 100644
--- a/subprojects/frontend/tsconfig.base.json
+++ b/subprojects/frontend/tsconfig.base.json
@@ -1,16 +1,7 @@
1{ 1{
2 "extends": "@tsconfig/node18-strictest-esm/tsconfig.json",
2 "compilerOptions": { 3 "compilerOptions": {
3 "target": "ESNext",
4 "module": "ESNext",
5 "moduleResolution": "Node",
6 "esModuleInterop": true,
7 "allowSyntheticDefaultImports": true,
8 "useDefineForClassFields": true, 4 "useDefineForClassFields": true,
9 "strict": true,
10 "noImplicitOverride": true,
11 "noImplicitReturns": true,
12 "exactOptionalPropertyTypes": true,
13 "isolatedModules": true, 5 "isolatedModules": true,
14 "skipLibCheck": true
15 } 6 }
16} 7}
diff --git a/subprojects/frontend/tsconfig.json b/subprojects/frontend/tsconfig.json
index e8053768..0dccec40 100644
--- a/subprojects/frontend/tsconfig.json
+++ b/subprojects/frontend/tsconfig.json
@@ -1,9 +1,9 @@
1{ 1{
2 "extends": "./tsconfig.base.json", 2 "extends": "./tsconfig.base.json",
3 "compilerOptions": { 3 "compilerOptions": {
4 "jsx": "react", 4 "jsx": "react-jsx",
5 "noEmit": true, 5 "noEmit": true,
6 "lib": ["DOM", "DOM.Iterable", "ESNext"], 6 "lib": ["DOM", "DOM.Iterable", "ES2022"],
7 "types": ["vite/client", "vite-plugin-pwa/client"] 7 "types": ["vite/client", "vite-plugin-pwa/client"]
8 }, 8 },
9 "include": [ 9 "include": [
diff --git a/subprojects/frontend/tsconfig.node.json b/subprojects/frontend/tsconfig.node.json
index f5d6e6ec..c4539dbc 100644
--- a/subprojects/frontend/tsconfig.node.json
+++ b/subprojects/frontend/tsconfig.node.json
@@ -2,8 +2,7 @@
2 "extends": "./tsconfig.base.json", 2 "extends": "./tsconfig.base.json",
3 "compilerOptions": { 3 "compilerOptions": {
4 "composite": true, 4 "composite": true,
5 "checkJs": true, 5 "lib": ["ES2022"],
6 "lib": ["ESNext"],
7 "types": ["node"], 6 "types": ["node"],
8 "emitDeclarationOnly": true, 7 "emitDeclarationOnly": true,
9 "outDir": "build/typescript" 8 "outDir": "build/typescript"
diff --git a/subprojects/frontend/vite.config.ts b/subprojects/frontend/vite.config.ts
index 526ea541..2c810912 100644
--- a/subprojects/frontend/vite.config.ts
+++ b/subprojects/frontend/vite.config.ts
@@ -14,29 +14,29 @@ setDefaultResultOrder('verbatim');
14 14
15const thisDir = path.dirname(fileURLToPath(import.meta.url)); 15const thisDir = path.dirname(fileURLToPath(import.meta.url));
16 16
17const mode = process.env.MODE || 'development'; 17const mode = process.env['MODE'] || 'development';
18const isDevelopment = mode === 'development'; 18const isDevelopment = mode === 'development';
19process.env.NODE_ENV ??= mode; 19process.env['NODE_ENV'] ??= mode;
20 20
21function portNumberOrElse(envName: string, fallback: number): number { 21function portNumberOrElse(envName: string, fallback: number): number {
22 const value = process.env[envName]; 22 const value = process.env[envName];
23 return value ? parseInt(value, 10) : fallback; 23 return value ? parseInt(value, 10) : fallback;
24} 24}
25 25
26const listenHost = process.env.LISTEN_HOST || 'localhost'; 26const listenHost = process.env['LISTEN_HOST'] || 'localhost';
27const listenPort = portNumberOrElse('LISTEN_PORT', 1313); 27const listenPort = portNumberOrElse('LISTEN_PORT', 1313);
28const apiHost = process.env.API_HOST || '127.0.0.1'; 28const apiHost = process.env['API_HOST'] || '127.0.0.1';
29const apiPort = portNumberOrElse('API_PORT', 1312); 29const apiPort = portNumberOrElse('API_PORT', 1312);
30const apiSecure = apiPort === 443; 30const apiSecure = apiPort === 443;
31const publicHost = process.env.PUBLIC_HOST || listenHost; 31const publicHost = process.env['PUBLIC_HOST'] || listenHost;
32const publicPort = portNumberOrElse('PUBLIC_PORT', listenPort); 32const publicPort = portNumberOrElse('PUBLIC_PORT', listenPort);
33const publicSecure = publicPort === 443; 33const publicSecure = publicPort === 443;
34 34
35const { name: packageName, version: packageVersion } = JSON.parse( 35const { name: packageName, version: packageVersion } = JSON.parse(
36 readFileSync(path.join(thisDir, 'package.json'), 'utf8'), 36 readFileSync(path.join(thisDir, 'package.json'), 'utf8'),
37) as { name: string; version: string }; 37) as { name: string; version: string };
38process.env.VITE_PACKAGE_NAME ??= packageName; 38process.env['VITE_PACKAGE_NAME'] ??= packageName;
39process.env.VITE_PACKAGE_VERSION ??= packageVersion; 39process.env['VITE_PACKAGE_VERSION'] ??= packageVersion;
40 40
41const minifyPlugin: PluginOption = { 41const minifyPlugin: PluginOption = {
42 name: 'minify-html', 42 name: 'minify-html',
diff --git a/yarn.lock b/yarn.lock
index ee8e91aa..d09e8993 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1756,14 +1756,14 @@ __metadata:
1756 languageName: node 1756 languageName: node
1757 linkType: hard 1757 linkType: hard
1758 1758
1759"@mui/base@npm:5.0.0-alpha.106": 1759"@mui/base@npm:5.0.0-alpha.107":
1760 version: 5.0.0-alpha.106 1760 version: 5.0.0-alpha.107
1761 resolution: "@mui/base@npm:5.0.0-alpha.106" 1761 resolution: "@mui/base@npm:5.0.0-alpha.107"
1762 dependencies: 1762 dependencies:
1763 "@babel/runtime": ^7.20.1 1763 "@babel/runtime": ^7.20.1
1764 "@emotion/is-prop-valid": ^1.2.0 1764 "@emotion/is-prop-valid": ^1.2.0
1765 "@mui/types": ^7.2.1 1765 "@mui/types": ^7.2.1
1766 "@mui/utils": ^5.10.14 1766 "@mui/utils": ^5.10.15
1767 "@popperjs/core": ^2.11.6 1767 "@popperjs/core": ^2.11.6
1768 clsx: ^1.2.1 1768 clsx: ^1.2.1
1769 prop-types: ^15.8.1 1769 prop-types: ^15.8.1
@@ -1775,20 +1775,20 @@ __metadata:
1775 peerDependenciesMeta: 1775 peerDependenciesMeta:
1776 "@types/react": 1776 "@types/react":
1777 optional: true 1777 optional: true
1778 checksum: e28d27118856edcfcedb382df3387edbbe7703fbb4d0a7df5097f537731d11b12c9fba78614e08801d8d995d4679ab44fc963496570b64265724549d921d949e 1778 checksum: 1f3dbf479579166bde6b6e47fad99ad31c99f1a556314cffb2577af1efea2ab8a9033af550f70ab492894574988340c7a01b53019472b3b22f63e919916c8b76
1779 languageName: node 1779 languageName: node
1780 linkType: hard 1780 linkType: hard
1781 1781
1782"@mui/core-downloads-tracker@npm:^5.10.14": 1782"@mui/core-downloads-tracker@npm:^5.10.15":
1783 version: 5.10.14 1783 version: 5.10.15
1784 resolution: "@mui/core-downloads-tracker@npm:5.10.14" 1784 resolution: "@mui/core-downloads-tracker@npm:5.10.15"
1785 checksum: 16595cbfcb8fb553ed66b95485914d7abcb1eea96181b2388ef5bc517f445d88a794907d2de203834cae0d9a068963125b67d0a7d395806cbe5dbbdc7cd44779 1785 checksum: 750e0a066d7323bcda2465dce5df534e86a675200b0a0a3ce89b9afada618adfef8344ad532148a549840b8228b8e79e90026222f55a51f5e3c35ae6f3dfc7a7
1786 languageName: node 1786 languageName: node
1787 linkType: hard 1787 linkType: hard
1788 1788
1789"@mui/icons-material@npm:5.10.14": 1789"@mui/icons-material@npm:5.10.15":
1790 version: 5.10.14 1790 version: 5.10.15
1791 resolution: "@mui/icons-material@npm:5.10.14" 1791 resolution: "@mui/icons-material@npm:5.10.15"
1792 dependencies: 1792 dependencies:
1793 "@babel/runtime": ^7.20.1 1793 "@babel/runtime": ^7.20.1
1794 peerDependencies: 1794 peerDependencies:
@@ -1798,20 +1798,20 @@ __metadata:
1798 peerDependenciesMeta: 1798 peerDependenciesMeta:
1799 "@types/react": 1799 "@types/react":
1800 optional: true 1800 optional: true
1801 checksum: 306c7da2242914f18c4816e919f3980094d4f9ad4f47f97df535c000d4b9bd01757166747b8f13f77631a842349a41585f2156e47103452d3caa99d9e7c10300 1801 checksum: e0ba07e43aae36ae5528bd3961584417451f031072950f12eba09f3893ebbe97ae2a7b10638f8432820e08b5f99bf1043265502545168c0cf6415b3ad6cdbaf2
1802 languageName: node 1802 languageName: node
1803 linkType: hard 1803 linkType: hard
1804 1804
1805"@mui/material@npm:5.10.14": 1805"@mui/material@npm:5.10.15":
1806 version: 5.10.14 1806 version: 5.10.15
1807 resolution: "@mui/material@npm:5.10.14" 1807 resolution: "@mui/material@npm:5.10.15"
1808 dependencies: 1808 dependencies:
1809 "@babel/runtime": ^7.20.1 1809 "@babel/runtime": ^7.20.1
1810 "@mui/base": 5.0.0-alpha.106 1810 "@mui/base": 5.0.0-alpha.107
1811 "@mui/core-downloads-tracker": ^5.10.14 1811 "@mui/core-downloads-tracker": ^5.10.15
1812 "@mui/system": ^5.10.14 1812 "@mui/system": ^5.10.15
1813 "@mui/types": ^7.2.1 1813 "@mui/types": ^7.2.1
1814 "@mui/utils": ^5.10.14 1814 "@mui/utils": ^5.10.15
1815 "@types/react-transition-group": ^4.4.5 1815 "@types/react-transition-group": ^4.4.5
1816 clsx: ^1.2.1 1816 clsx: ^1.2.1
1817 csstype: ^3.1.1 1817 csstype: ^3.1.1
@@ -1831,16 +1831,16 @@ __metadata:
1831 optional: true 1831 optional: true
1832 "@types/react": 1832 "@types/react":
1833 optional: true 1833 optional: true
1834 checksum: c61ce7878d051ed1cceff8a346a2acd64372b8637f176f3e2cf0daef688c85ba6e39ada8c7a5090d12fec09e7d0d73051826f903c12899e912ce7b9e8fcb7ec6 1834 checksum: ab6aff5cb224872e7d6d1b2e7026b387f44f9d4e2300b894c93787cff373eab00d5e57b50fd9f69e392cec2fb9eeae315b740f9083644e390178d1be38b33ff3
1835 languageName: node 1835 languageName: node
1836 linkType: hard 1836 linkType: hard
1837 1837
1838"@mui/private-theming@npm:^5.10.14": 1838"@mui/private-theming@npm:^5.10.15":
1839 version: 5.10.14 1839 version: 5.10.15
1840 resolution: "@mui/private-theming@npm:5.10.14" 1840 resolution: "@mui/private-theming@npm:5.10.15"
1841 dependencies: 1841 dependencies:
1842 "@babel/runtime": ^7.20.1 1842 "@babel/runtime": ^7.20.1
1843 "@mui/utils": ^5.10.14 1843 "@mui/utils": ^5.10.15
1844 prop-types: ^15.8.1 1844 prop-types: ^15.8.1
1845 peerDependencies: 1845 peerDependencies:
1846 "@types/react": ^17.0.0 || ^18.0.0 1846 "@types/react": ^17.0.0 || ^18.0.0
@@ -1848,7 +1848,7 @@ __metadata:
1848 peerDependenciesMeta: 1848 peerDependenciesMeta:
1849 "@types/react": 1849 "@types/react":
1850 optional: true 1850 optional: true
1851 checksum: 14e6b77146e24a898796366d788f6bda63962a78663cfeb9f51f390feaa78fa6fd4708f03942e1ab3a60f5e92d97184df754e6ec1cea792b00d629fca8761a48 1851 checksum: 8b94e5bf7caac1c7b16c312613df7266188055c769e39b0c980e8c175159f1e76de7d9751eac0f2b97b98c38fa6770b08626650c6a77c6fa686115ef6931f2bc
1852 languageName: node 1852 languageName: node
1853 linkType: hard 1853 linkType: hard
1854 1854
@@ -1873,15 +1873,15 @@ __metadata:
1873 languageName: node 1873 languageName: node
1874 linkType: hard 1874 linkType: hard
1875 1875
1876"@mui/system@npm:^5.10.14": 1876"@mui/system@npm:^5.10.15":
1877 version: 5.10.14 1877 version: 5.10.15
1878 resolution: "@mui/system@npm:5.10.14" 1878 resolution: "@mui/system@npm:5.10.15"
1879 dependencies: 1879 dependencies:
1880 "@babel/runtime": ^7.20.1 1880 "@babel/runtime": ^7.20.1
1881 "@mui/private-theming": ^5.10.14 1881 "@mui/private-theming": ^5.10.15
1882 "@mui/styled-engine": ^5.10.14 1882 "@mui/styled-engine": ^5.10.14
1883 "@mui/types": ^7.2.1 1883 "@mui/types": ^7.2.1
1884 "@mui/utils": ^5.10.14 1884 "@mui/utils": ^5.10.15
1885 clsx: ^1.2.1 1885 clsx: ^1.2.1
1886 csstype: ^3.1.1 1886 csstype: ^3.1.1
1887 prop-types: ^15.8.1 1887 prop-types: ^15.8.1
@@ -1897,7 +1897,7 @@ __metadata:
1897 optional: true 1897 optional: true
1898 "@types/react": 1898 "@types/react":
1899 optional: true 1899 optional: true
1900 checksum: c97752f568642fd38b234f364efe3a407cd976b72b4c1c2482e39c0d88b9aa856a7d615541bd09b43f7ee7403be266d118ec4b183956a6476e99e895e35d8ba1 1900 checksum: 37cf9a18aaab1cc957e521743fa85cf72a6f35c82a9414326cccc82fb1e23a784d0c07517885c37d6276b6060a22cf7b2a79d1ca5b58a0faa286b949de75b309
1901 languageName: node 1901 languageName: node
1902 linkType: hard 1902 linkType: hard
1903 1903
@@ -1913,9 +1913,9 @@ __metadata:
1913 languageName: node 1913 languageName: node
1914 linkType: hard 1914 linkType: hard
1915 1915
1916"@mui/utils@npm:^5.10.14": 1916"@mui/utils@npm:^5.10.15":
1917 version: 5.10.14 1917 version: 5.10.15
1918 resolution: "@mui/utils@npm:5.10.14" 1918 resolution: "@mui/utils@npm:5.10.15"
1919 dependencies: 1919 dependencies:
1920 "@babel/runtime": ^7.20.1 1920 "@babel/runtime": ^7.20.1
1921 "@types/prop-types": ^15.7.5 1921 "@types/prop-types": ^15.7.5
@@ -1924,7 +1924,7 @@ __metadata:
1924 react-is: ^18.2.0 1924 react-is: ^18.2.0
1925 peerDependencies: 1925 peerDependencies:
1926 react: ^17.0.0 || ^18.0.0 1926 react: ^17.0.0 || ^18.0.0
1927 checksum: 8b30b0a2d2d70672c38543566ba36fdf531b9c5ad6daf89f4b6ae84da0862ad4e7822d5465e016dfc719e12221a9d0942b884a0d05ea89349308bee81d58574f 1927 checksum: bc585f0594aac1e0b5c01d8237d3a51f28fcd98d7bf57174235d5be14d49485ca978a953d3f084dc938625578bddce50db6a57e621ebdbc7e5dde966816e32f4
1928 languageName: node 1928 languageName: node
1929 linkType: hard 1929 linkType: hard
1930 1930
@@ -2016,8 +2016,9 @@ __metadata:
2016 "@lezer/highlight": ^1.1.2 2016 "@lezer/highlight": ^1.1.2
2017 "@lezer/lr": ^1.2.5 2017 "@lezer/lr": ^1.2.5
2018 "@material-icons/svg": ^1.0.33 2018 "@material-icons/svg": ^1.0.33
2019 "@mui/icons-material": 5.10.14 2019 "@mui/icons-material": 5.10.15
2020 "@mui/material": 5.10.14 2020 "@mui/material": 5.10.15
2021 "@tsconfig/node18-strictest-esm": ^1.0.1
2021 "@types/eslint": ^8.4.10 2022 "@types/eslint": ^8.4.10
2022 "@types/html-minifier-terser": ^7.0.0 2023 "@types/html-minifier-terser": ^7.0.0
2023 "@types/lodash-es": ^4.17.6 2024 "@types/lodash-es": ^4.17.6
@@ -2026,8 +2027,8 @@ __metadata:
2026 "@types/prettier": ^2.7.1 2027 "@types/prettier": ^2.7.1
2027 "@types/react": ^18.0.25 2028 "@types/react": ^18.0.25
2028 "@types/react-dom": ^18.0.9 2029 "@types/react-dom": ^18.0.9
2029 "@typescript-eslint/eslint-plugin": ^5.43.0 2030 "@typescript-eslint/eslint-plugin": ^5.44.0
2030 "@typescript-eslint/parser": ^5.43.0 2031 "@typescript-eslint/parser": ^5.44.0
2031 "@vitejs/plugin-react": ^2.2.0 2032 "@vitejs/plugin-react": ^2.2.0
2032 "@xstate/cli": ^0.3.3 2033 "@xstate/cli": ^0.3.3
2033 ansi-styles: ^6.2.1 2034 ansi-styles: ^6.2.1
@@ -2044,7 +2045,7 @@ __metadata:
2044 eslint-plugin-prettier: ^4.2.1 2045 eslint-plugin-prettier: ^4.2.1
2045 eslint-plugin-react: ^7.31.11 2046 eslint-plugin-react: ^7.31.11
2046 eslint-plugin-react-hooks: ^4.6.0 2047 eslint-plugin-react-hooks: ^4.6.0
2047 html-minifier-terser: ^7.0.0 2048 html-minifier-terser: ^7.1.0
2048 lodash-es: ^4.17.21 2049 lodash-es: ^4.17.21
2049 loglevel: ^1.8.1 2050 loglevel: ^1.8.1
2050 loglevel-plugin-prefix: ^0.8.4 2051 loglevel-plugin-prefix: ^0.8.4
@@ -2164,6 +2165,13 @@ __metadata:
2164 languageName: node 2165 languageName: node
2165 linkType: hard 2166 linkType: hard
2166 2167
2168"@tsconfig/node18-strictest-esm@npm:^1.0.1":
2169 version: 1.0.1
2170 resolution: "@tsconfig/node18-strictest-esm@npm:1.0.1"
2171 checksum: 9da55e6959defe1115996e3360decbf70f83fae925967c418a5a387db52daa005f6b270b858bea42d74c134ff7155157c5cabbfecc9c783fd1129e354ec2f31c
2172 languageName: node
2173 linkType: hard
2174
2167"@types/eslint@npm:^8.4.10": 2175"@types/eslint@npm:^8.4.10":
2168 version: 8.4.10 2176 version: 8.4.10
2169 resolution: "@types/eslint@npm:8.4.10" 2177 resolution: "@types/eslint@npm:8.4.10"
@@ -2328,13 +2336,13 @@ __metadata:
2328 languageName: node 2336 languageName: node
2329 linkType: hard 2337 linkType: hard
2330 2338
2331"@typescript-eslint/eslint-plugin@npm:^5.43.0": 2339"@typescript-eslint/eslint-plugin@npm:^5.44.0":
2332 version: 5.43.0 2340 version: 5.44.0
2333 resolution: "@typescript-eslint/eslint-plugin@npm:5.43.0" 2341 resolution: "@typescript-eslint/eslint-plugin@npm:5.44.0"
2334 dependencies: 2342 dependencies:
2335 "@typescript-eslint/scope-manager": 5.43.0 2343 "@typescript-eslint/scope-manager": 5.44.0
2336 "@typescript-eslint/type-utils": 5.43.0 2344 "@typescript-eslint/type-utils": 5.44.0
2337 "@typescript-eslint/utils": 5.43.0 2345 "@typescript-eslint/utils": 5.44.0
2338 debug: ^4.3.4 2346 debug: ^4.3.4
2339 ignore: ^5.2.0 2347 ignore: ^5.2.0
2340 natural-compare-lite: ^1.4.0 2348 natural-compare-lite: ^1.4.0
@@ -2347,43 +2355,43 @@ __metadata:
2347 peerDependenciesMeta: 2355 peerDependenciesMeta:
2348 typescript: 2356 typescript:
2349 optional: true 2357 optional: true
2350 checksum: aa0e9bcd9982e9601ada2088f46c1e9389abd31ceaf6cd1d492684fd711a67d595d4c95d97ba14081c2ea7eb3b98a9ebb33f91ef008e7450ce2f70b2a8ec4309 2358 checksum: 88784e77e8e35ea50ca9c49d46df94cabc3447f4b332f3ca53974d3b5370cb5dcd85cc9ee0e317b91083812012369209574725dcfc3b2b4056b60371b68ca854
2351 languageName: node 2359 languageName: node
2352 linkType: hard 2360 linkType: hard
2353 2361
2354"@typescript-eslint/parser@npm:^5.43.0": 2362"@typescript-eslint/parser@npm:^5.44.0":
2355 version: 5.43.0 2363 version: 5.44.0
2356 resolution: "@typescript-eslint/parser@npm:5.43.0" 2364 resolution: "@typescript-eslint/parser@npm:5.44.0"
2357 dependencies: 2365 dependencies:
2358 "@typescript-eslint/scope-manager": 5.43.0 2366 "@typescript-eslint/scope-manager": 5.44.0
2359 "@typescript-eslint/types": 5.43.0 2367 "@typescript-eslint/types": 5.44.0
2360 "@typescript-eslint/typescript-estree": 5.43.0 2368 "@typescript-eslint/typescript-estree": 5.44.0
2361 debug: ^4.3.4 2369 debug: ^4.3.4
2362 peerDependencies: 2370 peerDependencies:
2363 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 2371 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
2364 peerDependenciesMeta: 2372 peerDependenciesMeta:
2365 typescript: 2373 typescript:
2366 optional: true 2374 optional: true
2367 checksum: a28e0ef2807f1c3381c6dc1d9ddfd83ea8db657d3f808511adf13023b469ed64fc09619e05d7f68746b05ea68770a0882883c77ce908682965ba266f95e168c9 2375 checksum: 2d09a1a1547a7ae3f76c9a33a54e11d79a194fbb9dbae69988e7aed3370bdf12bafde669211152769d89db822e0cdee4173affc126664fa6f17abba56daa7261
2368 languageName: node 2376 languageName: node
2369 linkType: hard 2377 linkType: hard
2370 2378
2371"@typescript-eslint/scope-manager@npm:5.43.0": 2379"@typescript-eslint/scope-manager@npm:5.44.0":
2372 version: 5.43.0 2380 version: 5.44.0
2373 resolution: "@typescript-eslint/scope-manager@npm:5.43.0" 2381 resolution: "@typescript-eslint/scope-manager@npm:5.44.0"
2374 dependencies: 2382 dependencies:
2375 "@typescript-eslint/types": 5.43.0 2383 "@typescript-eslint/types": 5.44.0
2376 "@typescript-eslint/visitor-keys": 5.43.0 2384 "@typescript-eslint/visitor-keys": 5.44.0
2377 checksum: e594c7a32c3fa29e46dd0b0bc62f97f154bd864682ae7da87a14b6f4336f4cb02f6ed0602bbdb15783e4230ecdf8a0ccc6f7c5820850e8f11240c9e4fb0e388d 2385 checksum: 4cfe4b55eb428eda740e6b967e3a87f3e1f9c4bbd8e1d6b8d64a11666abe33ffe7a21e4e614444ccde2da6930fa85f3e0ffca43d6e339943ff7a4fbccb09c8fc
2378 languageName: node 2386 languageName: node
2379 linkType: hard 2387 linkType: hard
2380 2388
2381"@typescript-eslint/type-utils@npm:5.43.0": 2389"@typescript-eslint/type-utils@npm:5.44.0":
2382 version: 5.43.0 2390 version: 5.44.0
2383 resolution: "@typescript-eslint/type-utils@npm:5.43.0" 2391 resolution: "@typescript-eslint/type-utils@npm:5.44.0"
2384 dependencies: 2392 dependencies:
2385 "@typescript-eslint/typescript-estree": 5.43.0 2393 "@typescript-eslint/typescript-estree": 5.44.0
2386 "@typescript-eslint/utils": 5.43.0 2394 "@typescript-eslint/utils": 5.44.0
2387 debug: ^4.3.4 2395 debug: ^4.3.4
2388 tsutils: ^3.21.0 2396 tsutils: ^3.21.0
2389 peerDependencies: 2397 peerDependencies:
@@ -2391,23 +2399,23 @@ __metadata:
2391 peerDependenciesMeta: 2399 peerDependenciesMeta:
2392 typescript: 2400 typescript:
2393 optional: true 2401 optional: true
2394 checksum: 08dbc0b194d0ef1454a95d76c082503e04d9957e89a056068002e233f8d98113f50b2707f7c4b9b44f428e223d5b4485ee2b4df4e0cde354827c5edc92ede973 2402 checksum: 4c7b594f8afa52d57d0512951a874fa390eb791dcefcd0e1efff8817872293b2e4e04eff3c54d1595c1720a34d5fd315729af4e459882033d13cb6069ae9d28f
2395 languageName: node 2403 languageName: node
2396 linkType: hard 2404 linkType: hard
2397 2405
2398"@typescript-eslint/types@npm:5.43.0": 2406"@typescript-eslint/types@npm:5.44.0":
2399 version: 5.43.0 2407 version: 5.44.0
2400 resolution: "@typescript-eslint/types@npm:5.43.0" 2408 resolution: "@typescript-eslint/types@npm:5.44.0"
2401 checksum: fc5e5431c305feee4a3faae84f34df482e08d74b910a6f9376b01326c682ceefeeb0e270d03d7778787bc94ef05b3b85ee6d3c9d732290fbdb4a67ae1b110226 2409 checksum: ced7d32abecfc62ccb67cf27e30c0785b9c153ec7b1a05153ced58fa5a2031ab3845bc2e477b83e4cebdcc5881c5845d23053c6739c62549d41ae6208e547e85
2402 languageName: node 2410 languageName: node
2403 linkType: hard 2411 linkType: hard
2404 2412
2405"@typescript-eslint/typescript-estree@npm:5.43.0": 2413"@typescript-eslint/typescript-estree@npm:5.44.0":
2406 version: 5.43.0 2414 version: 5.44.0
2407 resolution: "@typescript-eslint/typescript-estree@npm:5.43.0" 2415 resolution: "@typescript-eslint/typescript-estree@npm:5.44.0"
2408 dependencies: 2416 dependencies:
2409 "@typescript-eslint/types": 5.43.0 2417 "@typescript-eslint/types": 5.44.0
2410 "@typescript-eslint/visitor-keys": 5.43.0 2418 "@typescript-eslint/visitor-keys": 5.44.0
2411 debug: ^4.3.4 2419 debug: ^4.3.4
2412 globby: ^11.1.0 2420 globby: ^11.1.0
2413 is-glob: ^4.0.3 2421 is-glob: ^4.0.3
@@ -2416,35 +2424,35 @@ __metadata:
2416 peerDependenciesMeta: 2424 peerDependenciesMeta:
2417 typescript: 2425 typescript:
2418 optional: true 2426 optional: true
2419 checksum: 3479f9413d73369ab3d574580c90a72f74d2ae1ec4afe485eebfad054c3d15c89f23a137bb9d6197dfdae33e444a76a99f6832688787feabbb064e09d39a3f55 2427 checksum: 758731108497cca7ff81cf0a78d086b5a85757a983979d6bb25ad8252b7acbc738c642ecb5f5df82f925a45926b9846e431d5cf9fee5ed2613300b4d0c5d6c3f
2420 languageName: node 2428 languageName: node
2421 linkType: hard 2429 linkType: hard
2422 2430
2423"@typescript-eslint/utils@npm:5.43.0": 2431"@typescript-eslint/utils@npm:5.44.0":
2424 version: 5.43.0 2432 version: 5.44.0
2425 resolution: "@typescript-eslint/utils@npm:5.43.0" 2433 resolution: "@typescript-eslint/utils@npm:5.44.0"
2426 dependencies: 2434 dependencies:
2427 "@types/json-schema": ^7.0.9 2435 "@types/json-schema": ^7.0.9
2428 "@types/semver": ^7.3.12 2436 "@types/semver": ^7.3.12
2429 "@typescript-eslint/scope-manager": 5.43.0 2437 "@typescript-eslint/scope-manager": 5.44.0
2430 "@typescript-eslint/types": 5.43.0 2438 "@typescript-eslint/types": 5.44.0
2431 "@typescript-eslint/typescript-estree": 5.43.0 2439 "@typescript-eslint/typescript-estree": 5.44.0
2432 eslint-scope: ^5.1.1 2440 eslint-scope: ^5.1.1
2433 eslint-utils: ^3.0.0 2441 eslint-utils: ^3.0.0
2434 semver: ^7.3.7 2442 semver: ^7.3.7
2435 peerDependencies: 2443 peerDependencies:
2436 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 2444 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
2437 checksum: 4c6b383b51506b57230f2624f883ae21e5d8411d138587c04fe3145f915bf8c289cc2a9f7b0b3faba98345ba230504e5014922bcc578aa0badd594d9eaa8f9ef 2445 checksum: bc5bb28e41898464d35b8eb47cc452103852541e3b6be56252c15a5a81c45e10aad3db4c749eb92d752b0c358df8074e23ec6f9e65f8089baadeda7f395c7e31
2438 languageName: node 2446 languageName: node
2439 linkType: hard 2447 linkType: hard
2440 2448
2441"@typescript-eslint/visitor-keys@npm:5.43.0": 2449"@typescript-eslint/visitor-keys@npm:5.44.0":
2442 version: 5.43.0 2450 version: 5.44.0
2443 resolution: "@typescript-eslint/visitor-keys@npm:5.43.0" 2451 resolution: "@typescript-eslint/visitor-keys@npm:5.44.0"
2444 dependencies: 2452 dependencies:
2445 "@typescript-eslint/types": 5.43.0 2453 "@typescript-eslint/types": 5.44.0
2446 eslint-visitor-keys: ^3.3.0 2454 eslint-visitor-keys: ^3.3.0
2447 checksum: 4820679e50096dcdaadc7c95d32e5dca3ba8510acf1a865e283822bae3940a2faec02ad8abe793f8a25f75b600f1e7215e1fd3b3ba73779eff737fa90d092550 2455 checksum: a012c888209e1d6ae684b2a44fd460ae5a80f5faf07bca4bda6c9c0d8c063ad3297d4c53f7151ae86cf1a43dee09625dc3ee72183323c91089c7288fd573c6f4
2448 languageName: node 2456 languageName: node
2449 linkType: hard 2457 linkType: hard
2450 2458
@@ -3060,10 +3068,10 @@ __metadata:
3060 languageName: node 3068 languageName: node
3061 linkType: hard 3069 linkType: hard
3062 3070
3063"commander@npm:^9.4.0": 3071"commander@npm:^9.4.1":
3064 version: 9.4.0 3072 version: 9.4.1
3065 resolution: "commander@npm:9.4.0" 3073 resolution: "commander@npm:9.4.1"
3066 checksum: a322de584a6ccd1ea83c24f6a660e52d16ffbe2613fcfbb8d2cc68bc9dec637492456d754fe8bb5b039ad843ed8e04fb0b107e581a75f62cde9e1a0ab1546e09 3074 checksum: bfb18e325a5bdf772763c2213d5c7d9e77144d944124e988bcd8e5e65fb6d45d5d4e86b09155d0f2556c9a59c31e428720e57968bcd050b2306e910a0bf3cf13
3067 languageName: node 3075 languageName: node
3068 linkType: hard 3076 linkType: hard
3069 3077
@@ -3358,10 +3366,10 @@ __metadata:
3358 languageName: node 3366 languageName: node
3359 linkType: hard 3367 linkType: hard
3360 3368
3361"entities@npm:^4.3.1": 3369"entities@npm:^4.4.0":
3362 version: 4.3.1 3370 version: 4.4.0
3363 resolution: "entities@npm:4.3.1" 3371 resolution: "entities@npm:4.4.0"
3364 checksum: e8f6d2bac238494b2355e90551893882d2675142be7e7bdfcb15248ed0652a630678ba0e3a8dc750693e736cb6011f504c27dabeb4cd3330560092e88b105090 3372 checksum: 84d250329f4b56b40fa93ed067b194db21e8815e4eb9b59f43a086f0ecd342814f6bc483de8a77da5d64e0f626033192b1b4f1792232a7ea6b970ebe0f3187c2
3365 languageName: node 3373 languageName: node
3366 linkType: hard 3374 linkType: hard
3367 3375
@@ -4461,20 +4469,20 @@ __metadata:
4461 languageName: node 4469 languageName: node
4462 linkType: hard 4470 linkType: hard
4463 4471
4464"html-minifier-terser@npm:^7.0.0": 4472"html-minifier-terser@npm:^7.1.0":
4465 version: 7.0.0 4473 version: 7.1.0
4466 resolution: "html-minifier-terser@npm:7.0.0" 4474 resolution: "html-minifier-terser@npm:7.1.0"
4467 dependencies: 4475 dependencies:
4468 camel-case: ^4.1.2 4476 camel-case: ^4.1.2
4469 clean-css: 5.2.0 4477 clean-css: 5.2.0
4470 commander: ^9.4.0 4478 commander: ^9.4.1
4471 entities: ^4.3.1 4479 entities: ^4.4.0
4472 param-case: ^3.0.4 4480 param-case: ^3.0.4
4473 relateurl: ^0.2.7 4481 relateurl: ^0.2.7
4474 terser: ^5.14.2 4482 terser: ^5.15.1
4475 bin: 4483 bin:
4476 html-minifier-terser: cli.js 4484 html-minifier-terser: cli.js
4477 checksum: eabd3b4835d9663bf7c30ea0f1c57870b0d8f7dc27b9fa17852ea57bfdd5fdc0ed9b7b83a7f13edd8626ccf98d3082e347764754278a661cab291469fd37dced 4485 checksum: 351de28d85f142314a6a9b5222bdcaf068cef6bf2f521952ef55d99a6acdcecd0b4dbc42578da2d438d579c6e868b899ca19eac901ee6f9f0c69c223b5942099
4478 languageName: node 4486 languageName: node
4479 linkType: hard 4487 linkType: hard
4480 4488
@@ -6523,9 +6531,9 @@ __metadata:
6523 languageName: node 6531 languageName: node
6524 linkType: hard 6532 linkType: hard
6525 6533
6526"terser@npm:^5.0.0, terser@npm:^5.14.2": 6534"terser@npm:^5.0.0, terser@npm:^5.15.1":
6527 version: 5.14.2 6535 version: 5.15.1
6528 resolution: "terser@npm:5.14.2" 6536 resolution: "terser@npm:5.15.1"
6529 dependencies: 6537 dependencies:
6530 "@jridgewell/source-map": ^0.3.2 6538 "@jridgewell/source-map": ^0.3.2
6531 acorn: ^8.5.0 6539 acorn: ^8.5.0
@@ -6533,7 +6541,7 @@ __metadata:
6533 source-map-support: ~0.5.20 6541 source-map-support: ~0.5.20
6534 bin: 6542 bin:
6535 terser: bin/terser 6543 terser: bin/terser
6536 checksum: cabb50a640d6c2cfb351e4f43dc7bf7436f649755bb83eb78b2cacda426d5e0979bd44e6f92d713f3ca0f0866e322739b9ced888ebbce6508ad872d08de74fcc 6544 checksum: 9880a1e0956983a1ce5de204ea35121c0009fa41d582a6904ae850e1953a1a2cc021168439565280c5a8eee67c85a874175627e24989b046c7a72589b81c3979
6537 languageName: node 6545 languageName: node
6538 linkType: hard 6546 linkType: hard
6539 6547