aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.eslintrc.cjs30
-rw-r--r--.gitattributes3
-rw-r--r--.gitignore2
-rw-r--r--CONTRIBUTING.md51
-rw-r--r--LICENSES/CC-BY-4.0.txt156
-rw-r--r--README.md4
-rw-r--r--buildSrc/src/main/kotlin/tools/refinery/gradle/frontend-workspace.gradle.kts17
-rw-r--r--gradle.properties2
-rw-r--r--gradle/libs.versions.toml10
-rw-r--r--gradlew.bat184
-rw-r--r--package.json20
-rw-r--r--settings.gradle.kts1
-rw-r--r--subprojects/docs/.gitignore6
-rw-r--r--subprojects/docs/babel.config.cts12
-rw-r--r--subprojects/docs/build.gradle.kts142
-rw-r--r--subprojects/docs/docusaurus.config.ts297
-rw-r--r--subprojects/docs/package.json71
-rw-r--r--subprojects/docs/src/components/Features/fi1.svg1
-rw-r--r--subprojects/docs/src/components/Features/fi1.svg.license4
-rw-r--r--subprojects/docs/src/components/Features/fi2.svg1
-rw-r--r--subprojects/docs/src/components/Features/fi2.svg.license4
-rw-r--r--subprojects/docs/src/components/Features/fi3.svg1
-rw-r--r--subprojects/docs/src/components/Features/fi3.svg.license4
-rw-r--r--subprojects/docs/src/components/Features/fi4.svg1
-rw-r--r--subprojects/docs/src/components/Features/fi4.svg.license4
-rw-r--r--subprojects/docs/src/components/Features/fi5.svg1
-rw-r--r--subprojects/docs/src/components/Features/fi5.svg.license4
-rw-r--r--subprojects/docs/src/components/Features/index.module.css130
-rw-r--r--subprojects/docs/src/components/Features/index.tsx114
-rw-r--r--subprojects/docs/src/components/UseCases/index.module.css104
-rw-r--r--subprojects/docs/src/components/UseCases/index.tsx106
-rw-r--r--subprojects/docs/src/components/UseCases/uc1.svg1
-rw-r--r--subprojects/docs/src/components/UseCases/uc1.svg.license4
-rw-r--r--subprojects/docs/src/components/UseCases/uc2.svg1
-rw-r--r--subprojects/docs/src/components/UseCases/uc2.svg.license4
-rw-r--r--subprojects/docs/src/components/UseCases/uc3.svg1
-rw-r--r--subprojects/docs/src/components/UseCases/uc3.svg.license4
-rw-r--r--subprojects/docs/src/components/UseCases/uc4.svg1
-rw-r--r--subprojects/docs/src/components/UseCases/uc4.svg.license4
-rw-r--r--subprojects/docs/src/components/UseCases/uc5.svg1
-rw-r--r--subprojects/docs/src/components/UseCases/uc5.svg.license4
-rw-r--r--subprojects/docs/src/components/UseCases/uc6.svg1
-rw-r--r--subprojects/docs/src/components/UseCases/uc6.svg.license4
-rw-r--r--subprojects/docs/src/components/Video/cover-background.pngbin0 -> 1979050 bytes
-rw-r--r--subprojects/docs/src/components/Video/cover-background.png.license9
-rw-r--r--subprojects/docs/src/components/Video/cover.svg1
-rw-r--r--subprojects/docs/src/components/Video/cover.svg.license3
-rw-r--r--subprojects/docs/src/components/Video/index.module.css79
-rw-r--r--subprojects/docs/src/components/Video/index.tsx62
-rw-r--r--subprojects/docs/src/css/custom.css142
-rw-r--r--subprojects/docs/src/css/sr-only.css22
-rw-r--r--subprojects/docs/src/develop/contributing/commands.md172
-rw-r--r--subprojects/docs/src/develop/contributing/ide-setup.md94
-rw-r--r--subprojects/docs/src/develop/contributing/index.md59
-rw-r--r--subprojects/docs/src/develop/index.md13
-rw-r--r--subprojects/docs/src/develop/javadoc.md42
-rw-r--r--subprojects/docs/src/learn/docker.md175
-rw-r--r--subprojects/docs/src/learn/index.md11
-rw-r--r--subprojects/docs/src/learn/language/_category_.yml10
-rw-r--r--subprojects/docs/src/learn/language/classes/ContainmentInstance.svg227
-rw-r--r--subprojects/docs/src/learn/language/classes/ContainmentInstance.svg.license3
-rw-r--r--subprojects/docs/src/learn/language/classes/InvalidInstance.svg20
-rw-r--r--subprojects/docs/src/learn/language/classes/InvalidInstance.svg.license3
-rw-r--r--subprojects/docs/src/learn/language/classes/MultiplicityConstraintsInstance.svg229
-rw-r--r--subprojects/docs/src/learn/language/classes/MultiplicityConstraintsInstance.svg.license3
-rw-r--r--subprojects/docs/src/learn/language/classes/NewObjectsSimple.svg29
-rw-r--r--subprojects/docs/src/learn/language/classes/NewObjectsSimple.svg.license3
-rw-r--r--subprojects/docs/src/learn/language/classes/NewObjectsWithInheritance.svg38
-rw-r--r--subprojects/docs/src/learn/language/classes/NewObjectsWithInheritance.svg.license3
-rw-r--r--subprojects/docs/src/learn/language/classes/ReferencesOppositeInstance.svg69
-rw-r--r--subprojects/docs/src/learn/language/classes/ReferencesOppositeInstance.svg.license3
-rw-r--r--subprojects/docs/src/learn/language/classes/ReferencesOppositeSelf.svg24
-rw-r--r--subprojects/docs/src/learn/language/classes/ReferencesOppositeSelf.svg.license3
-rw-r--r--subprojects/docs/src/learn/language/classes/ReferencesSimple.svg43
-rw-r--r--subprojects/docs/src/learn/language/classes/ReferencesSimple.svg.license3
-rw-r--r--subprojects/docs/src/learn/language/classes/index.md212
-rw-r--r--subprojects/docs/src/learn/language/logic/AssertionsError.svg20
-rw-r--r--subprojects/docs/src/learn/language/logic/AssertionsError.svg.license3
-rw-r--r--subprojects/docs/src/learn/language/logic/AssertionsExample.svg99
-rw-r--r--subprojects/docs/src/learn/language/logic/AssertionsExample.svg.license3
-rw-r--r--subprojects/docs/src/learn/language/logic/DefaultAssertions.svg129
-rw-r--r--subprojects/docs/src/learn/language/logic/DefaultAssertions.svg.license3
-rw-r--r--subprojects/docs/src/learn/language/logic/MultiObjects.svg81
-rw-r--r--subprojects/docs/src/learn/language/logic/MultiObjects.svg.license3
-rw-r--r--subprojects/docs/src/learn/language/logic/ObjectScopes.svg58
-rw-r--r--subprojects/docs/src/learn/language/logic/ObjectScopes.svg.license3
-rw-r--r--subprojects/docs/src/learn/language/logic/StrongerObjectScopes.svg58
-rw-r--r--subprojects/docs/src/learn/language/logic/StrongerObjectScopes.svg.license3
-rw-r--r--subprojects/docs/src/learn/language/logic/index.md256
-rw-r--r--subprojects/docs/src/learn/language/predicates/DerivedFeature.svg76
-rw-r--r--subprojects/docs/src/learn/language/predicates/DerivedFeature.svg.license3
-rw-r--r--subprojects/docs/src/learn/language/predicates/index.md284
-rw-r--r--subprojects/docs/src/learn/tutorials/_category_.yml11
-rw-r--r--subprojects/docs/src/learn/tutorials/file-system/fig1.svg72
-rw-r--r--subprojects/docs/src/learn/tutorials/file-system/fig1.svg.license3
-rw-r--r--subprojects/docs/src/learn/tutorials/file-system/fig2.svg145
-rw-r--r--subprojects/docs/src/learn/tutorials/file-system/fig2.svg.license3
-rw-r--r--subprojects/docs/src/learn/tutorials/file-system/fig3.svg124
-rw-r--r--subprojects/docs/src/learn/tutorials/file-system/fig3.svg.license3
-rw-r--r--subprojects/docs/src/learn/tutorials/file-system/fig4.svg131
-rw-r--r--subprojects/docs/src/learn/tutorials/file-system/fig4.svg.license3
-rw-r--r--subprojects/docs/src/learn/tutorials/file-system/index.md209
-rw-r--r--subprojects/docs/src/pages/index.module.css41
-rw-r--r--subprojects/docs/src/pages/index.tsx243
-rw-r--r--subprojects/docs/src/pages/license.md100
-rw-r--r--subprojects/docs/src/plugins/loadersPlugin.ts117
-rw-r--r--subprojects/docs/src/plugins/remarkPosix2Windows.ts169
-rw-r--r--subprojects/docs/src/plugins/swcMinifyPlugin.ts41
-rw-r--r--subprojects/docs/src/types.d.ts39
-rw-r--r--subprojects/docs/static/.nojekyll3
-rw-r--r--subprojects/docs/static/CNAME1
-rw-r--r--subprojects/docs/static/CNAME.license4
-rw-r--r--subprojects/docs/static/apple-touch-icon.pngbin0 -> 3711 bytes
-rw-r--r--subprojects/docs/static/apple-touch-icon.png.license3
-rw-r--r--subprojects/docs/static/favicon-96x96.pngbin0 -> 2044 bytes
-rw-r--r--subprojects/docs/static/favicon-96x96.png.license3
-rw-r--r--subprojects/docs/static/favicon.pngbin0 -> 822 bytes
-rw-r--r--subprojects/docs/static/favicon.png.license3
-rw-r--r--subprojects/docs/static/favicon.svg1
-rw-r--r--subprojects/docs/static/favicon.svg.license3
-rw-r--r--subprojects/docs/static/icon-192x192.pngbin0 -> 4094 bytes
-rw-r--r--subprojects/docs/static/icon-192x192.png.license3
-rw-r--r--subprojects/docs/static/icon-512x512.pngbin0 -> 11257 bytes
-rw-r--r--subprojects/docs/static/icon-512x512.png.license3
-rw-r--r--subprojects/docs/static/icon-any.svg1
-rw-r--r--subprojects/docs/static/icon-any.svg.license3
-rw-r--r--subprojects/docs/static/logo-dark.svg1
-rw-r--r--subprojects/docs/static/logo-dark.svg.license3
-rw-r--r--subprojects/docs/static/logo.svg1
-rw-r--r--subprojects/docs/static/logo.svg.license3
-rw-r--r--subprojects/docs/static/manifest.webmanifest35
-rw-r--r--subprojects/docs/static/manifest.webmanifest.license3
-rw-r--r--subprojects/docs/static/mask-icon.svg1
-rw-r--r--subprojects/docs/static/mask-icon.svg.license3
-rw-r--r--subprojects/docs/static/papers/icse24-demo.pdfbin0 -> 953075 bytes
-rw-r--r--subprojects/docs/static/papers/icse24-demo.pdf.license3
-rw-r--r--subprojects/docs/static/robots.txt8
-rw-r--r--subprojects/docs/static/screenshot.pngbin0 -> 167306 bytes
-rw-r--r--subprojects/docs/static/screenshot.png.license3
-rw-r--r--subprojects/docs/tsconfig.json34
-rw-r--r--subprojects/frontend/.gitignore6
-rw-r--r--subprojects/frontend/build.gradle.kts54
-rw-r--r--subprojects/frontend/index.html1
-rw-r--r--subprojects/frontend/package.json38
-rw-r--r--subprojects/frontend/src/ToggleDarkModeButton.tsx13
-rw-r--r--subprojects/frontend/src/TopBar.tsx54
-rw-r--r--subprojects/frontend/src/editor/ConnectButton.tsx51
-rw-r--r--subprojects/frontend/src/editor/EditorButtons.tsx187
-rw-r--r--subprojects/frontend/src/editor/SearchToolbar.tsx94
-rw-r--r--subprojects/frontend/src/graph/SlideInPanel.tsx21
-rw-r--r--subprojects/frontend/src/graph/VisibilityPanel.tsx2
-rw-r--r--subprojects/frontend/src/graph/ZoomButtons.tsx38
-rw-r--r--subprojects/frontend/src/graph/export/ExportPanel.tsx54
-rw-r--r--subprojects/frontend/src/graph/export/ExportSettingsStore.ts44
-rw-r--r--subprojects/frontend/src/graph/export/exportDiagram.tsx122
-rw-r--r--subprojects/frontend/src/table/SymbolSelector.tsx2
-rw-r--r--subprojects/frontend/src/table/TableArea.tsx62
-rw-r--r--subprojects/frontend/src/theme/ThemeProvider.tsx3
-rw-r--r--subprojects/language-web/build.gradle.kts6
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/ThreadPoolExecutorServiceProvider.java4
-rw-r--r--yarn.lock10496
-rwxr-xr-xyarnw10
-rw-r--r--yarnw.bat12
-rw-r--r--z3/gradle/libs.versions.toml2
164 files changed, 15770 insertions, 1597 deletions
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index da434649..9df1667a 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -9,6 +9,7 @@ const path = require('node:path');
9// Allow the Codium ESLint plugin to find `tsconfig.json` from the repository root. 9// Allow the Codium ESLint plugin to find `tsconfig.json` from the repository root.
10const project = [ 10const project = [
11 path.join(__dirname, 'tsconfig.json'), 11 path.join(__dirname, 'tsconfig.json'),
12 path.join(__dirname, 'subprojects/docs/tsconfig.json'),
12 path.join(__dirname, 'subprojects/frontend/tsconfig.json'), 13 path.join(__dirname, 'subprojects/frontend/tsconfig.json'),
13 path.join(__dirname, 'subprojects/frontend/tsconfig.node.json'), 14 path.join(__dirname, 'subprojects/frontend/tsconfig.node.json'),
14 path.join(__dirname, 'subprojects/frontend/tsconfig.shared.json'), 15 path.join(__dirname, 'subprojects/frontend/tsconfig.shared.json'),
@@ -48,8 +49,10 @@ module.exports = {
48 ignorePatterns: [ 49 ignorePatterns: [
49 'build/**/*', 50 'build/**/*',
50 'subprojects/*/build/**/*', 51 'subprojects/*/build/**/*',
51 'subprojects/*/dev-dist/**/*', 52 'subprojects/docs/.docusaurus/**/*',
52 'subprojects/*/src/**/*.typegen.ts', 53 'subprojects/docs/.yarn/**/*',
54 'subprojects/frontend/dev-dist/**/*',
55 'subprojects/frontend/src/**/*.typegen.ts',
53 ], 56 ],
54 rules: { 57 rules: {
55 // In typescript, some class methods implementing an inderface do not use `this`: 58 // In typescript, some class methods implementing an inderface do not use `this`:
@@ -108,6 +111,13 @@ module.exports = {
108 }, 111 },
109 }, 112 },
110 { 113 {
114 files: ['*.cts'],
115 rules: {
116 // Allow `import type` in CommonJS TypeScript modules.
117 'import/no-import-module-exports': 'off',
118 },
119 },
120 {
111 files: [ 121 files: [
112 '.eslintrc.cjs', 122 '.eslintrc.cjs',
113 'scripts/*.cjs', 123 'scripts/*.cjs',
@@ -132,5 +142,21 @@ module.exports = {
132 'no-process-env': 'off', 142 'no-process-env': 'off',
133 }, 143 },
134 }, 144 },
145 {
146 files: ['subprojects/docs/src/**/*'],
147 rules: {
148 'import/no-unresolved': [
149 'error',
150 {
151 ignore: [
152 // These imports are resolved by Docusaurus, not TypeScript.
153 '^@docusaurus/',
154 '^@theme/',
155 '^@theme-original/',
156 ],
157 },
158 ],
159 },
160 },
135 ], 161 ],
136}; 162};
diff --git a/.gitattributes b/.gitattributes
index 847ceced..285a1835 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,10 +1,11 @@
1# SPDX-FileCopyrightText: 2021-2023 The Refinery Authors 1# SPDX-FileCopyrightText: 2021-2024 The Refinery Authors
2# 2#
3# SPDX-License-Identifier: CC0-1.0 3# SPDX-License-Identifier: CC0-1.0
4 4
5.yarn/releases/** binary 5.yarn/releases/** binary
6.yarn/plugins/** binary 6.yarn/plugins/** binary
7*.cjs eol=lf 7*.cjs eol=lf
8*.cts eol=lf
8*.css eol=lf 9*.css eol=lf
9*.js eol=lf 10*.js eol=lf
10*.json eol=lf 11*.json eol=lf
diff --git a/.gitignore b/.gitignore
index fcb4a271..69876ddd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,10 +21,8 @@
21!.yarn/versions 21!.yarn/versions
22bin/ 22bin/
23build/ 23build/
24dev-dist/
25emf-gen/ 24emf-gen/
26node_modules/ 25node_modules/
27*.typegen.ts
28xtend-gen/ 26xtend-gen/
29*.xtendbin 27*.xtendbin
30xtext-gen/ 28xtext-gen/
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index a5f1594a..00000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,51 +0,0 @@
1<!--
2 SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3
4 SPDX-License-Identifier: EPL-2.0
5-->
6
7# Contributing to Refinery
8
9## Setting up the development environment
10
11### With IntelliJ IDEA
12
13We prefer IntelliJ IDEA as a development environment.
14No special preparations should be necessary for importing the project as a Gradle project into IDEA.
15
16However, you will need Eclipse to edit Xtext (`*.xtext`) and MWE2 (`*.mwe2`) files and Ecore class diagrams (`*.aird`, `*.ecore`, `*.genmodel`).
17If you do not plan on making changes to such files, feel free to skip the Eclipse installation steps below.
18
19### With Eclipse IDE
20
211. Download and install a _Java 21_ compatible JDK. For Windows, prefer OpenJDK builds from [Adoptium](https://adoptium.net/).
22
232. Download and extract the [Eclipse IDE for Java and DSL Developers 2023-12](https://www.eclipse.org/downloads/packages/release/2023-12/r/eclipse-ide-java-and-dsl-developers) package.
24
253. Launch Eclipse and create a new workspace.
26
274. Open _Help > Eclipse Marketplace_ and install the following software:
28 * _EclEmma Java Code Coverage_
29 * _EcoreTools : Ecore Diagram Editor_
30 * _Sirius_ (ignore the warning during installation about the solution _Sirius_ not being available)
31 * _SonarLint_
32
335. Open _Window > Preferences_ and set the following preferences:
34 * _General > Workspace > Text file encoding_ should be _UTF-8_.
35 * _General > Workspace > New text file line delimiter_ should be _Unix_.
36 * Add the JDK 21 to _Java > Installed JREs_.
37 * Make sure JDK 21 is selected for _JavaSE-21_ at _Java > Installed JREs > Execution Environments_.
38 * Set _Gradle > Java home_ to the `JAVA_HOME` directory (the directory which contains the `bin` directory) of JDK 21. Here, Buildship will show a yellow warning sign, which can be safely ignored.
39 * Set _Java > Compiler > JDK Compliance > Compiler compliance level_ to _21_.
40
416. Clone the project Git repository but do not import it into Eclipse yet.
42
437. Open a new terminal an run `./gradlew prepareEclipse` (`.\gradlew prepareEclipse` on Windows) in the cloned repository.
44 * This should complete without any compilation errors.
45 * If you get any errors about the JVM version, check whether the `JAVA_HOME` environment variable is set to the location of JDK. You can query the variable with `echo $JAVA_HOME` on Linux and `echo $Env:JAVA_HOME` in PowerShell on Windows. To set it, use `export JAVA_HOME=/java/path/here` or `$Env:JAVA_HOME="C:\java\path\here"`, respectively.
46 * If the build fails with a `Host name must not be empty` error, you [might need to remove the empty proxy configuration from your global `gradle.properties` file](https://stackoverflow.com/a/62128323).
47
488. Select _File > Import... > Gradle > Existing Gradle Project_ and import the cloned repository in Eclipse.
49 * Make sure to select the root of the repository (containing this file) as the _Project root directory_ and that the _Gradle distribution_ is _Gradle wrapper_.
50 * If you have previously imported the project into Eclipse, this step will likely fail. In that case, you should remove the projects from Eclipse, run `git clean -fxd` in the repository, and start over from step 8.
51
diff --git a/LICENSES/CC-BY-4.0.txt b/LICENSES/CC-BY-4.0.txt
new file mode 100644
index 00000000..13ca539f
--- /dev/null
+++ b/LICENSES/CC-BY-4.0.txt
@@ -0,0 +1,156 @@
1Creative Commons Attribution 4.0 International
2
3 Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible.
4
5Using Creative Commons Public Licenses
6
7Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses.
8
9Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. More considerations for licensors.
10
11Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public.
12
13Creative Commons Attribution 4.0 International Public License
14
15By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.
16
17Section 1 – Definitions.
18
19 a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
20
21 b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
22
23 c. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
24
25 d. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
26
27 e. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.
28
29 f. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License.
30
31 g. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.
32
33 h. Licensor means the individual(s) or entity(ies) granting rights under this Public License.
34
35 i. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.
36
37 j. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.
38
39 k. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning.
40
41Section 2 – Scope.
42
43 a. License grant.
44
45 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to:
46
47 A. reproduce and Share the Licensed Material, in whole or in part; and
48
49 B. produce, reproduce, and Share Adapted Material.
50
51 2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.
52
53 3. Term. The term of this Public License is specified in Section 6(a).
54
55 4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.
56
57 5. Downstream recipients.
58
59 A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.
60
61 B. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
62
63 6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
64
65b. Other rights.
66
67 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.
68
69 2. Patent and trademark rights are not licensed under this Public License.
70
71 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties.
72
73Section 3 – License Conditions.
74
75Your exercise of the Licensed Rights is expressly made subject to the following conditions.
76
77 a. Attribution.
78
79 1. If You Share the Licensed Material (including in modified form), You must:
80
81 A. retain the following if it is supplied by the Licensor with the Licensed Material:
82
83 i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);
84
85 ii. a copyright notice;
86
87 iii. a notice that refers to this Public License;
88
89 iv. a notice that refers to the disclaimer of warranties;
90
91 v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
92
93 B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and
94
95 C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License.
96
97 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.
98
99 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.
100
101 4. If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License.
102
103Section 4 – Sui Generis Database Rights.
104
105Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:
106
107 a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database;
108
109 b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and
110
111 c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.
112For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights.
113
114Section 5 – Disclaimer of Warranties and Limitation of Liability.
115
116 a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.
117
118 b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.
119
120 c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.
121
122Section 6 – Term and Termination.
123
124 a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.
125
126 b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
127
128 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or
129
130 2. upon express reinstatement by the Licensor.
131
132 c. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.
133
134 d. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.
135
136 e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
137
138Section 7 – Other Terms and Conditions.
139
140 a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.
141
142 b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.
143
144Section 8 – Interpretation.
145
146 a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.
147
148 b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.
149
150 c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.
151
152 d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.
153
154Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses.
155
156Creative Commons may be contacted at creativecommons.org.
diff --git a/README.md b/README.md
index 1f9eccee..23574886 100644
--- a/README.md
+++ b/README.md
@@ -42,8 +42,8 @@ J. Object Technol. **19**(3): 3:1-22 (2020) [[doi](https://doi.org/10.5381/jot.2
42### Consitent graph generation techniques 42### Consitent graph generation techniques
43 43
44* O. Semeráth, A. Nagy, D. Varró: &ldquo;A graph solver for the automated generation of consistent domain-specific models.&rdquo; _ICSE 2018:_ 969-980 [[doi](https://doi.org/10.1145/3180155.3180186)] [[pdf](https://dl.acm.org/doi/pdf/10.1145/3180155.3180186)] 44* O. Semeráth, A. Nagy, D. Varró: &ldquo;A graph solver for the automated generation of consistent domain-specific models.&rdquo; _ICSE 2018:_ 969-980 [[doi](https://doi.org/10.1145/3180155.3180186)] [[pdf](https://dl.acm.org/doi/pdf/10.1145/3180155.3180186)]
45* K. Marussy, O. Semeráth, D. Varró: _Automated Generation of Consistent Graph Models With Multiplicity Reasoning._ IEEE Trans. Software Eng. **48**(5): 1610-1629 (2022) [[doi](https://doi.org/10.1109/TSE.2020.3025732)] [[pdf](https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9201551)] 45* K. Marussy, O. Semeráth, D. Varró: _Automated Generation of Consistent Graph Models With Multiplicity Reasoning._ IEEE Trans. Softw. Eng. **48**(5): 1610-1629 (2022) [[doi](https://doi.org/10.1109/TSE.2020.3025732)] [[pdf](https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9201551)]
46* A.. Babikian, O. Semeráth, A. Li, K. Marussy, D. Varró: _Automated generation of consistent models using qualitative abstractions and exploration strategies._ Softw. Syst. Model. **21**(5): 1763-1787 (2022) [[doi](https://doi.org/10.1007/s10270-021-00918-6)] [[pdf](https://link.springer.com/content/pdf/10.1007/s10270-021-00918-6.pdf?pdf=button)] 46* A. Babikian, O. Semeráth, A. Li, K. Marussy, D. Varró: _Automated generation of consistent models using qualitative abstractions and exploration strategies._ Softw. Syst. Model. **21**(5): 1763-1787 (2022) [[doi](https://doi.org/10.1007/s10270-021-00918-6)] [[pdf](https://link.springer.com/content/pdf/10.1007/s10270-021-00918-6.pdf?pdf=button)]
47 47
48### Diverse and realistic graph generation 48### Diverse and realistic graph generation
49 49
diff --git a/buildSrc/src/main/kotlin/tools/refinery/gradle/frontend-workspace.gradle.kts b/buildSrc/src/main/kotlin/tools/refinery/gradle/frontend-workspace.gradle.kts
index e2bd9aec..436d575d 100644
--- a/buildSrc/src/main/kotlin/tools/refinery/gradle/frontend-workspace.gradle.kts
+++ b/buildSrc/src/main/kotlin/tools/refinery/gradle/frontend-workspace.gradle.kts
@@ -5,11 +5,17 @@
5 */ 5 */
6package tools.refinery.gradle 6package tools.refinery.gradle
7 7
8import org.siouan.frontendgradleplugin.domain.ExecutableType
9
8plugins { 10plugins {
9 id("tools.refinery.gradle.eclipse") 11 id("tools.refinery.gradle.eclipse")
10 id("tools.refinery.gradle.internal.frontend-conventions") 12 id("tools.refinery.gradle.internal.frontend-conventions")
11} 13}
12 14
15frontend {
16 nodeDistributionProvided = true
17}
18
13tasks { 19tasks {
14 installNode { 20 installNode {
15 dependsOn(rootProject.tasks.named("installNode")) 21 dependsOn(rootProject.tasks.named("installNode"))
@@ -18,6 +24,8 @@ tasks {
18 24
19 resolvePackageManager { 25 resolvePackageManager {
20 dependsOn(rootProject.tasks.named("resolvePackageManager")) 26 dependsOn(rootProject.tasks.named("resolvePackageManager"))
27 // We can't enable this task, because the package manager is declared in the worktree `package.json` instead of
28 // the `package.json` in this workspace (subproject).
21 enabled = false 29 enabled = false
22 } 30 }
23 31
@@ -36,4 +44,13 @@ tasks {
36 dependsOn(rootInstallFrontend) 44 dependsOn(rootInstallFrontend)
37 enabled = false 45 enabled = false
38 } 46 }
47
48 assembleFrontend {
49 // Workaround to enable this task even if we have disabled `installPackageManager`. See
50 // https://github.com/siouan/frontend-gradle-plugin/blob/2add49d3a74c927abc813d98787be116d0074afe/plugin/src/main/java/org/siouan/frontendgradleplugin/FrontendGradlePlugin.java#L514-L516
51 setOnlyIf { frontend.assembleScript.isPresent }
52 // Workaround for disabled `resolvePackageManager`. See
53 // https://github.com/siouan/frontend-gradle-plugin/blob/2add49d3a74c927abc813d98787be116d0074afe/plugin/src/main/java/org/siouan/frontendgradleplugin/FrontendGradlePlugin.java#L513
54 executableType.set(ExecutableType.YARN)
55 }
39} 56}
diff --git a/gradle.properties b/gradle.properties
index 9c20dde8..1fd81142 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -3,7 +3,7 @@
3# SPDX-License-Identifier: EPL-2.0 3# SPDX-License-Identifier: EPL-2.0
4 4
5file.encoding=UTF-8 5file.encoding=UTF-8
6frontend.nodeVersion=20.12.1 6frontend.nodeVersion=20.12.2
7group=tools.refinery 7group=tools.refinery
8# Set to true once tools.refinery.gradle.frontend-worktree supports the cache. 8# Set to true once tools.refinery.gradle.frontend-worktree supports the cache.
9org.gradle.configuration-cache=false 9org.gradle.configuration-cache=false
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 9c4d686a..fe22cc06 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -6,11 +6,11 @@
6eclipseCollections = "12.0.0.M3" 6eclipseCollections = "12.0.0.M3"
7jetty = "12.0.8" 7jetty = "12.0.8"
8jmh = "1.37" 8jmh = "1.37"
9junit = "5.10.2" 9junit = "5.11.0-M1"
10mockito = "5.11.0" 10mockito = "5.11.0"
11mwe2 = "2.18.0.M1" 11mwe2 = "2.18.0.M2"
12slf4j = "2.0.12" 12slf4j = "2.0.13"
13xtext = "2.34.0" 13xtext = "2.35.0.M0"
14 14
15[libraries] 15[libraries]
16eclipseCollections = { group = "org.eclipse.collections", name = "eclipse-collections", version.ref = "eclipseCollections" } 16eclipseCollections = { group = "org.eclipse.collections", name = "eclipse-collections", version.ref = "eclipseCollections" }
@@ -37,7 +37,7 @@ junit-engine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", ver
37junit-params = { group = "org.junit.jupiter", name = "junit-jupiter-params", version.ref = "junit" } 37junit-params = { group = "org.junit.jupiter", name = "junit-jupiter-params", version.ref = "junit" }
38mockito-core = { group = "org.mockito", name = "mockito-core", version.ref = "mockito" } 38mockito-core = { group = "org.mockito", name = "mockito-core", version.ref = "mockito" }
39mockito-junit = { group = "org.mockito", name = "mockito-junit-jupiter", version.ref = "mockito" } 39mockito-junit = { group = "org.mockito", name = "mockito-junit-jupiter", version.ref = "mockito" }
40mwe-utils = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe.utils", version = "1.12.0.M1" } 40mwe-utils = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe.utils", version = "1.12.0.M2" }
41mwe2-launch = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.launch", version.ref = "mwe2" } 41mwe2-launch = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.launch", version.ref = "mwe2" }
42mwe2-lib = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.lib", version.ref = "mwe2" } 42mwe2-lib = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.lib", version.ref = "mwe2" }
43ortools = { group = "com.google.ortools", name = "ortools-java", version = "9.9.3963" } 43ortools = { group = "com.google.ortools", name = "ortools-java", version = "9.9.3963" }
diff --git a/gradlew.bat b/gradlew.bat
index 7101f8e4..6b1b6735 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -1,92 +1,92 @@
1@rem 1@rem
2@rem Copyright 2015 the original author or authors. 2@rem Copyright 2015 the original author or authors.
3@rem 3@rem
4@rem Licensed under the Apache License, Version 2.0 (the "License"); 4@rem Licensed under the Apache License, Version 2.0 (the "License");
5@rem you may not use this file except in compliance with the License. 5@rem you may not use this file except in compliance with the License.
6@rem You may obtain a copy of the License at 6@rem You may obtain a copy of the License at
7@rem 7@rem
8@rem https://www.apache.org/licenses/LICENSE-2.0 8@rem https://www.apache.org/licenses/LICENSE-2.0
9@rem 9@rem
10@rem Unless required by applicable law or agreed to in writing, software 10@rem Unless required by applicable law or agreed to in writing, software
11@rem distributed under the License is distributed on an "AS IS" BASIS, 11@rem distributed under the License is distributed on an "AS IS" BASIS,
12@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13@rem See the License for the specific language governing permissions and 13@rem See the License for the specific language governing permissions and
14@rem limitations under the License. 14@rem limitations under the License.
15@rem 15@rem
16 16
17@if "%DEBUG%"=="" @echo off 17@if "%DEBUG%"=="" @echo off
18@rem ########################################################################## 18@rem ##########################################################################
19@rem 19@rem
20@rem Gradle startup script for Windows 20@rem Gradle startup script for Windows
21@rem 21@rem
22@rem ########################################################################## 22@rem ##########################################################################
23 23
24@rem Set local scope for the variables with windows NT shell 24@rem Set local scope for the variables with windows NT shell
25if "%OS%"=="Windows_NT" setlocal 25if "%OS%"=="Windows_NT" setlocal
26 26
27set DIRNAME=%~dp0 27set DIRNAME=%~dp0
28if "%DIRNAME%"=="" set DIRNAME=. 28if "%DIRNAME%"=="" set DIRNAME=.setlocal
29@rem This is normally unused 29@rem This is normally unused
30set APP_BASE_NAME=%~n0 30set APP_BASE_NAME=%~n0
31set APP_HOME=%DIRNAME% 31set APP_HOME=%DIRNAME%
32 32
33@rem Resolve any "." and ".." in APP_HOME to make it shorter. 33@rem Resolve any "." and ".." in APP_HOME to make it shorter.
34for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 34for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
35 35
36@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 36@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
37set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 37set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
38 38
39@rem Find java.exe 39@rem Find java.exe
40if defined JAVA_HOME goto findJavaFromJavaHome 40if defined JAVA_HOME goto findJavaFromJavaHome
41 41
42set JAVA_EXE=java.exe 42set JAVA_EXE=java.exe
43%JAVA_EXE% -version >NUL 2>&1 43%JAVA_EXE% -version >NUL 2>&1
44if %ERRORLEVEL% equ 0 goto execute 44if %ERRORLEVEL% equ 0 goto execute
45 45
46echo. 1>&2 46echo. 1>&2
47echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 47echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
48echo. 1>&2 48echo. 1>&2
49echo Please set the JAVA_HOME variable in your environment to match the 1>&2 49echo Please set the JAVA_HOME variable in your environment to match the 1>&2
50echo location of your Java installation. 1>&2 50echo location of your Java installation. 1>&2
51 51
52goto fail 52goto fail
53 53
54:findJavaFromJavaHome 54:findJavaFromJavaHome
55set JAVA_HOME=%JAVA_HOME:"=% 55set JAVA_HOME=%JAVA_HOME:"=%
56set JAVA_EXE=%JAVA_HOME%/bin/java.exe 56set JAVA_EXE=%JAVA_HOME%/bin/java.exe
57 57
58if exist "%JAVA_EXE%" goto execute 58if exist "%JAVA_EXE%" goto execute
59 59
60echo. 1>&2 60echo. 1>&2
61echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 61echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
62echo. 1>&2 62echo. 1>&2
63echo Please set the JAVA_HOME variable in your environment to match the 1>&2 63echo Please set the JAVA_HOME variable in your environment to match the 1>&2
64echo location of your Java installation. 1>&2 64echo location of your Java installation. 1>&2
65 65
66goto fail 66goto fail
67 67
68:execute 68:execute
69@rem Setup the command line 69@rem Setup the command line
70 70
71set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 71set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
72 72
73 73
74@rem Execute Gradle 74@rem Execute Gradle
75"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* 75"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
76 76
77:end 77:end
78@rem End local scope for the variables with windows NT shell 78@rem End local scope for the variables with windows NT shell
79if %ERRORLEVEL% equ 0 goto mainEnd 79if %ERRORLEVEL% equ 0 goto mainEnd
80 80
81:fail 81:fail
82rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 82rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83rem the _cmd.exe /c_ return code! 83rem the _cmd.exe /c_ return code!
84set EXIT_CODE=%ERRORLEVEL% 84set EXIT_CODE=%ERRORLEVEL%
85if %EXIT_CODE% equ 0 set EXIT_CODE=1 85if %EXIT_CODE% equ 0 set EXIT_CODE=1
86if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% 86if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
87exit /b %EXIT_CODE% 87exit /b %EXIT_CODE%
88 88
89:mainEnd 89:mainEnd
90if "%OS%"=="Windows_NT" endlocal 90if "%OS%"=="Windows_NT" endlocal
91 91
92:omega 92:omega
diff --git a/package.json b/package.json
index 78d16741..f16ffe07 100644
--- a/package.json
+++ b/package.json
@@ -18,9 +18,11 @@
18 }, 18 },
19 "homepage": "https://refinery.tools", 19 "homepage": "https://refinery.tools",
20 "workspaces": [ 20 "workspaces": [
21 "subprojects/docs",
21 "subprojects/frontend" 22 "subprojects/frontend"
22 ], 23 ],
23 "scripts": { 24 "scripts": {
25 "docs": "yarn workspace @refinery/docs",
24 "frontend": "yarn workspace @refinery/frontend", 26 "frontend": "yarn workspace @refinery/frontend",
25 "typecheck": "yarn run g:tsc -p tsconfig.json", 27 "typecheck": "yarn run g:tsc -p tsconfig.json",
26 "lint": "yarn run g:lint", 28 "lint": "yarn run g:lint",
@@ -30,15 +32,15 @@
30 }, 32 },
31 "packageManager": "yarn@4.1.1", 33 "packageManager": "yarn@4.1.1",
32 "dependencies": { 34 "dependencies": {
33 "react": "^18.2.0" 35 "react": "^18.3.1"
34 }, 36 },
35 "devDependencies": { 37 "devDependencies": {
36 "@types/eslint": "^8.56.7", 38 "@types/eslint": "^8.56.10",
37 "@types/node": "^20.12.5", 39 "@types/node": "^20.12.7",
38 "@types/react": "^18.2.74", 40 "@types/react": "^18.3.0",
39 "@typescript-eslint/eslint-plugin": "^7.5.0", 41 "@typescript-eslint/eslint-plugin": "^7.7.1",
40 "@typescript-eslint/parser": "^7.5.0", 42 "@typescript-eslint/parser": "^7.7.1",
41 "corepack": "^0.26.0", 43 "corepack": "^0.28.0",
42 "eslint": "^8.57.0", 44 "eslint": "^8.57.0",
43 "eslint-config-airbnb": "^19.0.4", 45 "eslint-config-airbnb": "^19.0.4",
44 "eslint-config-airbnb-typescript": "^18.0.0", 46 "eslint-config-airbnb-typescript": "^18.0.0",
@@ -49,9 +51,9 @@
49 "eslint-plugin-mobx": "^0.0.9", 51 "eslint-plugin-mobx": "^0.0.9",
50 "eslint-plugin-prettier": "^5.1.3", 52 "eslint-plugin-prettier": "^5.1.3",
51 "eslint-plugin-react": "^7.34.1", 53 "eslint-plugin-react": "^7.34.1",
52 "eslint-plugin-react-hooks": "^4.6.0", 54 "eslint-plugin-react-hooks": "^4.6.2",
53 "prettier": "^3.2.5", 55 "prettier": "^3.2.5",
54 "typescript": "5.4.4" 56 "typescript": "5.4.5"
55 }, 57 },
56 "resolutions": { 58 "resolutions": {
57 "d3-zoom@npm:^3.0.0": "patch:d3-zoom@npm%3A3.0.0#~/.yarn/patches/d3-zoom-npm-3.0.0-18f706a421.patch", 59 "d3-zoom@npm:^3.0.0": "patch:d3-zoom@npm%3A3.0.0#~/.yarn/patches/d3-zoom-npm-3.0.0-18f706a421.patch",
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 50ca1f24..4a7cdfb9 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -7,6 +7,7 @@
7rootProject.name = "refinery" 7rootProject.name = "refinery"
8 8
9include( 9include(
10 "docs",
10 "frontend", 11 "frontend",
11 "generator", 12 "generator",
12 "generator-cli", 13 "generator-cli",
diff --git a/subprojects/docs/.gitignore b/subprojects/docs/.gitignore
new file mode 100644
index 00000000..2d94aa21
--- /dev/null
+++ b/subprojects/docs/.gitignore
@@ -0,0 +1,6 @@
1# SPDX-FileCopyrightText: 2024 The Refinery Authors
2#
3# SPDX-License-Identifier: CC0-1.0
4
5.docusaurus
6.yarn
diff --git a/subprojects/docs/babel.config.cts b/subprojects/docs/babel.config.cts
new file mode 100644
index 00000000..b1bc1281
--- /dev/null
+++ b/subprojects/docs/babel.config.cts
@@ -0,0 +1,12 @@
1/*
2 * Copyright (c) Facebook, Inc. and its affiliates.
3 * Copyright (c) 2024 The Refinery Authors <https://refinery.tools/>
4 *
5 * SPDX-License-Identifier: MIT AND EPL-2.0
6 */
7
8import type { TransformOptions } from '@babel/core';
9
10module.exports = {
11 presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
12} satisfies TransformOptions;
diff --git a/subprojects/docs/build.gradle.kts b/subprojects/docs/build.gradle.kts
new file mode 100644
index 00000000..e559ed3e
--- /dev/null
+++ b/subprojects/docs/build.gradle.kts
@@ -0,0 +1,142 @@
1/*
2 * SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7import org.siouan.frontendgradleplugin.infrastructure.gradle.RunYarn
8import tools.refinery.gradle.utils.SonarPropertiesUtils
9
10plugins {
11 id("tools.refinery.gradle.frontend-workspace")
12 id("tools.refinery.gradle.sonarqube")
13}
14
15frontend {
16 assembleScript.set("run build")
17}
18
19val javadocs: Configuration by configurations.creating {
20 isCanBeConsumed = false
21 isCanBeResolved = true
22}
23
24dependencies {
25 javadocs(project(":refinery-generator", "javadocElements"))
26 javadocs(project(":refinery-generator-cli", "javadocElements"))
27 javadocs(project(":refinery-interpreter", "javadocElements"))
28 javadocs(project(":refinery-interpreter-localsearch", "javadocElements"))
29 javadocs(project(":refinery-interpreter-rete", "javadocElements"))
30 javadocs(project(":refinery-interpreter-rete-recipes", "javadocElements"))
31 javadocs(project(":refinery-language", "javadocElements"))
32 javadocs(project(":refinery-language-ide", "javadocElements"))
33 javadocs(project(":refinery-language-model", "javadocElements"))
34 javadocs(project(":refinery-language-semantics", "javadocElements"))
35 javadocs(project(":refinery-language-web", "javadocElements"))
36 javadocs(project(":refinery-logic", "javadocElements"))
37 javadocs(project(":refinery-store", "javadocElements"))
38 javadocs(project(":refinery-store-dse", "javadocElements"))
39 javadocs(project(":refinery-store-dse-visualization", "javadocElements"))
40 javadocs(project(":refinery-store-query", "javadocElements"))
41 javadocs(project(":refinery-store-query-interpreter", "javadocElements"))
42 javadocs(project(":refinery-store-reasoning", "javadocElements"))
43 javadocs(project(":refinery-store-reasoning-scope", "javadocElements"))
44 javadocs(project(":refinery-store-reasoning-smt", "javadocElements"))
45}
46
47val srcDir = "src"
48
49val docusaurusOutputDir = layout.buildDirectory.dir("docusaurus")
50
51val javadocsDir = layout.buildDirectory.dir("javadocs")
52
53val javadocsDocsDir = javadocsDir.map { root -> root.dir("develop/javadoc") }
54
55val configFiles: FileCollection = files(
56 rootProject.file("yarn.lock"),
57 rootProject.file("package.json"),
58 "package.json",
59 rootProject.file("tsconfig.base.json"),
60 "tsconfig.json",
61 "babel.config.config.ts",
62 "docusaurus.config.ts",
63)
64
65val lintConfigFiles: FileCollection = configFiles + files(
66 rootProject.file(".eslintrc.cjs"),
67 rootProject.file("prettier.config.cjs")
68)
69
70tasks {
71 val extractJavadocs by registering {
72 dependsOn(javadocs)
73 outputs.dir(javadocsDir)
74 doFirst {
75 delete(javadocsDir)
76 }
77 doLast {
78 javadocs.resolvedConfiguration.resolvedArtifacts.forEach { artifact ->
79 copy {
80 from(zipTree(artifact.file))
81 into(javadocsDocsDir.map { root -> root.dir(artifact.moduleVersion.id.name) })
82 }
83 }
84 }
85 }
86
87 assembleFrontend {
88 dependsOn(extractJavadocs)
89 inputs.dir(srcDir)
90 inputs.dir("static")
91 inputs.dir(javadocsDir)
92 inputs.files(configFiles)
93 outputs.dir(docusaurusOutputDir)
94 }
95
96 val typeCheckFrontend by registering(RunYarn::class) {
97 dependsOn(installFrontend)
98 inputs.dir(srcDir)
99 inputs.files(configFiles)
100 outputs.dir(layout.buildDirectory.dir("typescript"))
101 script.set("run typecheck")
102 group = "verification"
103 description = "Check for TypeScript type errors."
104 }
105
106 val lintFrontend by registering(RunYarn::class) {
107 dependsOn(installFrontend)
108 dependsOn(typeCheckFrontend)
109 inputs.dir(srcDir)
110 inputs.files(lintConfigFiles)
111 outputs.file(layout.buildDirectory.file("eslint.json"))
112 script.set("run lint")
113 group = "verification"
114 description = "Check for TypeScript lint errors and warnings."
115 }
116
117 register<RunYarn>("fixFrontend") {
118 dependsOn(installFrontend)
119 dependsOn(typeCheckFrontend)
120 inputs.dir(srcDir)
121 inputs.files(lintConfigFiles)
122 script.set("run lint:fix")
123 group = "verification"
124 description = "Check for TypeScript lint errors and warnings."
125 }
126
127 check {
128 dependsOn(typeCheckFrontend)
129 dependsOn(lintFrontend)
130 }
131
132 clean {
133 delete(".docusaurus")
134 delete(".yarn")
135 }
136}
137
138sonarqube.properties {
139 SonarPropertiesUtils.addToList(properties, "sonar.sources", srcDir)
140 property("sonar.nodejs.executable", "${frontend.nodeInstallDirectory.get()}/bin/node")
141 property("sonar.eslint.reportPaths", "${layout.buildDirectory.get()}/eslint.json")
142}
diff --git a/subprojects/docs/docusaurus.config.ts b/subprojects/docs/docusaurus.config.ts
new file mode 100644
index 00000000..5245e415
--- /dev/null
+++ b/subprojects/docs/docusaurus.config.ts
@@ -0,0 +1,297 @@
1/*
2 * Copyright (c) Facebook, Inc. and its affiliates.
3 * Copyright (c) 2024 The Refinery Authors <https://refinery.tools/>
4 *
5 * SPDX-License-Identifier: MIT AND EPL-2.0
6 */
7
8import type { MDXOptions } from '@docusaurus/mdx-loader';
9import type { Options as DocsOptions } from '@docusaurus/plugin-content-docs';
10import type { Options as PagesOptions } from '@docusaurus/plugin-content-pages';
11import type { Options as ClassicThemeOptions } from '@docusaurus/theme-classic';
12import type { UserThemeConfig } from '@docusaurus/theme-common';
13import type { UserThemeConfig as AlgoliaConfig } from '@docusaurus/theme-search-algolia';
14import type { Config } from '@docusaurus/types';
15import { Config as SwcConfig } from '@swc/core';
16import { themes } from 'prism-react-renderer';
17import smartypants from 'remark-smartypants';
18
19import remarkPosix2Windows from './src/plugins/remarkPosix2Windows';
20
21const markdownOptions: Partial<MDXOptions> = {
22 remarkPlugins: [[smartypants, { dashes: 'oldschool' }], remarkPosix2Windows],
23};
24
25const docsOptions = {
26 ...markdownOptions,
27 sidebarPath: undefined,
28 editUrl:
29 'https://github.com/graphs4value/refinery/edit/main/subprojects/docs',
30} satisfies DocsOptions;
31
32export default {
33 title: 'Refinery',
34 tagline: 'An efficient graph solver for generating well-formed models',
35 url: 'https://refinery.tools',
36 baseUrl: '/',
37 baseUrlIssueBanner: false,
38 trailingSlash: true,
39 staticDirectories: ['static', 'build/javadocs'],
40 plugins: [
41 [
42 '@docusaurus/plugin-content-docs',
43 {
44 id: 'learn',
45 path: 'src/learn',
46 routeBasePath: '/learn',
47 ...docsOptions,
48 } satisfies DocsOptions,
49 ],
50 [
51 '@docusaurus/plugin-content-docs',
52 {
53 id: 'develop',
54 path: 'src/develop',
55 routeBasePath: '/develop',
56 ...docsOptions,
57 } satisfies DocsOptions,
58 ],
59 [
60 '@docusaurus/plugin-content-pages',
61 markdownOptions satisfies PagesOptions,
62 ],
63 '@docusaurus/plugin-sitemap',
64 './src/plugins/loadersPlugin.ts',
65 './src/plugins/swcMinifyPlugin.ts',
66 ],
67 themes: [
68 [
69 '@docusaurus/theme-classic',
70 {
71 customCss: [require.resolve('./src/css/custom.css')],
72 } satisfies ClassicThemeOptions,
73 ],
74 '@docusaurus/theme-search-algolia',
75 ],
76 themeConfig: {
77 colorMode: {
78 respectPrefersColorScheme: true,
79 },
80 prism: {
81 additionalLanguages: ['bash', 'java'],
82 theme: themes.oneLight,
83 darkTheme: themes.oneDark,
84 },
85 navbar: {
86 title: 'Refinery',
87 logo: {
88 src: '/logo.svg',
89 srcDark: '/logo-dark.svg',
90 },
91 hideOnScroll: true,
92 items: [
93 {
94 label: 'Learn',
95 to: '/learn',
96 },
97 {
98 label: 'Develop',
99 to: '/develop',
100 },
101 {
102 label: 'GitHub',
103 position: 'right',
104 href: 'https://github.com/graphs4value/refinery',
105 },
106 {
107 label: 'Try now',
108 position: 'right',
109 href: 'https://refinery.services/',
110 className: 'navbar__link--try-now',
111 },
112 ],
113 },
114 footer: {
115 links: [
116 {
117 title: 'Learn',
118 items: [
119 {
120 label: 'Introduction',
121 to: '/learn',
122 },
123 {
124 label: 'Tutorials',
125 to: '/learn/tutorials',
126 },
127 {
128 label: 'Langauge reference',
129 to: '/learn/language',
130 },
131 {
132 label: 'Run in Docker',
133 to: '/learn/docker',
134 },
135 ],
136 },
137 {
138 title: 'Develop',
139 items: [
140 {
141 label: 'Programming guide',
142 to: '/develop',
143 },
144 {
145 label: 'Contributing',
146 to: '/develop/contributing',
147 },
148 {
149 label: 'Javadoc',
150 to: '/develop/javadoc',
151 },
152 ],
153 },
154 {
155 title: 'More',
156 items: [
157 {
158 label: 'Try now',
159 href: 'https://refinery.services/',
160 },
161 {
162 label: 'GitHub',
163 href: 'https://github.com/graphs4value/refinery',
164 },
165 {
166 label: 'License',
167 to: '/license',
168 },
169 ],
170 },
171 {
172 title: 'Supporters',
173 items: [
174 {
175 label: 'BME MIT FTSRG',
176 href: 'https://ftsrg.mit.bme.hu/en/',
177 },
178 {
179 label: 'McGill ECE',
180 href: 'https://www.mcgill.ca/',
181 },
182 {
183 label: '2022 Amazon Research Awards',
184 href: 'https://www.amazon.science/research-awards/recipients/daniel-varro-fall-2021',
185 },
186 {
187 label: 'LiU Software and Systems',
188 href: 'https://liu.se/en/organisation/liu/ida/sas',
189 },
190 {
191 label: 'WASP',
192 href: 'https://wasp-sweden.org/',
193 },
194 ],
195 },
196 ],
197 copyright: `
198 Copyright &copy; 2021-2024
199 <a href="https://github.com/graphs4value/refinery/blob/main/CONTRIBUTORS.md#the-refinery-authors" target="_blank">The Refinery Authors</a>.
200 Available under the
201 <a href="/license/">Eclipse Public License - v 2.0</a>.
202 `,
203 },
204 algolia: {
205 appId: 'KYHOYEO80F',
206 apiKey: '152acfb8d1ad9e10f29f083a6b017a69',
207 indexName: 'refinery',
208 },
209 } satisfies UserThemeConfig & AlgoliaConfig,
210 webpack: {
211 // Speed up builds by using a native Javascript loader.
212 // See: https://github.com/facebook/docusaurus/issues/4765#issuecomment-841135926
213 // But we follow the Docusaurus upstream from
214 // https://github.com/facebook/docusaurus/blob/791da2e4a1a53aa6309887059e3f112fcb35bec4/website/docusaurus.config.ts#L152-L171
215 // and use swc instead of esbuild.
216 jsLoader: (isServer) => ({
217 loader: require.resolve('swc-loader'),
218 options: {
219 jsc: {
220 parser: {
221 syntax: 'typescript',
222 tsx: true,
223 },
224 transform: {
225 react: {
226 runtime: 'automatic',
227 },
228 },
229 target: 'es2022',
230 },
231 module: {
232 type: isServer ? 'commonjs' : 'es6',
233 },
234 } satisfies SwcConfig,
235 }),
236 },
237 headTags: [
238 {
239 tagName: 'link',
240 attributes: {
241 rel: 'icon',
242 href: '/favicon.svg',
243 type: 'image/svg+xml',
244 },
245 },
246 {
247 tagName: 'link',
248 attributes: {
249 rel: 'icon',
250 href: '/favicon.png',
251 type: 'image/png',
252 sizes: '32x32',
253 },
254 },
255 {
256 tagName: 'link',
257 attributes: {
258 rel: 'icon',
259 href: '/favicon-96x96.png',
260 type: 'image/png',
261 sizes: '96x96',
262 },
263 },
264 {
265 tagName: 'link',
266 attributes: {
267 rel: 'apple-touch-icon',
268 href: '/apple-touch-icon.png',
269 type: 'image/png',
270 sizes: '180x180',
271 },
272 },
273 {
274 tagName: 'link',
275 attributes: {
276 rel: 'manifest',
277 href: '/manifest.webmanifest',
278 },
279 },
280 {
281 tagName: 'meta',
282 attributes: {
283 name: 'theme-color',
284 media: '(prefers-color-scheme:light)',
285 content: '#f5f5f5',
286 },
287 },
288 {
289 tagName: 'meta',
290 attributes: {
291 name: 'theme-color',
292 media: '(prefers-color-scheme:dark)',
293 content: '#282c34',
294 },
295 },
296 ],
297} satisfies Config;
diff --git a/subprojects/docs/package.json b/subprojects/docs/package.json
new file mode 100644
index 00000000..15c129c2
--- /dev/null
+++ b/subprojects/docs/package.json
@@ -0,0 +1,71 @@
1{
2 "//": [
3 "SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>",
4 "",
5 "SPDX-License-Identifier: EPL-2.0"
6 ],
7 "name": "@refinery/docs",
8 "version": "0.0.0",
9 "description": "Documentation for Refinery",
10 "private": true,
11 "scripts": {
12 "build": "WEBPACK_URL_LOADER_LIMIT=0 docusaurus build --out-dir build/docusaurus",
13 "serve": "docusaurus serve --dir build/docusaurus --no-open",
14 "dev": "WEBPACK_URL_LOADER_LIMIT=0 docusaurus start --no-open",
15 "docusaurus": "docusaurus",
16 "write-translations": "docusaurus write-translations",
17 "write-heading-ids": "docusaurus write-heading-ids",
18 "typecheck": "yarn run g:tsc -p subprojects/docs/tsconfig.json",
19 "lint": "yarn run g:lint subprojects/docs",
20 "lint:fix": "yarn run lint --fix"
21 },
22 "repository": {
23 "type": "git",
24 "url": "git+https://github.com/graphs4value/refinery.git"
25 },
26 "author": "The Refinery Authors <https://refinery.tools/>",
27 "license": "EPL-2.0",
28 "bugs": {
29 "url": "https://github.com/graphs4value/refinery/issues"
30 },
31 "homepage": "https://refinery.tools",
32 "dependencies": {
33 "@docusaurus/core": "^3.2.1",
34 "@docusaurus/plugin-content-docs": "^3.2.1",
35 "@docusaurus/plugin-content-pages": "^3.2.1",
36 "@docusaurus/plugin-sitemap": "^3.2.1",
37 "@docusaurus/theme-classic": "^3.2.1",
38 "@docusaurus/theme-common": "^3.2.1",
39 "@docusaurus/theme-search-algolia": "^3.2.1",
40 "@fontsource-variable/jetbrains-mono": "^5.0.21",
41 "@fontsource-variable/open-sans": "^5.0.29",
42 "@fontsource/open-sans": "^5.0.28",
43 "@material-icons/svg": "^1.0.33",
44 "@mdx-js/react": "^3.0.1",
45 "@swc/core": "^1.5.0",
46 "clsx": "^2.1.1",
47 "mdast-util-mdx": "^3.0.0",
48 "prism-react-renderer": "^2.3.1",
49 "react": "^18.3.1",
50 "react-dom": "^18.3.1",
51 "remark-smartypants": "^3.0.1",
52 "responsive-loader": "^3.1.2",
53 "sharp": "^0.33.3",
54 "swc-loader": "^0.2.6",
55 "terser-webpack-plugin": "^5.3.10",
56 "unified": "^11.0.4",
57 "unist-util-visit": "^5.0.0",
58 "webpack": "^5.91.0"
59 },
60 "devDependencies": {
61 "@docusaurus/mdx-loader": "^3.2.1",
62 "@docusaurus/module-type-aliases": "^3.2.1",
63 "@docusaurus/types": "^3.2.1",
64 "@types/babel__core": "^7.20.5",
65 "@types/mdast": "^4.0.3",
66 "@types/node": "^20.12.7",
67 "@types/react": "^18.3.0",
68 "@types/react-dom": "^18.3.0",
69 "@types/unist": "^3.0.2"
70 }
71}
diff --git a/subprojects/docs/src/components/Features/fi1.svg b/subprojects/docs/src/components/Features/fi1.svg
new file mode 100644
index 00000000..0acaf3f0
--- /dev/null
+++ b/subprojects/docs/src/components/Features/fi1.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="356" height="356" viewBox="0 0 356 356"><path d="M293.85 121c22.865 39.603 22.865 88.397 0 128S228.729 313 183 313v-79.879l6.248-.63c25.813-5.282 45.23-28.12 45.23-55.495 0-3.91-.397-7.728-1.151-11.416l-2.537-8.17zM178 48c45.791 0 88.104 24.369 111 63.928l-62.474 35.981-1.387-2.55c-10.194-15.051-27.456-24.947-47.035-24.947s-36.841 9.896-47.035 24.947L129.632 148 67 111.928C89.896 72.37 132.209 48 178 48zM61.149 121l63.238 36.51-2.505 8.07a57 57 0 0 0-1.15 11.416c0 27.375 19.416 50.213 45.23 55.495l6.04.609V313c-45.73 0-87.987-24.397-110.85-64-22.866-39.603-22.866-88.397 0-128z" class="fibackground"/><path d="M184.177 125.99c8.187 0 14.824-6.385 14.824-14.261v-.476c0-7.877-6.637-14.262-14.824-14.262h-12.353c-8.187 0-14.823 6.386-14.823 14.262v.476c0 7.876 6.637 14.262 14.823 14.262z" class="fiforeground"/><path d="M171.824 127.99c-9.227 0-16.824-7.261-16.824-16.262v-.476c0-9 7.598-16.262 16.824-16.262h12.354c9.227 0 16.822 7.261 16.822 16.262v.476c0 9-7.595 16.262-16.822 16.262zm0-4h12.354c7.147 0 12.822-5.508 12.822-12.262v-.476c0-6.754-5.675-12.262-12.822-12.262h-12.354c-7.147 0-12.824 5.508-12.824 12.262v.476c0 6.754 5.678 12.262 12.824 12.262" class="fiforeground"/><path d="M184.177 125.99c8.187 0 14.824-6.385 14.824-14.261v-.476c0-7.877-6.637-14.262-14.824-14.262h-12.353c-8.187 0-14.823 6.386-14.823 14.262v.476c0 7.876 6.637 14.262 14.823 14.262z" class="fiforeground"/><path d="M171.824 127.99c-9.227 0-16.824-7.261-16.824-16.262v-.476c0-9 7.598-16.262 16.824-16.262h12.354c9.227 0 16.822 7.261 16.822 16.262v.476c0 9-7.595 16.262-16.822 16.262zm0-4h12.354c7.147 0 12.822-5.508 12.822-12.262v-.476c0-6.754-5.675-12.262-12.822-12.262h-12.354c-7.147 0-12.824 5.508-12.824 12.262v.476c0 6.754 5.678 12.262 12.824 12.262M120.177 54.99c8.187 0 14.824-6.385 14.824-14.261v-.476c0-7.877-6.637-14.262-14.824-14.262h-12.353c-8.187 0-14.823 6.386-14.823 14.262v.476c0 7.876 6.637 14.262 14.823 14.262z" class="fiforeground"/><path d="M107.824 56.99C98.597 56.99 91 49.73 91 40.728v-.476c0-9 7.598-16.262 16.824-16.262h12.354c9.227 0 16.822 7.261 16.822 16.262v.476c0 9-7.595 16.262-16.822 16.262zm0-4h12.354c7.147 0 12.822-5.508 12.822-12.262v-.476c0-6.754-5.675-12.262-12.822-12.262h-12.354C100.677 27.99 95 33.498 95 40.252v.476c0 6.754 5.678 12.262 12.824 12.262" class="fiforeground"/><path d="M120.177 54.99c8.187 0 14.824-6.385 14.824-14.261v-.476c0-7.877-6.637-14.262-14.824-14.262h-12.353c-8.187 0-14.823 6.386-14.823 14.262v.476c0 7.876 6.637 14.262 14.823 14.262z" class="fiforeground"/><path d="M107.824 56.99C98.597 56.99 91 49.73 91 40.728v-.476c0-9 7.598-16.262 16.824-16.262h12.354c9.227 0 16.822 7.261 16.822 16.262v.476c0 9-7.595 16.262-16.822 16.262zm0-4h12.354c7.147 0 12.822-5.508 12.822-12.262v-.476c0-6.754-5.675-12.262-12.822-12.262h-12.354C100.677 27.99 95 33.498 95 40.252v.476c0 6.754 5.678 12.262 12.824 12.262M166 97.99c-8.712-9.286-20.675-22.007-31-33" class="fiforeground"/><path d="M164.541 99.36c-8.711-9.286-20.672-22.008-30.998-33l2.916-2.739c10.324 10.992 22.286 23.714 31 33.002zM138 62.23l-10-5.24 4.353 10z" class="fiforeground"/><path d="m131.59 70.25-7.688-17.664 17.664 9.254zm1.525-6.518 1.32-1.113-2.335-1.223zM184.177 54.99c8.187 0 14.824-6.385 14.824-14.261v-.476c0-7.877-6.637-14.262-14.824-14.262h-12.353c-8.187 0-14.823 6.386-14.823 14.262v.476c0 7.876 6.637 14.262 14.823 14.262z" class="fiforeground"/><path d="M171.824 56.99C162.597 56.99 155 49.73 155 40.728v-.476c0-9 7.598-16.262 16.824-16.262h12.354c9.227 0 16.822 7.261 16.822 16.262v.476c0 9-7.595 16.262-16.822 16.262zm0-4h12.354c7.147 0 12.822-5.508 12.822-12.262v-.476c0-6.754-5.675-12.262-12.822-12.262h-12.354c-7.147 0-12.824 5.508-12.824 12.262v.476c0 6.754 5.678 12.262 12.824 12.262" class="fiforeground"/><path d="M184.177 54.99c8.187 0 14.824-6.385 14.824-14.261v-.476c0-7.877-6.637-14.262-14.824-14.262h-12.353c-8.187 0-14.823 6.386-14.823 14.262v.476c0 7.876 6.637 14.262 14.823 14.262z" class="fiforeground"/><path d="M171.824 56.99C162.597 56.99 155 49.73 155 40.728v-.476c0-9 7.598-16.262 16.824-16.262h12.354c9.227 0 16.822 7.261 16.822 16.262v.476c0 9-7.595 16.262-16.822 16.262zm0-4h12.354c7.147 0 12.822-5.508 12.822-12.262v-.476c0-6.754-5.675-12.262-12.822-12.262h-12.354c-7.147 0-12.824 5.508-12.824 12.262v.476c0 6.754 5.678 12.262 12.824 12.262M176 97.99v-30h4v30z" class="fiforeground"/><path d="m182 67.991-4-10-4 10z" class="fiforeground"/><path d="M171.047 69.99 178 52.605l6.955 17.385zm5.908-4h2.092L178 63.377zM248.177 54.99c8.187 0 14.824-6.385 14.824-14.261v-.476c0-7.877-6.637-14.262-14.824-14.262h-12.353c-8.187 0-14.823 6.386-14.823 14.262v.476c0 7.876 6.637 14.262 14.823 14.262z" class="fiforeground"/><path d="M235.824 56.99C226.597 56.99 219 49.73 219 40.728v-.476c0-9 7.598-16.262 16.824-16.262h12.354c9.227 0 16.822 7.261 16.822 16.262v.476c0 9-7.595 16.262-16.822 16.262zm0-4h12.354c7.147 0 12.822-5.508 12.822-12.262v-.476c0-6.754-5.675-12.262-12.822-12.262h-12.354c-7.147 0-12.824 5.508-12.824 12.262v.476c0 6.754 5.678 12.262 12.824 12.262" class="fiforeground"/><path d="M248.177 54.99c8.187 0 14.824-6.385 14.824-14.261v-.476c0-7.877-6.637-14.262-14.824-14.262h-12.353c-8.187 0-14.823 6.386-14.823 14.262v.476c0 7.876 6.637 14.262 14.823 14.262z" class="fiforeground"/><path d="M235.824 56.99C226.597 56.99 219 49.73 219 40.728v-.476c0-9 7.598-16.262 16.824-16.262h12.354c9.227 0 16.822 7.261 16.822 16.262v.476c0 9-7.595 16.262-16.822 16.262zm0-4h12.354c7.147 0 12.822-5.508 12.822-12.262v-.476c0-6.754-5.675-12.262-12.822-12.262h-12.354c-7.147 0-12.824 5.508-12.824 12.262v.476c0 6.754 5.678 12.262 12.824 12.262M190 97.99c8.713-9.286 20.675-22.007 31-33" class="fiforeground"/><path d="m191.459 99.36-2.918-2.737c8.714-9.288 20.678-22.01 31.002-33.002l2.916 2.738c-10.325 10.993-22.289 23.715-31 33M223.648 66.99l4.352-10-10 5.24z" class="fiforeground"/><path d="m224.41 70.25-9.974-8.41 17.664-9.254zm-1.525-6.518 1.017-2.338-2.335 1.225zM46.117 137.016c-7.797 0-14.118 6.605-14.118 14.754v.491c0 8.149 6.32 14.754 14.118 14.754h11.765c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.32-14.754-14.118-14.754z" class="fiforeground"/><path d="M57.883 135.016c8.927 0 16.117 7.57 16.117 16.754v.492c0 9.182-7.19 16.754-16.117 16.754H46.117c-8.927 0-16.117-7.571-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754zm0 4H46.117c-6.667 0-12.117 5.64-12.117 12.754v.492c0 7.114 5.45 12.754 12.117 12.754h11.766c6.667 0 12.117-5.64 12.117-12.754v-.492c0-7.115-5.45-12.754-12.117-12.754" class="fiforeground"/><path d="M46.117 137.016c-7.797 0-14.118 6.605-14.118 14.754v.491c0 8.149 6.32 14.754 14.118 14.754h11.765c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.32-14.754-14.118-14.754z" class="fiforeground"/><path d="M57.883 135.016c8.927 0 16.117 7.57 16.117 16.754v.492c0 9.182-7.19 16.754-16.117 16.754H46.117c-8.927 0-16.117-7.571-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754zm0 4H46.117c-6.667 0-12.117 5.64-12.117 12.754v.492c0 7.114 5.45 12.754 12.117 12.754h11.766c6.667 0 12.117-5.64 12.117-12.754v-.492c0-7.115-5.45-12.754-12.117-12.754M108.117 286.016c-7.797 0-14.118 6.605-14.118 14.754v.491c0 8.149 6.32 14.754 14.118 14.754h11.765c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.32-14.754-14.118-14.754z" class="fiforeground"/><path d="M119.883 284.016c8.927 0 16.117 7.57 16.117 16.754v.492c0 9.182-7.19 16.754-16.117 16.754h-11.766c-8.927 0-16.117-7.571-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754zm0 4h-11.766c-6.667 0-12.117 5.64-12.117 12.754v.492c0 7.114 5.45 12.754 12.117 12.754h11.766c6.667 0 12.117-5.64 12.117-12.754v-.492c0-7.115-5.45-12.754-12.117-12.754" class="fiforeground"/><path d="M108.117 286.016c-7.797 0-14.118 6.605-14.118 14.754v.491c0 8.149 6.32 14.754 14.118 14.754h11.765c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.32-14.754-14.118-14.754z" class="fiforeground"/><path d="M119.883 284.016c8.927 0 16.117 7.57 16.117 16.754v.492c0 9.182-7.19 16.754-16.117 16.754h-11.766c-8.927 0-16.117-7.571-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754zm0 4h-11.766c-6.667 0-12.117 5.64-12.117 12.754v.492c0 7.114 5.45 12.754 12.117 12.754h11.766c6.667 0 12.117-5.64 12.117-12.754v-.492c0-7.115-5.45-12.754-12.117-12.754M46.117 212.016c-7.797 0-14.118 6.605-14.118 14.754v.491c0 8.149 6.32 14.754 14.118 14.754h11.765c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.32-14.754-14.118-14.754z" class="fiforeground"/><path d="M57.883 210.016c8.927 0 16.117 7.57 16.117 16.754v.492c0 9.182-7.19 16.754-16.117 16.754H46.117c-8.927 0-16.117-7.571-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754zm0 4H46.117c-6.667 0-12.117 5.64-12.117 12.754v.492c0 7.114 5.45 12.754 12.117 12.754h11.766c6.667 0 12.117-5.64 12.117-12.754v-.492c0-7.115-5.45-12.754-12.117-12.754" class="fiforeground"/><path d="M46.117 212.016c-7.797 0-14.118 6.605-14.118 14.754v.491c0 8.149 6.32 14.754 14.118 14.754h11.765c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.32-14.754-14.118-14.754z" class="fiforeground"/><path d="M57.883 210.016c8.927 0 16.117 7.57 16.117 16.754v.492c0 9.182-7.19 16.754-16.117 16.754H46.117c-8.927 0-16.117-7.571-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754zm0 4H46.117c-6.667 0-12.117 5.64-12.117 12.754v.492c0 7.114 5.45 12.754 12.117 12.754h11.766c6.667 0 12.117-5.64 12.117-12.754v-.492c0-7.115-5.45-12.754-12.117-12.754M54 167.016v31h-4v-31z" class="fiforeground"/><path d="m49 197.016 3.5 11 3.5-11z" class="fiforeground"/><path d="M58.734 195.016 52.5 214.612l-6.236-19.596zm-5.468 4h-1.532l.766 2.404zM64 241.016c8.15 9.85 19.341 23.342 29 35" class="fiforeground"/><path d="M65.541 239.74c8.15 9.848 19.339 23.341 28.998 35l-3.08 2.551c-9.659-11.658-20.848-25.149-29-35z" class="fiforeground"/><path d="m90 278.253 10 5.763-4.353-11z" class="fiforeground"/><path d="m96.432 269.563 7.537 19.05-17.318-9.982zm-1.569 6.908-1.513 1.404 2.681 1.545zM46.117 286.016c-7.797 0-14.118 6.605-14.118 14.754v.491c0 8.149 6.32 14.754 14.118 14.754h11.765c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.32-14.754-14.118-14.754z" class="fiforeground"/><path d="M57.883 284.016c8.927 0 16.117 7.57 16.117 16.754v.492c0 9.182-7.19 16.754-16.117 16.754H46.117c-8.927 0-16.117-7.571-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754zm0 4H46.117c-6.667 0-12.117 5.64-12.117 12.754v.492c0 7.114 5.45 12.754 12.117 12.754h11.766c6.667 0 12.117-5.64 12.117-12.754v-.492c0-7.115-5.45-12.754-12.117-12.754" class="fiforeground"/><path d="M46.117 286.016c-7.797 0-14.118 6.605-14.118 14.754v.491c0 8.149 6.32 14.754 14.118 14.754h11.765c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.32-14.754-14.118-14.754z" class="fiforeground"/><path d="M57.883 284.016c8.927 0 16.117 7.57 16.117 16.754v.492c0 9.182-7.19 16.754-16.117 16.754H46.117c-8.927 0-16.117-7.571-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754zm0 4H46.117c-6.667 0-12.117 5.64-12.117 12.754v.492c0 7.114 5.45 12.754 12.117 12.754h11.766c6.667 0 12.117-5.64 12.117-12.754v-.492c0-7.115-5.45-12.754-12.117-12.754M59 241.016c.894 8.736 1.192 20.372.88 31" class="fiforeground"/><path d="M60.99 240.813c.908 8.87 1.204 20.554.889 31.262l-3.998-.118c.31-10.547.01-22.136-.871-30.738zM57 272.015l2.47 11L64 272.772z" class="fiforeground"/><path d="m54.436 269.727 12.5 1.351-8.088 18.291zm5.128 4.578.53 2.357.968-2.195zM46 287.016c-1.81-8.994-2.388-21.037-1.75-32" class="fiforeground"/><path d="m42.254 254.9 3.992.233c-.628 10.808-.042 22.752 1.715 31.488l-3.922.789c-1.86-9.252-2.432-21.392-1.785-32.51z" class="fiforeground"/><path d="m49 257.016-3.177-13L40 256.108z" class="fiforeground"/><path d="m46.441 238.121 5.172 21.168-14.654-1.476zm-1.236 11.787-2.166 4.496 3.346.338zM314.88 146.02c7.797 0 14.118 6.605 14.118 14.754v.491c0 8.149-6.321 14.755-14.118 14.755h-11.765c-7.797 0-14.118-6.606-14.118-14.755v-.491c0-8.149 6.321-14.754 14.118-14.754z" class="fiforeground"/><path d="M303.12 144.02c-8.926 0-16.117 7.57-16.117 16.754v.492c0 9.183 7.19 16.754 16.117 16.754h11.766c8.927 0 16.119-7.57 16.119-16.754v-.492c0-9.183-7.193-16.754-16.119-16.754zm0 4h11.766c6.668 0 12.119 5.64 12.119 12.754v.492c0 7.115-5.452 12.754-12.119 12.754H303.12c-6.667 0-12.117-5.639-12.117-12.754v-.492c0-7.115 5.45-12.754 12.117-12.754" class="fiforeground"/><path d="M314.88 146.02c7.797 0 14.118 6.605 14.118 14.754v.491c0 8.149-6.321 14.755-14.118 14.755h-11.765c-7.797 0-14.118-6.606-14.118-14.755v-.491c0-8.149 6.321-14.754 14.118-14.754z" class="fiforeground"/><path d="M303.12 144.02c-8.926 0-16.117 7.57-16.117 16.754v.492c0 9.183 7.19 16.754 16.117 16.754h11.766c8.927 0 16.119-7.57 16.119-16.754v-.492c0-9.183-7.193-16.754-16.119-16.754zm0 4h11.766c6.668 0 12.119 5.64 12.119 12.754v.492c0 7.115-5.452 12.754-12.119 12.754H303.12c-6.667 0-12.117-5.639-12.117-12.754v-.492c0-7.115 5.45-12.754 12.117-12.754M252.88 295.02c7.797 0 14.118 6.605 14.118 14.754v.491c0 8.149-6.321 14.755-14.118 14.755h-11.765c-7.797 0-14.118-6.606-14.118-14.755v-.491c0-8.149 6.321-14.754 14.118-14.754z" class="fiforeground"/><path d="M241.12 293.02c-8.926 0-16.117 7.57-16.117 16.754v.492c0 9.183 7.19 16.754 16.117 16.754h11.766c8.927 0 16.119-7.57 16.119-16.754v-.492c0-9.183-7.193-16.754-16.119-16.754zm0 4h11.766c6.668 0 12.119 5.64 12.119 12.754v.492c0 7.115-5.452 12.754-12.119 12.754H241.12c-6.667 0-12.117-5.639-12.117-12.754v-.492c0-7.115 5.45-12.754 12.117-12.754" class="fiforeground"/><path d="M252.88 295.02c7.797 0 14.118 6.605 14.118 14.754v.491c0 8.149-6.321 14.755-14.118 14.755h-11.765c-7.797 0-14.118-6.606-14.118-14.755v-.491c0-8.149 6.321-14.754 14.118-14.754z" class="fiforeground"/><path d="M241.12 293.02c-8.926 0-16.117 7.57-16.117 16.754v.492c0 9.183 7.19 16.754 16.117 16.754h11.766c8.927 0 16.119-7.57 16.119-16.754v-.492c0-9.183-7.193-16.754-16.119-16.754zm0 4h11.766c6.668 0 12.119 5.64 12.119 12.754v.492c0 7.115-5.452 12.754-12.119 12.754H241.12c-6.667 0-12.117-5.639-12.117-12.754v-.492c0-7.115 5.45-12.754 12.117-12.754M252.88 221.02c7.797 0 14.118 6.605 14.118 14.754v.491c0 8.149-6.321 14.755-14.118 14.755h-11.765c-7.797 0-14.118-6.606-14.118-14.755v-.491c0-8.149 6.321-14.754 14.118-14.754z" class="fiforeground"/><path d="M241.12 219.02c-8.926 0-16.117 7.57-16.117 16.754v.492c0 9.183 7.19 16.754 16.117 16.754h11.766c8.927 0 16.119-7.57 16.119-16.754v-.492c0-9.183-7.193-16.754-16.119-16.754zm0 4h11.766c6.668 0 12.119 5.64 12.119 12.754v.492c0 7.115-5.452 12.754-12.119 12.754H241.12c-6.667 0-12.117-5.639-12.117-12.754v-.492c0-7.115 5.45-12.754 12.117-12.754" class="fiforeground"/><path d="M252.88 221.02c7.797 0 14.118 6.605 14.118 14.754v.491c0 8.149-6.321 14.755-14.118 14.755h-11.765c-7.797 0-14.118-6.606-14.118-14.755v-.491c0-8.149 6.321-14.754 14.118-14.754z" class="fiforeground"/><path d="M241.12 219.02c-8.926 0-16.117 7.57-16.117 16.754v.492c0 9.183 7.19 16.754 16.117 16.754h11.766c8.927 0 16.119-7.57 16.119-16.754v-.492c0-9.183-7.193-16.754-16.119-16.754zm0 4h11.766c6.668 0 12.119 5.64 12.119 12.754v.492c0 7.115-5.452 12.754-12.119 12.754H241.12c-6.667 0-12.117-5.639-12.117-12.754v-.492c0-7.115 5.45-12.754 12.117-12.754M297 176.02c-8.15 9.568-19.341 22.675-29 34.001" class="fiforeground"/><path d="M295.48 174.72c-8.149 9.566-19.338 22.673-28.998 34l3.043 2.596c9.658-11.325 20.851-24.432 29.002-34.002z" class="fiforeground"/><path d="m271 212.25-10 5.763 4.353-11z" class="fiforeground"/><path d="m264.57 203.56-7.537 19.051 17.318-9.98zm1.568 6.91 1.514 1.405-2.681 1.544zM314.88 221.02c7.797 0 14.118 6.605 14.118 14.754v.491c0 8.149-6.321 14.755-14.118 14.755h-11.765c-7.797 0-14.118-6.606-14.118-14.755v-.491c0-8.149 6.321-14.754 14.118-14.754z" class="fiforeground"/><path d="M303.12 219.02c-8.926 0-16.117 7.57-16.117 16.754v.492c0 9.183 7.19 16.754 16.117 16.754h11.766c8.927 0 16.119-7.57 16.119-16.754v-.492c0-9.183-7.193-16.754-16.119-16.754zm0 4h11.766c6.668 0 12.119 5.64 12.119 12.754v.492c0 7.115-5.452 12.754-12.119 12.754H303.12c-6.667 0-12.117-5.639-12.117-12.754v-.492c0-7.115 5.45-12.754 12.117-12.754" class="fiforeground"/><path d="M314.88 221.02c7.797 0 14.118 6.605 14.118 14.754v.491c0 8.149-6.321 14.755-14.118 14.755h-11.765c-7.797 0-14.118-6.606-14.118-14.755v-.491c0-8.149 6.321-14.754 14.118-14.754z" class="fiforeground"/><path d="M303.12 219.02c-8.926 0-16.117 7.57-16.117 16.754v.492c0 9.183 7.19 16.754 16.117 16.754h11.766c8.927 0 16.119-7.57 16.119-16.754v-.492c0-9.183-7.193-16.754-16.119-16.754zm0 4h11.766c6.668 0 12.119 5.64 12.119 12.754v.492c0 7.115-5.452 12.754-12.119 12.754H303.12c-6.667 0-12.117-5.639-12.117-12.754v-.492c0-7.115 5.45-12.754 12.117-12.754M302 176.02c-.894 8.736-1.192 20.372-.879 31" class="fiforeground"/><path d="M300.01 175.81c-.908 8.87-1.204 20.553-.889 31.262l4-.117c-.31-10.548-.01-22.136.87-30.738z" class="fiforeground"/><path d="m304 206.02-2.472 11.001-4.529-10.244z" class="fiforeground"/><path d="m306.56 203.73-12.5 1.352 8.086 18.29zm-5.129 4.578-.53 2.358-.97-2.196zM245 250.02v31h4v-31zM251 281.02l-3.501 11-3.5-11z" class="fiforeground"/><path d="m241.27 279.02 6.234 19.596 6.237-19.596zm5.469 4h1.531l-.766 2.404zM315 221.02c1.808-8.713 2.387-20.38 1.749-31" class="fiforeground"/><path d="m318.75 189.9-3.992.24c.628 10.46.042 22.024-1.711 30.473l3.916.813c1.863-8.978 2.435-20.746 1.787-31.525z" class="fiforeground"/><path d="m312 191.02 2.824-12L320 190.182z" class="fiforeground"/><path d="m314.2 172.92-4.795 20.375 13.584-1.422zm1.242 12.186 1.563 3.371-2.416.254z" class="fiforeground"/></svg>
diff --git a/subprojects/docs/src/components/Features/fi1.svg.license b/subprojects/docs/src/components/Features/fi1.svg.license
new file mode 100644
index 00000000..15aca74d
--- /dev/null
+++ b/subprojects/docs/src/components/Features/fi1.svg.license
@@ -0,0 +1,4 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
4
diff --git a/subprojects/docs/src/components/Features/fi2.svg b/subprojects/docs/src/components/Features/fi2.svg
new file mode 100644
index 00000000..c1cba58d
--- /dev/null
+++ b/subprojects/docs/src/components/Features/fi2.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="356" height="356" viewBox="0 0 356 356"><path d="M639 181.35c19.279 0 37.645-3.906 54.351-10.97l8.286-3.991L639 49.999l-62.637 116.39 8.287 3.991c16.706 7.064 35.072 10.97 54.35 10.97zM646.318 312h133.68l-72.851-135.37-9.271 4.465a150.3 150.3 0 0 1-43.412 11.103l-8.148.412zm-148.32 0h137.6V192.81l-12.061-.609a150.3 150.3 0 0 1-43.412-11.103l-9.27-4.465z" class="fibackground" transform="translate(-461 -10)"/><g class="fiforeground"><path d="M61.88 224.98c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.321-14.755-14.118-14.755H50.115c-7.797 0-14.118 6.606-14.118 14.755v.491c0 8.149 6.321 14.754 14.118 14.754z"/><path d="M50.12 226.98c-8.926 0-16.117-7.57-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754h11.766c8.927 0 16.119 7.57 16.119 16.754v.492c0 9.183-7.193 16.754-16.119 16.754zm0-4h11.766c6.668 0 12.119-5.64 12.119-12.754v-.492c0-7.115-5.452-12.754-12.119-12.754H50.12c-6.667 0-12.117 5.639-12.117 12.754v.492c0 7.115 5.45 12.754 12.117 12.754"/><path d="M61.88 224.98c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.321-14.755-14.118-14.755H50.115c-7.797 0-14.118 6.606-14.118 14.755v.491c0 8.149 6.321 14.754 14.118 14.754z"/><path d="M50.12 226.98c-8.926 0-16.117-7.57-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754h11.766c8.927 0 16.119 7.57 16.119 16.754v.492c0 9.183-7.193 16.754-16.119 16.754zm0-4h11.766c6.668 0 12.119-5.64 12.119-12.754v-.492c0-7.115-5.452-12.754-12.119-12.754H50.12c-6.667 0-12.117 5.639-12.117 12.754v.492c0 7.115 5.45 12.754 12.117 12.754M61.88 287.984c7.797 0 14.118-6.826 14.118-15.246v-.508c0-8.42-6.321-15.246-14.118-15.246H50.115c-7.797 0-14.118 6.826-14.118 15.246v.508c0 8.42 6.321 15.246 14.118 15.246z"/><path d="M50.12 289.984c-8.964 0-16.117-7.825-16.117-17.246v-.508c0-9.42 7.153-17.246 16.117-17.246h11.766c8.964 0 16.119 7.825 16.119 17.246v.508c0 9.421-7.155 17.246-16.119 17.246zm0-4h11.766c6.63 0 12.119-5.827 12.119-13.246v-.508c0-7.419-5.49-13.246-12.119-13.246H50.12c-6.63 0-12.117 5.827-12.117 13.246v.508c0 7.42 5.488 13.246 12.117 13.246"/><path d="M61.88 287.984c7.797 0 14.118-6.826 14.118-15.246v-.508c0-8.42-6.321-15.246-14.118-15.246H50.115c-7.797 0-14.118 6.826-14.118 15.246v.508c0 8.42 6.321 15.246 14.118 15.246z"/><path d="M50.12 289.984c-8.964 0-16.117-7.825-16.117-17.246v-.508c0-9.42 7.153-17.246 16.117-17.246h11.766c8.964 0 16.119 7.825 16.119 17.246v.508c0 9.421-7.155 17.246-16.119 17.246zm0-4h11.766c6.63 0 12.119-5.827 12.119-13.246v-.508c0-7.419-5.49-13.246-12.119-13.246H50.12c-6.63 0-12.117 5.827-12.117 13.246v.508c0 7.42 5.488 13.246 12.117 13.246"/></g><path d="M54 269.98v-31h4v31z" class="fiforeground"/><g class="fiforeground"><path d="m59 239.98-3.5-11-3.5 11z"/><path d="m49.27 241.98 6.234-19.596 6.235 19.596zm5.469-4h1.531l-.766-2.404zM147.88 287.984c7.797 0 14.118-6.826 14.118-15.246v-.508c0-8.42-6.321-15.246-14.118-15.246h-11.765c-7.797 0-14.118 6.826-14.118 15.246v.508c0 8.42 6.321 15.246 14.118 15.246z"/><path d="M136.12 289.984c-8.964 0-16.117-7.825-16.117-17.246v-.508c0-9.42 7.153-17.246 16.117-17.246h11.766c8.964 0 16.119 7.825 16.119 17.246v.508c0 9.421-7.155 17.246-16.119 17.246zm0-4h11.766c6.63 0 12.119-5.827 12.119-13.246v-.508c0-7.419-5.49-13.246-12.119-13.246H136.12c-6.63 0-12.117 5.827-12.117 13.246v.508c0 7.42 5.488 13.246 12.117 13.246"/><path d="M147.88 287.984c7.797 0 14.118-6.826 14.118-15.246v-.508c0-8.42-6.321-15.246-14.118-15.246h-11.765c-7.797 0-14.118 6.826-14.118 15.246v.508c0 8.42 6.321 15.246 14.118 15.246z"/><path d="M136.12 289.984c-8.964 0-16.117-7.825-16.117-17.246v-.508c0-9.42 7.153-17.246 16.117-17.246h11.766c8.964 0 16.119 7.825 16.119 17.246v.508c0 9.421-7.155 17.246-16.119 17.246zm0-4h11.766c6.63 0 12.119-5.827 12.119-13.246v-.508c0-7.419-5.49-13.246-12.119-13.246H136.12c-6.63 0-12.117 5.827-12.117 13.246v.508c0 7.42 5.488 13.246 12.117 13.246"/></g><path d="M76.02 274v-4h31v4z" class="fiforeground"/><g class="fiforeground"><path d="m106.02 276 11-3.5-11-3.5z"/><path d="M104.02 278.736v-12.471l19.596 6.234zm4-5.47 2.404-.766-2.404-.766zM222.88 229.98c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.321-14.755-14.118-14.755h-11.765c-7.797 0-14.118 6.606-14.118 14.755v.491c0 8.149 6.321 14.754 14.118 14.754z"/><path d="M211.12 231.98c-8.926 0-16.117-7.57-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754h11.766c8.927 0 16.119 7.57 16.119 16.754v.492c0 9.183-7.193 16.754-16.119 16.754zm0-4h11.766c6.668 0 12.119-5.64 12.119-12.754v-.492c0-7.115-5.452-12.754-12.119-12.754H211.12c-6.667 0-12.117 5.639-12.117 12.754v.492c0 7.115 5.45 12.754 12.117 12.754"/><path d="M222.88 229.98c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.321-14.755-14.118-14.755h-11.765c-7.797 0-14.118 6.606-14.118 14.755v.491c0 8.149 6.321 14.754 14.118 14.754z"/><path d="M211.12 231.98c-8.926 0-16.117-7.57-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754h11.766c8.927 0 16.119 7.57 16.119 16.754v.492c0 9.183-7.193 16.754-16.119 16.754zm0-4h11.766c6.668 0 12.119-5.64 12.119-12.754v-.492c0-7.115-5.452-12.754-12.119-12.754H211.12c-6.667 0-12.117 5.639-12.117 12.754v.492c0 7.115 5.45 12.754 12.117 12.754M222.88 291.984c7.797 0 14.118-6.606 14.118-14.754v-.492c0-8.148-6.321-14.754-14.118-14.754h-11.765c-7.797 0-14.118 6.606-14.118 14.754v.492c0 8.148 6.321 14.754 14.118 14.754z"/><path d="M211.12 293.984c-8.927 0-16.117-7.571-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754h11.766c8.927 0 16.119 7.57 16.119 16.754v.492c0 9.183-7.193 16.754-16.119 16.754zm0-4h11.766c6.667 0 12.119-5.64 12.119-12.754v-.492c0-7.114-5.452-12.754-12.119-12.754H211.12c-6.667 0-12.117 5.64-12.117 12.754v.492c0 7.114 5.45 12.754 12.117 12.754"/><path d="M222.88 291.984c7.797 0 14.118-6.606 14.118-14.754v-.492c0-8.148-6.321-14.754-14.118-14.754h-11.765c-7.797 0-14.118 6.606-14.118 14.754v.492c0 8.148 6.321 14.754 14.118 14.754z"/><path d="M211.12 293.984c-8.927 0-16.117-7.571-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754h11.766c8.927 0 16.119 7.57 16.119 16.754v.492c0 9.183-7.193 16.754-16.119 16.754zm0-4h11.766c6.667 0 12.119-5.64 12.119-12.754v-.492c0-7.114-5.452-12.754-12.119-12.754H211.12c-6.667 0-12.117 5.64-12.117 12.754v.492c0 7.114 5.45 12.754 12.117 12.754"/></g><path d="M215 274.98v-31h4v31z" class="fiforeground"/><g class="fiforeground"><path d="m220 243.98-3.5-11-3.5 11z"/><path d="m210.27 245.98 6.234-19.596 6.235 19.596zm5.469-4h1.531l-.766-2.404zM308.88 229.98c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.321-14.755-14.118-14.755h-11.765c-7.797 0-14.118 6.606-14.118 14.755v.491c0 8.149 6.321 14.754 14.118 14.754z"/><path d="M297.12 231.98c-8.926 0-16.117-7.57-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754h11.766c8.927 0 16.119 7.57 16.119 16.754v.492c0 9.183-7.193 16.754-16.119 16.754zm0-4h11.766c6.668 0 12.119-5.64 12.119-12.754v-.492c0-7.115-5.452-12.754-12.119-12.754H297.12c-6.667 0-12.117 5.639-12.117 12.754v.492c0 7.115 5.45 12.754 12.117 12.754"/><path d="M308.88 229.98c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.321-14.755-14.118-14.755h-11.765c-7.797 0-14.118 6.606-14.118 14.755v.491c0 8.149 6.321 14.754 14.118 14.754z"/><path d="M297.12 231.98c-8.926 0-16.117-7.57-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754h11.766c8.927 0 16.119 7.57 16.119 16.754v.492c0 9.183-7.193 16.754-16.119 16.754zm0-4h11.766c6.668 0 12.119-5.64 12.119-12.754v-.492c0-7.115-5.452-12.754-12.119-12.754H297.12c-6.667 0-12.117 5.639-12.117 12.754v.492c0 7.115 5.45 12.754 12.117 12.754"/></g><path d="M237.02 217v-4h31v4z" class="fiforeground"/><g class="fiforeground"><path d="m267.02 218 11-3.501-11-3.5z"/><path d="M265.02 220.74v-12.471l19.596 6.234zm4-5.47 2.404-.766-2.404-.766zM140.53 72.98c7.992 0 14.471-6.605 14.471-14.754v-.491c0-8.149-6.479-14.755-14.471-14.755h-12.059c-7.992 0-14.471 6.606-14.471 14.755v.491c0 8.149 6.479 14.754 14.471 14.754z"/><path d="M128.47 74.98c-9.094 0-16.471-7.545-16.471-16.754v-.492c0-9.21 7.377-16.754 16.471-16.754h12.059c9.094 0 16.473 7.545 16.473 16.754v.492c0 9.21-7.379 16.754-16.473 16.754zm0-4h12.059c6.89 0 12.473-5.665 12.473-12.754v-.492c0-7.09-5.583-12.754-12.473-12.754H128.47c-6.89 0-12.471 5.665-12.471 12.754v.492c0 7.089 5.58 12.754 12.471 12.754"/><path d="M140.53 72.98c7.992 0 14.471-6.605 14.471-14.754v-.491c0-8.149-6.479-14.755-14.471-14.755h-12.059c-7.992 0-14.471 6.606-14.471 14.755v.491c0 8.149 6.479 14.754 14.471 14.754z"/><path d="M128.47 74.98c-9.094 0-16.471-7.545-16.471-16.754v-.492c0-9.21 7.377-16.754 16.471-16.754h12.059c9.094 0 16.473 7.545 16.473 16.754v.492c0 9.21-7.379 16.754-16.473 16.754zm0-4h12.059c6.89 0 12.473-5.665 12.473-12.754v-.492c0-7.09-5.583-12.754-12.473-12.754H128.47c-6.89 0-12.471 5.665-12.471 12.754v.492c0 7.089 5.58 12.754 12.471 12.754M140.53 134.98c7.992 0 14.471-6.605 14.471-14.754v-.491c0-8.149-6.479-14.755-14.471-14.755h-12.059c-7.992 0-14.471 6.606-14.471 14.755v.491c0 8.149 6.479 14.754 14.471 14.754z"/><path d="M128.47 136.98c-9.094 0-16.471-7.545-16.471-16.754v-.492c0-9.21 7.377-16.754 16.471-16.754h12.059c9.094 0 16.473 7.545 16.473 16.754v.492c0 9.21-7.379 16.754-16.473 16.754zm0-4h12.059c6.89 0 12.473-5.665 12.473-12.754v-.492c0-7.09-5.583-12.754-12.473-12.754H128.47c-6.89 0-12.471 5.665-12.471 12.754v.492c0 7.089 5.58 12.754 12.471 12.754"/><path d="M140.53 134.98c7.992 0 14.471-6.605 14.471-14.754v-.491c0-8.149-6.479-14.755-14.471-14.755h-12.059c-7.992 0-14.471 6.606-14.471 14.755v.491c0 8.149 6.479 14.754 14.471 14.754z"/><path d="M128.47 136.98c-9.094 0-16.471-7.545-16.471-16.754v-.492c0-9.21 7.377-16.754 16.471-16.754h12.059c9.094 0 16.473 7.545 16.473 16.754v.492c0 9.21-7.379 16.754-16.473 16.754zm0-4h12.059c6.89 0 12.473-5.665 12.473-12.754v-.492c0-7.09-5.583-12.754-12.473-12.754H128.47c-6.89 0-12.471 5.665-12.471 12.754v.492c0 7.089 5.58 12.754 12.471 12.754"/></g><path d="M133 117.98v-31h4v31z" class="fiforeground"/><g class="fiforeground"><path d="m138 86.99-3.5-10-3.5 10z"/><path d="m128.18 88.99 6.318-18.055 6.319 18.055zm5.639-4h1.36l-.68-1.943z"/></g><path d="M215.12 74.984c-8.926 0-16.117-7.57-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754h11.766c8.927 0 16.119 7.57 16.119 16.754v.492c0 9.183-7.193 16.754-16.119 16.754zm0-4h11.766c6.668 0 12.119-5.64 12.119-12.754v-.492c0-7.115-5.452-12.754-12.119-12.754H215.12c-6.667 0-12.117 5.639-12.117 12.754v.492c0 7.115 5.45 12.754 12.117 12.754" class="fiforeground"/><path class="fiempty" d="M226.88 134.98c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.321-14.755-14.118-14.755h-11.765c-7.797 0-14.118 6.606-14.118 14.755v.491c0 8.149 6.321 14.754 14.118 14.754z"/><path d="M215.12 136.98c-8.926 0-16.117-7.57-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754h11.766c8.927 0 16.119 7.57 16.119 16.754v.492c0 9.183-7.193 16.754-16.119 16.754zm0-4h11.766c6.668 0 12.119-5.64 12.119-12.754v-.492c0-7.115-5.452-12.754-12.119-12.754H215.12c-6.667 0-12.117 5.639-12.117 12.754v.492c0 7.115 5.45 12.754 12.117 12.754" class="fiforeground"/><path stroke-dasharray="4, 4" d="M155.02 122v-4h4v4zm8 0v-4h4v4zm8 0v-4h4v4zm8 0v-4h4v4z" class="fiforeground"/><g class="fiforeground"><path d="m185.02 124 11-3.501-11-3.5z"/><path d="M183.02 126.74v-12.471l19.596 6.234zm4-5.47 2.404-.766-2.404-.766z"/></g><path stroke-dasharray="4, 4" d="M155.02 60v-4h4v4zm8 0v-4h4v4zm8 0v-4h4v4zm8 0v-4h4v4z" class="fiforeground"/><g class="fiforeground"><path d="m185.02 62 11-4.001-11-4z"/><path d="M183.02 64.86V51.147l18.852 6.856zm4-5.713 3.148-1.144-3.148-1.145z"/></g></svg>
diff --git a/subprojects/docs/src/components/Features/fi2.svg.license b/subprojects/docs/src/components/Features/fi2.svg.license
new file mode 100644
index 00000000..15aca74d
--- /dev/null
+++ b/subprojects/docs/src/components/Features/fi2.svg.license
@@ -0,0 +1,4 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
4
diff --git a/subprojects/docs/src/components/Features/fi3.svg b/subprojects/docs/src/components/Features/fi3.svg
new file mode 100644
index 00000000..a901aa56
--- /dev/null
+++ b/subprojects/docs/src/components/Features/fi3.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="356" height="356" viewBox="0 0 356 356"><g class="fiforeground"><path d="m219.4 147.87-9.322 21.336h-2.746l-7.841-21.336h3.107l6.27 17.958 7.605-17.958zM137.87 167.38l9.322-21.336h2.746l7.841 21.336h-3.107l-6.27-17.958-7.605 17.958zM185.6 147.14v-10.37h-19.692v-2.385h22.258v12.755zM216 181.66v23.035h-15.23v-2.511h12.412V194h-12.213v-2.53h12.213v-7.298H200.77v-2.512zM140.95 181.02l2.276 6.558h10.262l2.765-6.558h2.98L149.1 204.163h-2.765L137.7 181.02zm11.49 9.033h-8.365l3.794 10.731zM190.5 210.64h-.217q-5.33.325-11.11 2.33-5.782 1.988-8.311 6.306l-2.096-1.391q2.349-3.74 6.287-5.727 3.939-2.006 10.406-2.638v-.199q-6.486-.777-10.424-2.8-3.92-2.023-6.269-5.655l2.096-1.39q2.565 4.209 8.328 6.268 5.764 2.042 11.093 2.367h.217zm0 5.872q-6.739 0-10.822 2.348-4.083 2.349-6.757 6.902l-2.041-1.518q3.378-5.366 7.967-7.732 4.589-2.385 11.653-2.349z"/></g><path d="M1015.4 261.94h14.295c9.467 0 17.149 8.053 17.149 17.986v.599c0 9.933-7.682 17.985-17.149 17.985h-14.285c-9.477 0-17.154-8.052-17.154-17.985v-.599c0-9.933 7.677-17.986 17.144-17.986m42.964-29.783-3.954 3.264c-9.502 6.422-20.957 10.172-33.293 10.172-12.326 0-23.78-3.75-33.288-10.172l-3.138-2.595-38.937 38.951 75.962 75.996 76.111-76.137zm-129.62-65.353c9.477 0 17.154 8.053 17.154 17.986v.599c0 9.933-7.677 17.985-17.154 17.985h-14.285c-9.477 0-17.154-8.052-17.154-17.985v-.599c0-9.933 7.677-17.986 17.154-17.986zm178.94-57.016-39.782 39.796 2.593 3.145c6.42 9.506 10.17 20.966 10.168 33.302.001 12.335-3.749 23.795-10.168 33.302l-2.498 3.028 39.546 39.56 76.109-76.137zm-171.78-.141-76.112 76.137 76.252 76.278 38.876-38.89-3.169-3.839c-6.418-9.507-10.166-20.967-10.166-33.302s3.749-23.796 10.166-33.302l3.269-3.956zm93.866-36.288c9.467 0 17.149 8.052 17.149 17.985v.6c0 9.932-7.682 17.985-17.149 17.985h-14.285c-9.477 0-17.154-8.053-17.154-17.986v-.599c0-9.933 7.677-17.985 17.154-17.985zm-8.047-49.564L945.62 99.932l39.186 39.206 3.029-2.499c9.506-6.422 20.962-10.172 33.288-10.172 12.336 0 23.79 3.75 33.293 10.172l3.838 3.168 39.721-39.735z" class="fibackground" transform="translate(-844 -10)"/><g class="fiforeground"><path d="M271.4 158.02c-9.354 0-16.936 7.926-16.936 17.705v.59c0 9.778 7.582 17.705 16.936 17.705h14.112c9.354 0 16.936-7.927 16.936-17.705v-.59c0-9.779-7.582-17.705-16.936-17.705z"/><path d="M271.4 156.02c-10.483 0-18.936 8.893-18.936 19.705v.59c0 10.812 8.452 19.705 18.936 19.705h14.113c10.483 0 18.936-8.894 18.936-19.705v-.59c0-10.813-8.452-19.705-18.936-19.705zm0 4h14.113c8.224 0 14.936 6.96 14.936 15.705v.59c0 8.744-6.712 15.705-14.936 15.705H271.4c-8.224 0-14.936-6.961-14.936-15.705v-.59c0-8.745 6.712-15.705 14.936-15.705"/></g><g class="fiforeground"><path d="m170.8 260.1-3.43 3.352 6.69 6.527-6.69 6.527 3.43 3.353 6.69-6.528 6.68 6.528 3.44-3.353-6.69-6.527 6.69-6.527-3.44-3.352-6.68 6.527zm-.52-8.102h14.42c9.55 0 17.29 7.927 17.29 17.705v.59c0 9.778-7.74 17.705-17.29 17.705h-14.42c-9.55 0-17.29-7.927-17.29-17.705v-.59c0-9.778 7.74-17.705 17.29-17.705"/><path d="M170.3 250.02c-10.657 0-19.289 8.87-19.289 19.705v.59c0 10.833 8.632 19.705 19.289 19.705h14.422c10.657 0 19.289-8.872 19.289-19.705v-.59c0-10.834-8.633-19.705-19.289-19.705zm0 4h14.422c8.443 0 15.289 6.981 15.289 15.705v.59c0 8.722-6.846 15.705-15.289 15.705H170.3c-8.443 0-15.289-6.983-15.289-15.705v-.59c0-8.724 6.846-15.705 15.289-15.705M170.3 61.02c-10.688 0-19.289 9.12-19.289 20.197v.605c0 11.076 8.602 20.197 19.289 20.197h14.422c10.688 0 19.289-9.12 19.289-20.197v-.605c0-11.077-8.602-20.197-19.289-20.197zm0 4h14.422c8.413 0 15.289 7.174 15.289 16.197v.605c0 9.023-6.877 16.197-15.289 16.197H170.3c-8.413 0-15.289-7.174-15.289-16.197v-.605c0-9.023 6.876-16.197 15.289-16.197"/></g></svg>
diff --git a/subprojects/docs/src/components/Features/fi3.svg.license b/subprojects/docs/src/components/Features/fi3.svg.license
new file mode 100644
index 00000000..15aca74d
--- /dev/null
+++ b/subprojects/docs/src/components/Features/fi3.svg.license
@@ -0,0 +1,4 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
4
diff --git a/subprojects/docs/src/components/Features/fi4.svg b/subprojects/docs/src/components/Features/fi4.svg
new file mode 100644
index 00000000..b7ad5a1d
--- /dev/null
+++ b/subprojects/docs/src/components/Features/fi4.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="356" height="356" viewBox="0 0 356 356"><path d="M319.81 29.75c-4.175 0-7.559 3.303-7.559 7.377s3.384 7.377 7.559 7.377 7.559-3.303 7.559-7.377-3.384-7.377-7.559-7.377m-20.542 0c-4.175 0-7.559 3.303-7.559 7.377s3.384 7.377 7.559 7.377c4.174 0 7.559-3.303 7.559-7.377s-3.385-7.377-7.559-7.377m-20.569-.371c-4.175 0-7.559 3.303-7.559 7.377s3.384 7.377 7.559 7.377 7.559-3.303 7.559-7.377-3.384-7.377-7.559-7.377m-246.46-6.651h296.75c4.763 0 8.624 3.768 8.624 8.416v13.168c0 4.648-3.861 8.416-8.624 8.416H32.239c-4.763 0-8.624-3.768-8.624-8.416V31.144c0-4.648 3.861-8.416 8.624-8.416" class="fiforeground"/><path d="M125.85 260.65v24h33v62h-33v45h33v62h-33v24h66v-22h153v-21h33v-24h-33v-43h-66v-18h99v-24h-33v-20h33v-23h-99v-22z" class="fibackground" transform="translate(-79 -182)"/><path d="M34.96 20.72c-7.34 0-13.336 5.995-13.336 13.336v293.33c0 7.34 5.995 13.334 13.336 13.334h291.33c7.34 0 13.334-5.993 13.334-13.334V34.056c0-7.34-5.993-13.336-13.334-13.336zm0 4h291.33a9.305 9.305 0 0 1 9.334 9.336v293.33a9.303 9.303 0 0 1-9.334 9.334H34.96a9.305 9.305 0 0 1-9.336-9.334V34.056a9.307 9.307 0 0 1 9.336-9.336" class="fiforeground"/><path d="M23.62 48.73v4h314v-4z" class="fiforeground"/></svg>
diff --git a/subprojects/docs/src/components/Features/fi4.svg.license b/subprojects/docs/src/components/Features/fi4.svg.license
new file mode 100644
index 00000000..15aca74d
--- /dev/null
+++ b/subprojects/docs/src/components/Features/fi4.svg.license
@@ -0,0 +1,4 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
4
diff --git a/subprojects/docs/src/components/Features/fi5.svg b/subprojects/docs/src/components/Features/fi5.svg
new file mode 100644
index 00000000..65d61c3c
--- /dev/null
+++ b/subprojects/docs/src/components/Features/fi5.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="356" height="356" viewBox="0 0 356 356"><defs><clipPath id="refinery-fi5-clip0"><path d="M478.5 237.41c-41.747 0-75.591 33.844-75.591 75.591s33.844 75.591 75.591 75.591c41.748 0 75.591-33.844 75.591-75.591S520.248 237.41 478.5 237.41M323 160.001h311v306H323z" clip-rule="evenodd"/></clipPath></defs><g clip-path="url(#refinery-fi5-clip0)" transform="translate(-301 -146)"><path d="m544.17 208.9 24.346-20.43 19.45 16.32-15.892 27.525a125.2 125.2 0 0 1 25.251 43.735l31.786-.001 4.41 25.005-29.871 10.869a125.2 125.2 0 0 1-8.769 49.734l24.35 20.429-12.698 21.988-29.866-10.871a125.2 125.2 0 0 1-38.686 32.462l5.52 31.3-23.859 8.683-15.891-27.525a125.2 125.2 0 0 1-50.501 0l-15.89 27.525-23.859-8.683 5.52-31.3a125.2 125.2 0 0 1-38.686-32.462l-29.866 10.871-12.695-21.988 24.347-20.429a125.2 125.2 0 0 1-8.769-49.734l-29.866-10.869 4.409-25.005 31.782.001a125.2 125.2 0 0 1 25.251-43.735l-15.892-27.525 19.45-16.32 24.346 20.43a125.2 125.2 0 0 1 47.456-17.272l5.518-31.3h25.39l5.518 31.3A125.2 125.2 0 0 1 544.17 208.9" class="fibackground"/></g><path d="M164.01 262v4h12v-4z" class="fiforeground"/><g class="fiforeground"><path d="m177.02 261 11 3.501-11 3.5z"/><path d="M175.02 258.26v12.471l19.596-6.234zm4 5.47 2.404.766-2.404.766z"/></g><path d="M152.02 324v4h31v-4z" class="fiforeground"/><g class="fiforeground"><path d="m183.02 323 11 3.501-11 3.5z"/><path d="M181.02 320.26v12.471l19.596-6.234zm4 5.47 2.404.766-2.404.766z"/></g><path d="M157.02 150v4h31v-4z" class="fiforeground"/><g class="fiforeground"><path d="m188.01 148 10 4-10 4.001z"/><path d="M186.01 145.04v13.91l17.385-6.957zm4 5.908 2.617 1.047-2.617 1.045z"/></g><path d="M157.02 150v4h31v-4z" class="fiforeground"/><g class="fiforeground"><path d="m188.01 148 10 3.5-10 3.5z"/><path d="M186.01 145.18v12.637l18.055-6.318zm4 5.639 1.943.68-1.943.68z"/></g><path d="M157.02 129v4h31v-4z" class="fiforeground"/><g class="fiforeground"><path d="m188.01 128 10 3.5-10 3.5z"/><path d="M186.01 125.18v12.637l18.055-6.318zm4 5.639 1.943.68-1.943.68z"/></g><path d="M157.02 129v4h31v-4z" class="fiforeground"/><g class="fiforeground"><path d="m188.01 128 10 3.5-10 3.5z"/><path d="M186.01 125.18v12.637l18.055-6.318zm4 5.639 1.943.68-1.943.68z"/></g><g class="fiforeground"><path d="M141.88 311.02c7.797 0 14.118 6.605 14.118 14.754v.491c0 8.149-6.321 14.755-14.118 14.755h-11.765c-7.797 0-14.118-6.606-14.118-14.755v-.491c0-8.149 6.321-14.754 14.118-14.754z"/><path d="M130.12 309.02c-8.926 0-16.117 7.57-16.117 16.754v.492c0 9.183 7.19 16.754 16.117 16.754h11.766c8.927 0 16.119-7.57 16.119-16.754v-.492c0-9.183-7.193-16.754-16.119-16.754zm0 4h11.766c6.668 0 12.119 5.64 12.119 12.754v.492c0 7.115-5.452 12.754-12.119 12.754H130.12c-6.667 0-12.117-5.639-12.117-12.754v-.492c0-7.115 5.45-12.754 12.117-12.754"/></g><g class="fiforeground"><path d="M141.88 311.02c7.797 0 14.118 6.605 14.118 14.754v.491c0 8.149-6.321 14.755-14.118 14.755h-11.765c-7.797 0-14.118-6.606-14.118-14.755v-.491c0-8.149 6.321-14.754 14.118-14.754z"/><path d="M130.12 309.02c-8.926 0-16.117 7.57-16.117 16.754v.492c0 9.183 7.19 16.754 16.117 16.754h11.766c8.927 0 16.119-7.57 16.119-16.754v-.492c0-9.183-7.193-16.754-16.119-16.754zm0 4h11.766c6.668 0 12.119 5.64 12.119 12.754v.492c0 7.115-5.452 12.754-12.119 12.754H130.12c-6.667 0-12.117-5.639-12.117-12.754v-.492c0-7.115 5.45-12.754 12.117-12.754"/></g><g class="fiforeground"><path d="M141.88 249.02c7.797 0 14.118 6.605 14.118 14.754v.491c0 8.149-6.321 14.755-14.118 14.755h-11.765c-7.797 0-14.118-6.606-14.118-14.755v-.491c0-8.149 6.321-14.754 14.118-14.754z"/><path d="M130.12 247.02c-8.926 0-16.117 7.57-16.117 16.754v.492c0 9.183 7.19 16.754 16.117 16.754h11.766c8.927 0 16.119-7.57 16.119-16.754v-.492c0-9.183-7.193-16.754-16.119-16.754zm0 4h11.766c6.668 0 12.119 5.64 12.119 12.754v.492c0 7.115-5.452 12.754-12.119 12.754H130.12c-6.667 0-12.117-5.639-12.117-12.754v-.492c0-7.115 5.45-12.754 12.117-12.754"/></g><g class="fiforeground"><path d="M141.88 249.02c7.797 0 14.118 6.605 14.118 14.754v.491c0 8.149-6.321 14.755-14.118 14.755h-11.765c-7.797 0-14.118-6.606-14.118-14.755v-.491c0-8.149 6.321-14.754 14.118-14.754z"/><path d="M130.12 247.02c-8.926 0-16.117 7.57-16.117 16.754v.492c0 9.183 7.19 16.754 16.117 16.754h11.766c8.927 0 16.119-7.57 16.119-16.754v-.492c0-9.183-7.193-16.754-16.119-16.754zm0 4h11.766c6.668 0 12.119 5.64 12.119 12.754v.492c0 7.115-5.452 12.754-12.119 12.754H130.12c-6.667 0-12.117-5.639-12.117-12.754v-.492c0-7.115 5.45-12.754 12.117-12.754"/></g><path d="M134 266.02v31h4v-31z" class="fiforeground"/><g class="fiforeground"><path d="m139 297.02-3.501 11-3.5-11z"/><path d="m129.27 295.02 6.234 19.596 6.237-19.596zm5.469 4h1.531l-.766 2.404z"/></g><g class="fiforeground"><path d="M117.88 188.02c7.797 0 14.118 6.605 14.118 14.754v.491c0 8.149-6.321 14.755-14.118 14.755h-11.765c-7.797 0-14.118-6.606-14.118-14.755v-.491c0-8.149 6.321-14.754 14.118-14.754z"/><path d="M106.12 186.02c-8.926 0-16.117 7.57-16.117 16.754v.492c0 9.183 7.19 16.754 16.117 16.754h11.766c8.927 0 16.119-7.57 16.119-16.754v-.492c0-9.183-7.193-16.754-16.119-16.754zm0 4h11.766c6.668 0 12.119 5.64 12.119 12.754v.492c0 7.115-5.452 12.754-12.119 12.754H106.12c-6.667 0-12.117-5.639-12.117-12.754v-.492c0-7.115 5.45-12.754 12.117-12.754"/></g><g class="fiforeground"><path d="M117.88 188.02c7.797 0 14.118 6.605 14.118 14.754v.491c0 8.149-6.321 14.755-14.118 14.755h-11.765c-7.797 0-14.118-6.606-14.118-14.755v-.491c0-8.149 6.321-14.754 14.118-14.754z"/><path d="M106.12 186.02c-8.926 0-16.117 7.57-16.117 16.754v.492c0 9.183 7.19 16.754 16.117 16.754h11.766c8.927 0 16.119-7.57 16.119-16.754v-.492c0-9.183-7.193-16.754-16.119-16.754zm0 4h11.766c6.668 0 12.119 5.64 12.119 12.754v.492c0 7.115-5.452 12.754-12.119 12.754H106.12c-6.667 0-12.117-5.639-12.117-12.754v-.492c0-7.115 5.45-12.754 12.117-12.754"/></g><path d="m115.02 203.24-3.863 1.037 7.978 29.746 3.863-1.037z" class="fiforeground"/><g class="fiforeground"><path d="m124.49 232.34-.682 11.384-6.289-9.514z"/><path d="m126.66 229.68-12.334 3.309 11.127 16.832zm-4.326 5.303-.156 2.627-1.452-2.196z"/></g><g class="fiforeground"><path d="M74.88 127.02c7.797 0 14.118 6.605 14.118 14.754v.491c0 8.149-6.321 14.755-14.118 14.755H63.115c-7.797 0-14.118-6.606-14.118-14.755v-.491c0-8.149 6.321-14.754 14.118-14.754z"/><path d="M63.12 125.02c-8.926 0-16.117 7.57-16.117 16.754v.492c0 9.183 7.19 16.754 16.117 16.754h11.766c8.927 0 16.119-7.57 16.119-16.754v-.492c0-9.183-7.193-16.754-16.119-16.754zm0 4h11.766c6.668 0 12.119 5.64 12.119 12.754v.492c0 7.115-5.452 12.754-12.119 12.754H63.12c-6.667 0-12.117-5.639-12.117-12.754v-.492c0-7.115 5.45-12.754 12.117-12.754"/></g><g class="fiforeground"><path d="M74.88 127.02c7.797 0 14.118 6.605 14.118 14.754v.491c0 8.149-6.321 14.755-14.118 14.755H63.115c-7.797 0-14.118-6.606-14.118-14.755v-.491c0-8.149 6.321-14.754 14.118-14.754z"/><path d="M63.12 125.02c-8.926 0-16.117 7.57-16.117 16.754v.492c0 9.183 7.19 16.754 16.117 16.754h11.766c8.927 0 16.119-7.57 16.119-16.754v-.492c0-9.183-7.193-16.754-16.119-16.754zm0 4h11.766c6.668 0 12.119 5.64 12.119 12.754v.492c0 7.115-5.452 12.754-12.119 12.754H63.12c-6.667 0-12.117-5.639-12.117-12.754v-.492c0-7.115 5.45-12.754 12.117-12.754"/></g><path d="m81.96 149.63-3.469 1.992 15.336 26.707 3.469-1.992z" class="fiforeground"/><g class="fiforeground"><path d="m98.56 175.32 2.258 11.178-8.516-7.584z"/><path d="m99.97 172.21-11.072 6.357 15.066 13.418zm-2.822 6.232.521 2.582-1.967-1.752z"/></g><g class="fiforeground"><path d="M214.117 311.016c-7.797 0-14.118 6.605-14.118 14.754v.491c0 8.149 6.32 14.754 14.118 14.754h11.765c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.32-14.754-14.118-14.754z"/><path d="M225.883 309.016c8.927 0 16.117 7.57 16.117 16.754v.492c0 9.182-7.19 16.754-16.117 16.754h-11.766c-8.927 0-16.117-7.571-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754zm0 4h-11.766c-6.667 0-12.117 5.64-12.117 12.754v.492c0 7.114 5.45 12.754 12.117 12.754h11.766c6.667 0 12.117-5.64 12.117-12.754v-.492c0-7.115-5.45-12.754-12.117-12.754"/><path d="M214.117 311.016c-7.797 0-14.118 6.605-14.118 14.754v.491c0 8.149 6.32 14.754 14.118 14.754h11.765c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.32-14.754-14.118-14.754z"/><path d="M225.883 309.016c8.927 0 16.117 7.57 16.117 16.754v.492c0 9.182-7.19 16.754-16.117 16.754h-11.766c-8.927 0-16.117-7.571-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754zm0 4h-11.766c-6.667 0-12.117 5.64-12.117 12.754v.492c0 7.114 5.45 12.754 12.117 12.754h11.766c6.667 0 12.117-5.64 12.117-12.754v-.492c0-7.115-5.45-12.754-12.117-12.754"/></g><g class="fiforeground"><path d="M214.117 249.016c-7.797 0-14.118 6.605-14.118 14.754v.491c0 8.149 6.32 14.754 14.118 14.754h11.765c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.32-14.754-14.118-14.754z"/><path d="M225.883 247.016c8.927 0 16.117 7.57 16.117 16.754v.492c0 9.182-7.19 16.754-16.117 16.754h-11.766c-8.927 0-16.117-7.571-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754zm0 4h-11.766c-6.667 0-12.117 5.64-12.117 12.754v.492c0 7.114 5.45 12.754 12.117 12.754h11.766c6.667 0 12.117-5.64 12.117-12.754v-.492c0-7.115-5.45-12.754-12.117-12.754"/><path d="M214.117 249.016c-7.797 0-14.118 6.605-14.118 14.754v.491c0 8.149 6.32 14.754 14.118 14.754h11.765c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.32-14.754-14.118-14.754z"/><path d="M225.883 247.016c8.927 0 16.117 7.57 16.117 16.754v.492c0 9.182-7.19 16.754-16.117 16.754h-11.766c-8.927 0-16.117-7.571-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754zm0 4h-11.766c-6.667 0-12.117 5.64-12.117 12.754v.492c0 7.114 5.45 12.754 12.117 12.754h11.766c6.667 0 12.117-5.64 12.117-12.754v-.492c0-7.115-5.45-12.754-12.117-12.754"/></g><path d="M222 266.016v31h-4v-31z" class="fiforeground"/><g class="fiforeground"><path d="m216 297.016 4 11 4-11z"/><path d="M226.856 295.016 220 313.87l-6.855-18.854zm-5.713 4h-2.287l1.144 3.146z"/></g><g class="fiforeground"><path d="M237.47 188.016c-7.992 0-14.471 6.605-14.471 14.754v.491c0 8.149 6.479 14.754 14.471 14.754h12.059c7.992 0 14.471-6.605 14.471-14.754v-.491c0-8.149-6.479-14.754-14.471-14.754z"/><path d="M249.529 186.016c9.094 0 16.471 7.545 16.471 16.754v.492c0 9.208-7.377 16.754-16.471 16.754H237.47c-9.094 0-16.471-7.546-16.471-16.754v-.492c0-9.209 7.377-16.754 16.471-16.754zm0 4H237.47c-6.89 0-12.471 5.665-12.471 12.754v.492c0 7.088 5.58 12.754 12.471 12.754h12.059c6.89 0 12.471-5.666 12.471-12.754v-.492c0-7.089-5.58-12.754-12.471-12.754"/><path d="M237.47 188.016c-7.992 0-14.471 6.605-14.471 14.754v.491c0 8.149 6.479 14.754 14.471 14.754h12.059c7.992 0 14.471-6.605 14.471-14.754v-.491c0-8.149-6.479-14.754-14.471-14.754z"/><path d="M249.529 186.016c9.094 0 16.471 7.545 16.471 16.754v.492c0 9.208-7.377 16.754-16.471 16.754H237.47c-9.094 0-16.471-7.546-16.471-16.754v-.492c0-9.209 7.377-16.754 16.471-16.754zm0 4H237.47c-6.89 0-12.471 5.665-12.471 12.754v.492c0 7.088 5.58 12.754 12.471 12.754h12.059c6.89 0 12.471-5.666 12.471-12.754v-.492c0-7.089-5.58-12.754-12.471-12.754"/></g><path d="m244.588 204.283-7.98 29.745-3.864-1.036 7.98-29.745z" class="fiforeground"/><g class="fiforeground"><path d="m231.255 232.335.682 11.383 6.289-9.513z"/><path d="m241.425 232.993-11.126 16.83-1.206-20.139zm-6.398 2.425-1.609-.432.157 2.626z"/></g><g class="fiforeground"><path d="M281.117 127.016c-7.797 0-14.118 6.605-14.118 14.754v.491c0 8.149 6.32 14.754 14.118 14.754h11.765c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.32-14.754-14.118-14.754z"/><path d="M292.883 125.016c8.927 0 16.117 7.57 16.117 16.754v.492c0 9.182-7.19 16.754-16.117 16.754h-11.766c-8.927 0-16.117-7.571-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754zm0 4h-11.766c-6.667 0-12.117 5.64-12.117 12.754v.492c0 7.114 5.45 12.754 12.117 12.754h11.766c6.667 0 12.117-5.64 12.117-12.754v-.492c0-7.115-5.45-12.754-12.117-12.754"/><path d="M281.117 127.016c-7.797 0-14.118 6.605-14.118 14.754v.491c0 8.149 6.32 14.754 14.118 14.754h11.765c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.32-14.754-14.118-14.754z"/><path d="M292.883 125.016c8.927 0 16.117 7.57 16.117 16.754v.492c0 9.182-7.19 16.754-16.117 16.754h-11.766c-8.927 0-16.117-7.571-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754zm0 4h-11.766c-6.667 0-12.117 5.64-12.117 12.754v.492c0 7.114 5.45 12.754 12.117 12.754h11.766c6.667 0 12.117-5.64 12.117-12.754v-.492c0-7.115-5.45-12.754-12.117-12.754"/></g><path d="m277.267 151.63-15.336 26.706-3.47-1.992 15.337-26.706z" class="fiforeground"/><g class="fiforeground"><path d="m257.183 175.33-2.257 11.178 8.516-7.585z"/><path d="m266.845 178.571-15.068 13.418 3.996-19.776zm-6.806.705-1.444-.83-.522 2.58z"/></g><path d="M157.02 171v4h31v-4z" class="fiforeground"/><g class="fiforeground"><path d="m188.01 169 10 3.5-10 3.5z"/><path d="M186.01 166.18v12.637l18.055-6.318zm4 5.639 1.943.68-1.943.68z"/></g><path d="M157.02 171v4h31v-4z" class="fiforeground"/><g class="fiforeground"><path d="m188.01 169 10 3.5-10 3.5z"/><path d="M186.01 166.18v12.637l18.055-6.318zm4 5.639 1.943.68-1.943.68z"/></g><path d="M158.02 192v4h30v-4z" class="fiforeground"/><g class="fiforeground"><path d="m188.02 190 11 3.501-11 3.5z"/><path d="M186.02 187.26v12.471l19.596-6.234zm4 5.47 2.404.766-2.404.766z"/></g><path d="M158.02 191v4h30v-4z" class="fiforeground"/><g class="fiforeground"><path d="m188.02 190 11 3.501-11 3.5z"/><path d="M186.02 187.26v12.471l19.596-6.234zm4 5.47 2.404.766-2.404.766z"/></g><g class="fiforeground"><path d="M49.88 62.02c7.797 0 14.118 6.605 14.118 14.754v.491c0 8.149-6.321 14.755-14.118 14.755H38.115c-7.797 0-14.118-6.606-14.118-14.755v-.491c0-8.149 6.321-14.754 14.118-14.754z"/><path d="M38.12 60.02c-8.926 0-16.117 7.57-16.117 16.754v.492c0 9.183 7.19 16.754 16.117 16.754h11.766c8.927 0 16.119-7.57 16.119-16.754v-.492c0-9.183-7.193-16.754-16.119-16.754zm0 4h11.766c6.668 0 12.119 5.64 12.119 12.754v.492c0 7.115-5.452 12.754-12.119 12.754H38.12c-6.667 0-12.117-5.639-12.117-12.754v-.492c0-7.115 5.45-12.754 12.117-12.754"/></g><g class="fiforeground"><path d="M305.117 62.016c-7.797 0-14.118 6.605-14.118 14.754v.491c0 8.149 6.32 14.754 14.118 14.754h11.765c7.797 0 14.118-6.605 14.118-14.754v-.491c0-8.149-6.32-14.754-14.118-14.754z"/><path d="M316.883 60.016c8.927 0 16.117 7.57 16.117 16.754v.492c0 9.182-7.19 16.754-16.117 16.754h-11.766c-8.927 0-16.117-7.571-16.117-16.754v-.492c0-9.183 7.19-16.754 16.117-16.754zm0 4h-11.766c-6.667 0-12.117 5.64-12.117 12.754v.492c0 7.114 5.45 12.754 12.117 12.754h11.766c6.667 0 12.117-5.64 12.117-12.754v-.492c0-7.115-5.45-12.754-12.117-12.754"/></g></svg>
diff --git a/subprojects/docs/src/components/Features/fi5.svg.license b/subprojects/docs/src/components/Features/fi5.svg.license
new file mode 100644
index 00000000..15aca74d
--- /dev/null
+++ b/subprojects/docs/src/components/Features/fi5.svg.license
@@ -0,0 +1,4 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
4
diff --git a/subprojects/docs/src/components/Features/index.module.css b/subprojects/docs/src/components/Features/index.module.css
new file mode 100644
index 00000000..20ad300b
--- /dev/null
+++ b/subprojects/docs/src/components/Features/index.module.css
@@ -0,0 +1,130 @@
1/*
2 * SPDX-FileCopyrightText: 2024 The Refinery Authors
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7:global(.fibackground) {
8 fill: url(#fi-lg);
9}
10
11:global(.fiforeground) {
12 fill: #303846;
13}
14
15:global(.fiempty) {
16 fill: #fff;
17}
18
19[data-theme='dark'] :global(.fiforeground) {
20 fill: var(--ifm-font-color-base);
21}
22
23[data-theme='dark'] :global(.fiempty) {
24 fill: var(--ifm-background-color);
25}
26
27.lg {
28 position: absolute;
29 visibility: hidden;
30 top: 0;
31 left: 0;
32 width: 0;
33 height: 0;
34}
35
36.lg__start {
37 stop-color: var(--ifm-color-primary-lighter);
38}
39
40.lg__end {
41 stop-color: var(--ifm-color-primary);
42}
43
44[data-theme='dark'] .lg__start {
45 stop-color: var(--ifm-color-primary-light);
46}
47
48[data-theme='dark'] .lg__end {
49 stop-color: var(--ifm-color-primary-darker);
50}
51
52.feature__container {
53 display: flex;
54 flex-direction: column;
55 container-type: inline-size;
56 justify-content: stretch;
57}
58
59.feature {
60 display: flex;
61 flex-direction: column;
62 align-items: center;
63 margin-bottom: var(--ifm-leading);
64 gap: 1rem;
65}
66
67.feature__icon {
68 display: flex;
69 width: 100%;
70 max-width: 220px;
71 height: auto;
72 aspect-ratio: 1/1;
73}
74
75.feature__icon svg {
76 width: 100%;
77 height: 100%;
78}
79
80.feature__contents {
81 display: flex;
82 flex-direction: column;
83 align-items: center;
84 gap: 1rem;
85}
86
87.feature__title {
88 margin: 0;
89}
90
91.feature__text {
92 margin: 0;
93 text-align: center;
94}
95
96@container (min-width: 660px) {
97 .feature {
98 flex-direction: row;
99 }
100
101 .feature--even {
102 flex-direction: row-reverse;
103 }
104
105 .feature__icon {
106 flex-shrink: 0;
107 }
108
109 .feature__contents {
110 align-items: flex-start;
111 }
112
113 .feature--even .feature__contents {
114 align-items: flex-end;
115 }
116
117 .feature__title,
118 .feature__text {
119 text-align: left;
120 }
121
122 .feature--even .feature__title,
123 .feature--even .feature__text {
124 text-align: right;
125 }
126}
127
128.row--last {
129 margin-bottom: calc(-1 * var(--ifm-leading));
130}
diff --git a/subprojects/docs/src/components/Features/index.tsx b/subprojects/docs/src/components/Features/index.tsx
new file mode 100644
index 00000000..36fab14a
--- /dev/null
+++ b/subprojects/docs/src/components/Features/index.tsx
@@ -0,0 +1,114 @@
1/*
2 * SPDX-FileCopyrightText: 2024 The Refinery Authors
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7import clsx from 'clsx';
8
9import Fi1 from './fi1.svg';
10import Fi2 from './fi2.svg';
11import Fi3 from './fi3.svg';
12import Fi4 from './fi4.svg';
13import Fi5 from './fi5.svg';
14import styles from './index.module.css';
15
16function Feature({
17 icon,
18 title,
19 offset,
20 even,
21 children,
22}: {
23 icon: React.ReactNode;
24 title: string;
25 offset?: number;
26 even?: boolean;
27 children: React.ReactNode;
28}) {
29 return (
30 <div
31 className={clsx(
32 'col',
33 'col--4',
34 { [`col--offset-${offset}`]: offset !== undefined },
35 styles['feature__container'],
36 )}
37 >
38 <div
39 className={clsx(styles['feature'], {
40 [styles['feature--even']!]: even,
41 })}
42 >
43 <div className={styles['feature__icon']}>{icon}</div>
44 <div className={styles['feature__contents']}>
45 <h3 className={styles['feature__title']}>{title}</h3>
46 <p className={styles['feature__text']}>{children}</p>
47 </div>
48 </div>
49 </div>
50 );
51}
52
53Feature.defaultProps = {
54 offset: undefined,
55 even: false,
56};
57
58export default function Features() {
59 return (
60 <div className="container">
61 <svg xmlns="ttp://www.w3.org/2000/svg" className={styles['lg']}>
62 <defs>
63 <linearGradient
64 id="fi-lg"
65 x1="0"
66 y1="0"
67 x2="0"
68 y2="366"
69 gradientUnits="userSpaceOnUse"
70 >
71 <stop offset="0%" className={styles['lg__start']} />
72 <stop offset="100%" className={styles['lg__end']} />
73 </linearGradient>
74 </defs>
75 </svg>
76 <h2 className="sr-only">Features</h2>
77 <div className="row">
78 <Feature icon={<Fi1 />} title="Diverse graph generation">
79 Refinery provides a framework for the automated generation of graphs.
80 </Feature>
81 <Feature icon={<Fi2 />} title="Model with uncertainty" even>
82 Partial modeling allows us to explicitly represent unknown or
83 uncertain knowledge in our models. The Refinery framework enables us
84 to explore design alternatives systematically.
85 </Feature>
86 <Feature icon={<Fi3 />} title="Formal logic reasoning">
87 Refinery combines the mathematical precision of formal logic
88 structures with the expressiveness of graph-based models. Underlying
89 solver algorithms ensure formal correctness and completeness of
90 generation processes.
91 </Feature>
92 </div>
93 <div className={clsx('row', styles['row--last'])}>
94 <Feature
95 icon={<Fi4 />}
96 title="Advanced web-based editor"
97 offset={2}
98 even
99 >
100 Designers are supported with state-of-the-art web-based editors with
101 advanced IDE features and visualization techniques. The framework can
102 be applied as a simple command-line interface program or deployed on
103 the cloud.
104 </Feature>
105 <Feature icon={<Fi5 />} title="Powerful graph algorithms">
106 Refinery is equipped with powerful algorithms such as incremental
107 query evaluation, efficient graph isomorphism checking, and
108 version-controlled data structures to solve various modeling and graph
109 processing problems.
110 </Feature>
111 </div>
112 </div>
113 );
114}
diff --git a/subprojects/docs/src/components/UseCases/index.module.css b/subprojects/docs/src/components/UseCases/index.module.css
new file mode 100644
index 00000000..c8ffc0af
--- /dev/null
+++ b/subprojects/docs/src/components/UseCases/index.module.css
@@ -0,0 +1,104 @@
1/*
2 * SPDX-FileCopyrightText: 2024 The Refinery Authors
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7:global(.uchighlight) {
8 fill: var(--refinery-highlight);
9}
10
11:global(.ucdraw) {
12 fill: #303846;
13}
14
15:global(.ucstroke) {
16 stroke: #303846;
17}
18
19[data-theme='dark'] :global(.ucdraw) {
20 fill: var(--ifm-color-emphasis-700);
21}
22
23[data-theme='dark'] :global(.ucstroke) {
24 stroke: var(--ifm-color-emphasis-700);
25}
26
27.use-case {
28 position: relative;
29 display: flex;
30 overflow: hidden;
31 flex-direction: column-reverse;
32 align-content: justify;
33 width: 100%;
34 background: var(--ifm-card-background-color);
35 box-shadow: 0 1.5px 3px 0 rgb(0 0 0 / 15%);
36 border: 1px solid var(--ifm-color-emphasis-200);
37 border-radius: var(--ifm-card-border-radius);
38 margin-bottom: 2rem;
39 transition: all var(--ifm-transition-fast) ease;
40 transition-property: border, box-shadow;
41 --ifm-link-color: var(--ifm-color-emphasis-800);
42 --ifm-link-hover-color: var(--ifm-color-emphasis-700);
43}
44
45.use-case:hover,
46.use-case:focus-within {
47 border-color: var(--ifm-color-primary);
48 box-shadow: 0 3px 6px 0 rgb(0 0 0 / 20%);
49}
50
51.use-case__content {
52 display: flex;
53 overflow: hidden;
54 flex-direction: column;
55 align-items: center;
56 padding: 1rem;
57}
58
59.use-case__content svg {
60 width: 100%;
61 max-width: 600px;
62 height: auto;
63 transform: scale(1);
64 transition: transform var(--ifm-transition-fast) ease;
65}
66
67.use-case:hover svg,
68.use-case:focus-within svg {
69 transform: scale(1.414);
70}
71
72.use-case__title {
73 margin: 0;
74 padding: 1rem;
75 background: var(--ifm-background-surface-color);
76 font-weight: 400;
77}
78
79.use-case__title b,
80.use-case__title span {
81 display: inline-block;
82}
83
84[data-theme='dark'] .use-case__title {
85 background: var(--ifm-color-emphasis-200);
86}
87
88.use-case__link:hover > * {
89 text-decoration: underline;
90}
91
92.use-case__link::before {
93 content: ' ';
94 position: absolute;
95 top: 0;
96 left: 0;
97 z-index: 99;
98 width: 100%;
99 height: 100%;
100}
101
102.row--bottom {
103 margin-bottom: -2rem;
104}
diff --git a/subprojects/docs/src/components/UseCases/index.tsx b/subprojects/docs/src/components/UseCases/index.tsx
new file mode 100644
index 00000000..c9570cc6
--- /dev/null
+++ b/subprojects/docs/src/components/UseCases/index.tsx
@@ -0,0 +1,106 @@
1/*
2 * SPDX-FileCopyrightText: 2024 The Refinery Authors
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7import Link from '@docusaurus/Link';
8import clsx from 'clsx';
9
10import styles from './index.module.css';
11import Uc1 from './uc1.svg';
12import Uc2 from './uc2.svg';
13import Uc3 from './uc3.svg';
14import Uc4 from './uc4.svg';
15import Uc5 from './uc5.svg';
16import Uc6 from './uc6.svg';
17
18function UseCase({
19 icon,
20 title,
21 href,
22}: {
23 icon: React.ReactNode;
24 title: React.ReactNode;
25 href: string;
26}) {
27 return (
28 <div className="col col--4">
29 <div className={styles['use-case']}>
30 <h3 className={styles['use-case__title']}>
31 <Link href={href} className={styles['use-case__link']!}>
32 {title}
33 </Link>
34 </h3>
35 <div className={styles['use-case__content']}>{icon}</div>
36 </div>
37 </div>
38 );
39}
40
41export default function UseCases() {
42 return (
43 <>
44 <div className="row">
45 <UseCase
46 icon={<Uc1 />}
47 title={
48 <>
49 <b>Scenario generation</b> for testing autonomous vechicles
50 </>
51 }
52 href="https://doi.org/10.1007/s10270-021-00884-z"
53 />
54 <UseCase
55 icon={<Uc2 />}
56 title={
57 <>
58 <b>Conformance checking</b> of modeling toolchains
59 </>
60 }
61 href="https://doi.org/10.1007/s10009-019-00530-6"
62 />
63 <UseCase
64 icon={<Uc3 />}
65 title={
66 <>
67 Synthesize distributed <b>communication networks</b>
68 </>
69 }
70 href="https://doi.org/10.1109/TSE.2020.3025732"
71 />
72 </div>
73 <div className={clsx('row', styles['row--bottom'])}>
74 <UseCase
75 icon={<Uc4 />}
76 title={
77 <>
78 <b>Execution time analysis</b> for <span>data-driven</span>{' '}
79 critical systems
80 </>
81 }
82 href="https://doi.org/10.1145/3471904"
83 />
84 <UseCase
85 icon={<Uc5 />}
86 title={
87 <>
88 <b>Generative architectures</b> with assured resilience
89 </>
90 }
91 href="https://doi.org/10.1145/3550355.3552448"
92 />
93 <UseCase
94 icon={<Uc6 />}
95 title={
96 <>
97 <b>Video game map generator</b> with <span>model-based</span>{' '}
98 techniques
99 </>
100 }
101 href="https://doi.org/10.1145/3417990.3422001"
102 />
103 </div>
104 </>
105 );
106}
diff --git a/subprojects/docs/src/components/UseCases/uc1.svg b/subprojects/docs/src/components/UseCases/uc1.svg
new file mode 100644
index 00000000..2b5504e5
--- /dev/null
+++ b/subprojects/docs/src/components/UseCases/uc1.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="328" height="189" viewBox="0 0 328 189"><path d="m223.98 61.834-4.984.18.048 1.332 4.961-.178.54.016.042-1.332-.562-.018zm3.006.094-.041 1.332 5.547.174.04-1.332zm-10.39.174-5.398.193-.044.004-.147.015.137 1.327.125-.014 5.377-.193zm18.335.074-.041 1.334 1.853.058 3.633.36.131-1.326-3.654-.364-.045-.002zm-26.312.387-5.52.574.14 1.326 5.519-.574zm34.277.275-.131 1.328 5.522.549.132-1.328zm-42.184.547-2.28.236-.044.008-3.211.555.226 1.314 3.19-.553 2.256-.234zm50.129.328-.22 1.314 5.472.92.22-1.314zm-58.03.879-5.468.947.229 1.313 5.468-.946zm65.87.44-.22 1.314 3.542.595 1.897.385.263-1.306-1.906-.387-.021-.004zm-73.734.98-5.393 1.312.315 1.295 5.392-1.312zm81.57.486-.266 1.307 5.438 1.103.265-1.306zm-89.295 1.393-3.906.95-.043.013-1.46.462.403 1.272 1.438-.455 3.882-.945zm97.086.19-.266 1.306 5.438 1.103.265-1.306zm7.79 1.581-.265 1.307 5.438 1.103.265-1.306zm-112.57.379-5.29 1.674.402 1.271 5.291-1.675zm120.37 1.203-.265 1.307 5.438 1.105.265-1.306zm-127.94 1.195-.866.274-.041.014-4.323 1.697.489 1.24 4.298-1.687.844-.268zm135.73.387-.263 1.307 5.438 1.105.265-1.306zm7.792 1.582-.264 1.307 1.156.236.266-1.307zm-150.99.893-5.166 2.027.486 1.24 5.168-2.027zm-7.383 3.058-5.018 2.371.57 1.206 5.018-2.372zm-7.187 3.397-2.377 1.125-.041.02-2.55 1.423.651 1.164 2.53-1.412 2.357-1.115zm-7.063 3.738-4.846 2.705.65 1.164 4.846-2.705zm-6.963 3.926-4.652 3.027.726 1.117 4.653-3.027zm-6.664 4.336-3.644 2.373-.038.025-.96.72.8 1.067.944-.707 3.625-2.361zm-6.56 4.562-4.438 3.334.8 1.065 4.438-3.334zm-6.356 4.776-.984.74-.035.03-3.27 2.82.871 1.01 3.252-2.807.967-.727zm-6.105 5.158-4.202 3.625.871 1.01 4.202-3.625zm-5.965 5.318-3.948 3.903.938.947 3.947-3.902zm-5.655 5.59-2.091 2.069-.032.033-1.726 1.953 1 .883 1.71-1.936 2.077-2.055zm-5.437 5.856-3.674 4.16 1 .88 3.674-4.16zm-5.281 6-3.385 4.4 1.057.813 3.384-4.399zm-4.848 6.302-2.834 3.686-.027.037-.5.748 1.11.74.487-.73 2.82-3.668zm-4.691 6.467-3.078 4.62 1.109.738 3.078-4.618zm-4.41 6.615-.846 1.27-.026.039-2 3.492 1.157.662 1.99-3.472.834-1.25zm-4.065 6.883-2.758 4.815 1.156.664 2.76-4.817zm-3.916 6.944-2.594 4.906 1.178.623 2.596-4.906zm-3.715 7.027-2.596 4.906 1.18.623 2.594-4.906zm-3.717 7.027-2.595 4.906 1.18.625 2.593-4.906z" class="ucdraw"/><g class="uchighlight"><path d="m240.37 55.167-.066 2.333-9.803-3.814 10-3.186-.065 2.333z"/><path d="m240.3 49.865-10 3.186a.667.667 0 0 0-.04 1.255l9.804 3.815a.667.667 0 0 0 .908-.602l.133-4.668.064-2.332a.667.667 0 0 0-.869-.654m-.488 1.555-.04 1.394-.066 2.334-.039 1.387-7.164-2.787z"/></g><g class="uchighlight"><path d="m130.34 78.475 1.156 1.987-11 2.038 7.533-8 1.156 1.987z"/><path d="M128.11 73.838a.67.67 0 0 0-.562.205l-7.534 8a.667.667 0 0 0 .608 1.113l11-2.039a.667.667 0 0 0 .455-.99l-1.156-1.986-1.155-1.989-1.156-1.988a.67.67 0 0 0-.5-.326zm-.203 1.77.707 1.214 1.154 1.989.68 1.168-8.063 1.494z"/></g><g class="uchighlight"><path d="m50.436 158.7 2.064 1.098-8 7.707 1.808-11 2.064 1.097z"/><path d="M46.012 155.9a.67.67 0 0 0-.361.49l-1.809 11a.667.667 0 0 0 1.121.588l8-7.707a.667.667 0 0 0-.15-1.068l-2.063-1.1-2.064-1.098-2.065-1.095a.67.67 0 0 0-.61-.01zm.805 1.621 1.242.662 2.064 1.098 1.254.666-5.892 5.676z"/></g><g class="uchighlight"><path d="M152.5 31.834c-10.52 0-20.61 4.18-28.049 11.617a39.674 39.674 0 0 0 0 56.098A39.667 39.667 0 1 0 152.5 31.834m0 1.332a38.337 38.337 0 0 1 27.107 65.439A38.336 38.336 0 0 1 114.166 71.5 38.335 38.335 0 0 1 152.5 33.166"/><path d="m162.7 60.635-25.027 10.097 24.341-8.45 3.626 9.433-22.578 8.92-3.938-9.971-1.448.073-.021-.03 4.694 11.674 25.022-9.915z"/><path d="M157.6 65.863a.67.67 0 0 0-.559.076l-10.902 7a.667.667 0 0 0 .46 1.22l13-1.958a.667.667 0 0 0 .515-.916l-2.098-5.041a.67.67 0 0 0-.416-.381zm-.508 1.627 1.463 3.518-9.072 1.367z"/></g><path d="m187.7 68.619-25.053 10.393 24.277-8.664 3.723 9.904-22.586 9.367-3.753-9.97 22.515-9.265-24.177 8.628.227.604 4.423 11.766 25.053-10.393z" class="ucdraw"/><g class="ucdraw"><path d="M86.871 166.16h4v1h-4zM93.46 165.34a.75.75 0 0 0-.628.3q-.23.3-.23.823 0 .519.23.822.232.3.628.301c.396.001.473-.1.627-.301q.23-.303.23-.822 0-.523-.23-.822a.75.75 0 0 0-.627-.301m1.167-2.044v.594a2.2 2.2 0 0 0-.447-.177 1.7 1.7 0 0 0-.447-.062q-.581 0-.89.436-.305.436-.35 1.317.172-.28.43-.43.26-.15.571-.15.656 0 1.035.44.38.44.38 1.199 0 .742-.396 1.192-.396.448-1.053.448-.754 0-1.153-.64-.398-.642-.398-1.859 0-1.142.489-1.822t1.312-.68q.22 0 .447.05.225.048.47.144M97.41 163.62q-.454 0-.682.496-.228.494-.228 1.49 0 .99.228 1.485.23.496.682.496.457 0 .685-.496.228-.495.229-1.486 0-.995-.23-1.49-.227-.495-.684-.495m0-.516q.73 0 1.115.641.386.64.386 1.86 0 1.216-.386 1.858-.384.64-1.115.64-.73 0-1.114-.64-.386-.641-.386-1.858 0-1.22.386-1.86.385-.641 1.114-.641M115.87 166.16h4v1h-4zM121.1 163.1h2.462v.56h-1.888v1.2a1.6 1.6 0 0 1 .547-.097q.776 0 1.23.45t.453 1.218q0 .791-.466 1.23-.465.44-1.314.439-.291 0-.595-.053a4.5 4.5 0 0 1-.625-.157v-.668a2.37 2.37 0 0 0 1.208.319q.538 0 .85-.299.314-.299.314-.811t-.314-.81q-.312-.3-.85-.3-.252 0-.502.059t-.51.184zM125.1 163.1h2.462v.56h-1.888v1.2a1.6 1.6 0 0 1 .547-.097q.776 0 1.23.45t.453 1.218q0 .791-.466 1.23-.465.44-1.313.439-.293 0-.596-.053a4.5 4.5 0 0 1-.625-.157v-.668a2.36 2.36 0 0 0 1.208.319q.537 0 .85-.299.314-.299.314-.811t-.314-.81q-.312-.3-.85-.3-.252 0-.502.059-.249.058-.51.184zM144.91 166.16h3v1h-3zM150.11 163.1h2.462v.56h-1.888v1.2a1.6 1.6 0 0 1 .547-.097q.776 0 1.23.45t.453 1.218q0 .791-.466 1.23-.465.44-1.314.439-.291 0-.595-.053a4.5 4.5 0 0 1-.625-.157v-.668a2.36 2.36 0 0 0 1.208.319q.537 0 .85-.299.315-.299.314-.811 0-.512-.314-.81-.313-.3-.85-.3-.252 0-.502.059t-.51.184zM155.41 163.62q-.453 0-.682.496-.228.494-.228 1.49 0 .99.228 1.485.23.496.682.496.457 0 .685-.496.228-.495.229-1.486 0-.995-.23-1.49-.227-.495-.684-.495m0-.516q.73 0 1.115.641.385.64.385 1.86 0 1.216-.385 1.858-.384.64-1.115.64-.73 0-1.114-.64-.385-.641-.385-1.858 0-1.22.385-1.86.384-.641 1.114-.641M172.88 166.16h4v1h-4zM180.37 163.7l-1.875 2.67h1.875zm-.195-.59h.934v3.26h.783v.562h-.783v1.179h-.739v-1.18h-2.478v-.652zM182.11 163.1h2.462v.56h-1.888v1.2a1.6 1.6 0 0 1 .547-.097q.776 0 1.23.45t.453 1.218q0 .791-.466 1.23-.465.44-1.314.439-.291 0-.595-.053a4.5 4.5 0 0 1-.625-.157v-.668a2.36 2.36 0 0 0 1.208.319q.538 0 .85-.299.314-.299.314-.811t-.314-.81q-.312-.3-.85-.3-.252 0-.502.059t-.51.184zM201.88 166.16h4v1h-4zM208.78 163.7l-1.406 2.67h1.406zm-.146-.59h.7v3.26h.588v.562h-.588v1.179h-.554v-1.18h-1.858v-.652zM212.42 163.62q-.453 0-.682.496-.228.494-.228 1.49 0 .99.228 1.485.23.496.682.496.457 0 .685-.496.228-.495.228-1.486 0-.995-.228-1.49t-.685-.495m0-.516q.73 0 1.115.641.385.64.385 1.86 0 1.216-.385 1.858-.384.64-1.115.64-.73 0-1.114-.64-.386-.641-.386-1.858 0-1.22.386-1.86.384-.641 1.114-.641M230.88 166.16h4v1h-4zM237.98 165.41q.442.1.69.417.25.316.25.781 0 .713-.464 1.104-.465.39-1.32.39-.285 0-.59-.06c-.304-.06-.41-.1-.626-.179v-.629q.255.158.56.239t.64.08q.579 0 .882-.241.304-.243.304-.704 0-.426-.282-.666t-.785-.24h-.532v-.537h.556q.455 0 .695-.192.242-.192.242-.553 0-.371-.25-.57-.247-.198-.711-.199-.255 0-.545.059a5 5 0 0 0-.637.18v-.58a6 6 0 0 1 .658-.156q.306-.051.578-.051.703 0 1.11.337.41.338.41.911 0 .401-.217.677-.216.276-.616.382M240.11 163.1h2.462v.56h-1.888v1.2a1.6 1.6 0 0 1 .547-.097q.776 0 1.23.45t.453 1.218q0 .791-.466 1.23-.465.44-1.314.439-.291 0-.595-.053a4.5 4.5 0 0 1-.625-.157v-.668a2.37 2.37 0 0 0 1.208.319q.537 0 .85-.299.314-.299.314-.811t-.314-.81q-.313-.3-.85-.3-.252 0-.502.059t-.51.184zM65.673 155.55h2.231v.559h-3v-.559q.364-.391.992-1.05.63-.66.79-.852.306-.357.428-.607.123-.248.123-.488a.83.83 0 0 0-.264-.638q-.265-.247-.69-.247-.3 0-.634.108-.333.108-.713.33v-.672a5 5 0 0 1 .72-.243q.337-.082.616-.082.735 0 1.17.382.438.381.437 1.019 0 .303-.11.575a2.8 2.8 0 0 1-.396.639q-.079.096-.504.551-.422.456-1.196 1.275M70.965 153.41q.443.1.69.417.25.316.25.781 0 .713-.464 1.104-.465.39-1.319.39-.286 0-.59-.06-.305-.06-.627-.179v-.629q.255.158.56.239t.64.08q.579 0 .882-.242.304-.24.304-.703 0-.426-.282-.666t-.785-.24h-.532v-.537h.556q.454 0 .696-.192.24-.192.24-.553 0-.371-.248-.57-.249-.199-.712-.199-.255 0-.545.059a5 5 0 0 0-.637.18v-.58q.35-.104.658-.156.306-.051.578-.051.703 0 1.11.337.41.338.41.911 0 .401-.217.677t-.616.382zM74.408 151.62q-.454 0-.682.496-.228.495-.228 1.49 0 .99.228 1.485.23.496.682.496.457 0 .685-.496.228-.495.228-1.486 0-.995-.228-1.49t-.685-.495m0-.516q.73 0 1.115.641.385.64.385 1.86 0 1.216-.385 1.858-.384.64-1.115.64-.73 0-1.114-.64-.386-.641-.386-1.858 0-1.22.386-1.86.385-.641 1.114-.641M65.673 126.64h2.231v.447h-3v-.447q.364-.314.992-.84.63-.528.79-.682.306-.285.428-.485a.74.74 0 0 0 .123-.39.61.61 0 0 0-.264-.51q-.265-.2-.69-.199-.3 0-.634.087-.333.087-.713.264v-.538q.386-.128.72-.194.337-.066.616-.066.735 0 1.17.306.438.305.437.815 0 .243-.11.46a2.2 2.2 0 0 1-.396.51q-.079.078-.504.442-.422.364-1.196 1.02M70.965 124.93q.443.08.69.334.25.252.25.625 0 .57-.464.883-.465.312-1.319.312-.286 0-.59-.048a5 5 0 0 1-.627-.144v-.503q.255.127.56.191.306.065.64.065.579 0 .882-.194a.63.63 0 0 0 .304-.562.61.61 0 0 0-.282-.533q-.282-.193-.785-.193h-.532v-.429h.556q.454 0 .696-.153a.5.5 0 0 0 .24-.443.51.51 0 0 0-.248-.456q-.249-.16-.712-.16-.255 0-.545.048-.29.046-.637.144v-.465q.35-.082.658-.124a4 4 0 0 1 .578-.04q.703 0 1.11.27.41.269.41.728a.74.74 0 0 1-.217.541q-.217.221-.616.306M73.1 123.09h2.462v.447h-1.888v.961a2 2 0 0 1 .547-.078q.775 0 1.23.36.453.36.453.975 0 .633-.466.984-.465.351-1.314.351-.291 0-.595-.042a6 6 0 0 1-.625-.126v-.534q.28.129.578.192t.63.063q.537 0 .85-.24a.77.77 0 0 0 .314-.648.77.77 0 0 0-.314-.649q-.312-.24-.85-.24a2.7 2.7 0 0 0-1.012.195zM65.673 97.645h2.231v.447h-3v-.447q.364-.314.992-.84.63-.528.79-.682.306-.285.428-.485a.74.74 0 0 0 .123-.39.61.61 0 0 0-.264-.51q-.265-.2-.69-.199-.3 0-.634.087-.333.087-.713.264v-.538a6 6 0 0 1 .72-.194q.337-.066.616-.066.735 0 1.17.306.438.305.437.815 0 .243-.11.46a2.2 2.2 0 0 1-.396.51q-.079.079-.504.442-.422.365-1.196 1.02M70.772 94.563l-1.406 2.135h1.406zm-.146-.471h.7v2.606h.588v.45h-.588v.943h-.554v-.942h-1.858v-.523zM74.408 94.627q-.454 0-.682.496-.228.494-.228 1.49 0 .99.228 1.485.23.496.682.496.457 0 .685-.496.228-.495.228-1.486 0-.995-.228-1.49t-.685-.495m0-.516q.73 0 1.115.641.385.64.385 1.86 0 1.216-.385 1.858-.384.64-1.115.64-.73 0-1.114-.64-.386-.641-.386-1.858 0-1.22.386-1.86.385-.641 1.114-.641M70.772 65.707l-1.406 2.67h1.406zm-.146-.59h.7v3.26h.588v.562h-.588v1.179h-.554v-1.179h-1.858v-.653zM73.1 65.113h2.462v.56h-1.888v1.2a1.6 1.6 0 0 1 .547-.097q.775 0 1.23.45.453.45.453 1.218 0 .792-.466 1.23-.465.44-1.314.439-.291 0-.595-.053a4.5 4.5 0 0 1-.625-.157v-.668a2.37 2.37 0 0 0 1.208.319q.537 0 .85-.299.314-.299.314-.811 0-.511-.314-.81-.312-.3-.85-.3-.252 0-.502.059t-.51.184zM65.673 40.561h2.231v.559h-3v-.559q.364-.392.992-1.05.63-.66.79-.852.306-.358.428-.606.123-.249.123-.489a.83.83 0 0 0-.264-.638q-.265-.247-.69-.247-.3 0-.634.108a3.7 3.7 0 0 0-.713.33v-.672q.386-.16.72-.243.337-.082.616-.082.735 0 1.17.382.438.381.437 1.02 0 .302-.11.574a2.8 2.8 0 0 1-.396.639q-.079.096-.504.551-.422.457-1.196 1.275M69.1 36.115h2.462v.56h-1.888v1.2a1.6 1.6 0 0 1 .547-.097q.776 0 1.23.45t.453 1.218q0 .792-.466 1.23-.465.44-1.313.439-.293 0-.596-.053a4.5 4.5 0 0 1-.625-.157v-.668a2.37 2.37 0 0 0 1.208.319q.537 0 .85-.299.314-.299.314-.811t-.314-.81q-.312-.3-.85-.3-.252 0-.502.059-.249.058-.51.184zM74.408 36.632q-.454 0-.682.496-.228.495-.228 1.49 0 .99.228 1.485.23.496.682.496.457 0 .685-.496.228-.495.228-1.486 0-.995-.228-1.49t-.685-.495m0-.516q.73 0 1.115.64.385.642.385 1.861 0 1.216-.385 1.858-.384.64-1.115.64-.73 0-1.114-.64-.386-.641-.386-1.858 0-1.22.386-1.86.385-.641 1.114-.641M65.673 11.563h2.231v.559h-3v-.559q.364-.391.992-1.05.63-.66.79-.852.306-.358.428-.606.123-.249.123-.489a.83.83 0 0 0-.264-.638q-.265-.247-.69-.247-.3 0-.634.108-.333.109-.713.33v-.672q.386-.16.72-.243.337-.082.616-.082.735 0 1.17.382.438.381.437 1.02 0 .302-.11.574a2.8 2.8 0 0 1-.396.639q-.079.095-.504.551-.422.457-1.196 1.275M69.1 7.118h2.462v.559h-1.888v1.201a1.6 1.6 0 0 1 .547-.098q.776 0 1.23.45t.453 1.218q0 .792-.466 1.231-.465.438-1.313.438-.293 0-.596-.052a4.5 4.5 0 0 1-.625-.158v-.667a2.37 2.37 0 0 0 1.208.318q.537 0 .85-.298.314-.3.314-.812 0-.51-.314-.81-.312-.3-.85-.3-.252 0-.502.06-.249.058-.51.183zM73.1 7.118h2.462v.559h-1.888v1.201a1.6 1.6 0 0 1 .547-.098q.775 0 1.23.45.453.45.453 1.218 0 .792-.466 1.231-.465.438-1.314.438-.291 0-.595-.052a4.5 4.5 0 0 1-.625-.158v-.667a2.37 2.37 0 0 0 1.208.318q.537 0 .85-.298.314-.3.314-.812 0-.51-.314-.81-.312-.3-.85-.3-.252 0-.502.06-.25.058-.51.183z"/></g><path d="m223.23 40.834-14.213.56-.045.004-14.145 1.52-.045.006-14.008 2.467-.045.01-13.807 3.408-.043.011-13.547 4.33-.043.016-13.22 5.235-.042.017-12.836 6.113-.04.022-12.394 6.963-.037.023-11.893 7.783-.035.028-11.338 8.568-.035.027-10.73 9.313-.032.031-10.074 10.014-.032.033-9.37 10.67-.028.036-8.627 11.277-.025.037-7.842 11.834-.024.037-6.695 11.695-.012.02-15.924 30.07-.008.013-.002.002-.082.147-.326.58 1.162.654.1-.178.014.008.304-.574.008-.014.002-.004.317-.562-.014-.008 15.623-29.5 6.68-11.668 7.816-11.797 8.6-11.242 9.341-10.637 10.041-9.983 10.695-9.283 11.301-8.54 11.854-7.759 12.352-6.943 12.797-6.094 13.18-5.217 13.502-4.316 13.766-3.397 13.963-2.46 14.1-1.514 14.168-.559 14.176.397 14.113 1.351 14.002 2.301 40.814 8.272.655.13.263-1.306-.652-.133-40.828-8.273-.023-.004-14.037-2.307-.043-.006-14.16-1.355-.045-.002-14.22-.399h-.044zm.104 2.865-14.02.547-.045.004-13.951 1.492-.043.006-13.818 2.428-.045.01-13.621 3.355-.043.012-13.363 4.265-.041.016L141.3 60.99l-.041.018-12.664 6.025-.041.02-12.225 6.865-.037.023-11.732 7.672-.037.026-11.186 8.447-.036.027-10.586 9.182-.033.03-9.94 9.872-.03.034-9.249 10.52-.029.036-8.514 11.12-.025.038-7.74 11.668-.024.037-6.648 11.609-.01.02-15.31 28.907-.311.59 1.177.623.313-.588 15.303-28.898 6.633-11.582 7.716-11.63 8.485-11.087 9.219-10.486 9.908-9.841 10.553-9.153 11.148-8.418 11.695-7.648 12.186-6.842 12.623-6.004 13-5.14 13.32-4.252 13.576-3.344 13.773-2.42 13.906-1.488 13.975-.547 13.98.398 13.922 1.338 13.809 2.275 41.29 8.37.655.13.264-1.306-.653-.131-41.305-8.371-.023-.004-13.844-2.283-.045-.004-13.965-1.344-.045-.004-14.025-.396h-.045z" class="ucdraw"/><path d="m224.68 79.834-11.535.377-.045.002-11.482 1.158-.045.006-11.379 1.934-.045.007-11.223 2.702-.043.011-11.014 3.453-.043.014-10.758 4.194-.04.017-10.448 4.912-.04.022-10.095 5.61-.039.022-9.693 6.28-.037.025-9.246 6.924-.036.027-8.757 7.535-.034.03-8.23 8.111-.031.031-7.664 8.65-.03.034-7.062 9.15-.026.035-6.43 9.608-.032.052-12.188 22.414-.319.586 1.172.637.318-.586 12.174-22.387 6.4-9.562 7.036-9.114 7.633-8.615 8.199-8.078 8.725-7.506 9.209-6.894 9.656-6.256 10.055-5.588 10.406-4.893 10.715-4.175 10.97-3.44 11.18-2.69 11.333-1.925 11.439-1.153 11.49-.375 11.488.405 11.436 1.181 10.996 1.899 47.742 9.732.652.133.268-1.305-.655-.135-47.752-9.734-.02-.004-11.028-1.902-.045-.006-11.48-1.187-.045-.004-11.533-.407zm.104 2.879-11.34.363-.045.002-11.291 1.131-.045.006-11.188 1.894-.045.008-10.43 2.504-.014-.043-.615.194-.625.148.01.043-10.236 3.203-.043.016-10.578 4.113-.041.02-10.275 4.822-.041.02-9.928 5.51-.037.02-9.533 6.17-.037.026-9.096 6.8-.035.028-8.615 7.4-.033.032-8.098 7.968-.031.034-7.54 8.498-.029.035-6.949 8.99-.027.037-6.328 9.441-.032.053-11.414 20.982-.318.586 1.172.637.318-.586 11.398-20.955 6.3-9.397 6.921-8.957 7.51-8.464 8.064-7.936 8.582-7.371 9.059-6.774 9.496-6.144 9.887-5.486 10.236-4.805 10.535-4.098 10.789-3.377 10.99-2.635 11.145-1.886 11.244-1.125 11.297-.362 11.293.405 11.24 1.17 10.744 1.86 48.28 9.845.653.133.268-1.307-.655-.133-48.29-9.846-.02-.003-10.775-1.866-.043-.006-11.285-1.175-.045-.004-11.342-.407h-.045z" class="ucdraw"/><path d="m223.47 52.834-.848.031.05 1.332.825-.029.63.018.038-1.332-.65-.02zm3.17.092-.041 1.334 1.5.045.039-1.334zm-6.492.033-1.498.057.049 1.332 1.5-.057zm10.465.086-.04 1.332 1.499.045.04-1.332zm-14.438.062-1.498.057.05 1.332 1.499-.057zm18.41.057-.04 1.332 1.5.045.04-1.334zm-22.381.094-1.5.056.05 1.332 1.499-.056zm26.393.135-.13 1.326 1.493.146.129-1.328zm-30.402.138-1.49.157.138 1.326 1.492-.157zm34.359.246-.131 1.328 1.494.145.129-1.326zm-38.312.17-1.49.157.138 1.326 1.492-.157zm42.268.217-.13 1.326 1.493.145.13-1.326zm-46.221.2-1.49.156.138 1.326 1.492-.156zm50.22.197-.218 1.316 1.48.244.22-1.314zm-54.214.244-1.479.258.229 1.312 1.478-.256zm58.137.406-.219 1.316 1.48.245.22-1.315zm-62.053.275-1.479.258.229 1.313 1.478-.256zm65.975.375-.219 1.317 1.48.246.217-1.317zm-69.891.307-1.479.256.229 1.314 1.478-.257zm73.81.346-.216 1.314 1.393.233.074.013.242-1.312-.08-.014-.012-.002zm-77.726.336-1.205.209-.045.007-.268.067.317 1.295.246-.06 1.183-.206zm81.656.402-.264 1.307 1.47.296.264-1.306zm-85.578.469-1.46.355.317 1.295 1.457-.355zm89.475.318-.264 1.307 1.469.299.265-1.307zm-93.338.625-1.457.356.316 1.294 1.457-.355zm97.234.164-.266 1.307 1.47.297.264-1.307zm-101.1.78-1.457.355.316 1.295 1.457-.356zm104.99.007-.264 1.309 1.47.297.264-1.307zm3.896.79-.263 1.306 1.47.297.264-1.307zm-112.77.238-1.43.453.403 1.271 1.43-.453zm116.66.55-.263 1.307 1.468.297.266-1.307zm-120.45.65-1.431.454.404 1.27 1.43-.454zm124.35.137-.265 1.307 1.47.299.266-1.307zm3.897.79-.266 1.306 1.47.297.264-1.307zm-132.04.275-1.43.453.404 1.27 1.43-.454zm135.93.512-.264 1.308 1.47.297.264-1.306zm-139.72.687-.258.082-.041.016-1.145.449.487 1.24 1.125-.441.236-.074zm143.62.102-.264 1.306 1.47.297.264-1.306zm3.896.789-.263 1.306 1.468.297.266-1.306zm-151.26.562-1.396.547.488 1.242 1.396-.548zm-3.699 1.453-1.396.55.488 1.24 1.396-.55zm-3.7 1.453-1.396.55.489 1.24 1.394-.55zm-3.68 1.608-1.358.64.57 1.206 1.356-.641zm-3.595 1.7-1.357.64.57 1.207 1.358-.643zm-3.593 1.698-1.356.643.57 1.205 1.356-.643zm-3.612 1.762-1.31.732.65 1.164 1.309-.732zm-3.47 1.937-1.311.733.65 1.164 1.309-.732zm-3.471 1.94-1.31.73.65 1.165 1.31-.73zm-3.47 1.937-.704.393-.039.023-.582.38.727 1.117.564-.368.684-.38zm-3.4 2.145-1.257.816.727 1.12 1.257-.819zm-3.331 2.166-1.258.818.727 1.118 1.257-.817zm-3.332 2.168-1.258.818.727 1.118 1.257-.819zm-3.305 2.285-1.2.903.802 1.064 1.199-.9zm-3.178 2.389-1.2.9.802 1.067 1.2-.9zm-3.18 2.387-1.198.9.8 1.066 1.2-.9zm-3.204 2.425-1.135.98.87 1.009 1.136-.979zm-3.01 2.596-1.135.98.871 1.01 1.135-.98zm-3.01 2.598-1.135.98.871 1.008 1.135-.978zm-3.01 2.595-.986.854-.033.03-.14.138.937.947.123-.12.97-.839zm-2.92 2.762-1.066 1.053.937.95 1.067-1.056zm-2.826 2.793-1.068 1.055.937.95 1.069-1.056zm-2.828 2.795-1.066 1.055.937.947 1.067-1.055zm-2.799 2.883-.994 1.123 1 .883.992-1.123zm-2.633 2.978-.992 1.123.998.883.994-1.123zm-2.63 2.979-.995 1.123 1 .883.993-1.123zm-2.633 2.978-.192.217-.029.035-.738.96 1.056.814.725-.942.178-.2zm-2.47 3.172-.913 1.19 1.056.812.915-1.187zm-2.423 3.15-.914 1.19 1.057.813.914-1.188zm-2.424 3.151-.914 1.19 1.057.812.914-1.188zm-2.328 3.275-.832 1.248 1.11.739.832-1.248zm-2.205 3.307-.832 1.248 1.11.74.832-1.248zm-2.205 3.307-.832 1.248 1.11.74.831-1.248zm-2.187 3.37-.747 1.302 1.155.664.748-1.3zm-1.981 3.448-.748 1.299 1.156.666.748-1.3zm-1.982 3.445-.748 1.301 1.156.664.748-1.3zm-1.979 3.444c-.266.458-.492.913-.723 1.338l1.174.634c.246-.453.465-.896.701-1.302zm-1.885 3.53-.703 1.323 1.178.625.703-1.324zm-1.863 3.509-.703 1.326 1.178.625.703-1.326zm-1.863 3.512-.703 1.326 1.177.625.703-1.326zm-1.864 3.511-.703 1.324 1.178.625.703-1.324zm-1.863 3.512-.703 1.324 1.178.625.703-1.324zm-1.863 3.51-.703 1.326 1.177.625.704-1.326zm-1.863 3.511-.223.416 1.18.625.22-.416z" class="uchighlight"/><path d="m224.81 70.854-.045 1.332 1.5.05.045-1.333zm-2.52.045-1.497.053.044 1.332 1.5-.053zm6.493.086-.045 1.334 1.5.049.045-1.332zm-10.465.05-1.498.053.045 1.332 1.5-.052zm14.438.083-.045 1.332 1.5.048.045-1.332zm-18.41.054-1.498.051.045 1.334 1.5-.053zm22.426.102-.133 1.326 1.492.15.135-1.326zm-26.436.148-1.493.153.137 1.326 1.492-.152zm30.39.252-.132 1.327 1.492.15.133-1.326zm-34.343.153-1.493.152.135 1.326 1.492-.152zm38.299.246-.133 1.328 1.492.15.133-1.326zm-42.254.158-1.493.152.137 1.328 1.492-.154zm46.254.252-.225 1.314 1.479.252.224-1.314zm-50.24.25-1.479.254.225 1.314 1.478-.254zm54.158.416-.223 1.314 1.479.252.222-1.314zm-58.076.256-1.479.252.225 1.314 1.478-.252zm61.996.41-.225 1.314 1.479.252.224-1.314zm-65.914.26-1.479.254.225 1.314 1.478-.254zm69.732.384a.667.667 0 0 0-.254 1.31l.011.001.12.025.027.004.809.164.265-1.306-.662-.133-.008-.008-.012-.002-.275-.05-.01-.003zm-73.68.368-1.46.353.315 1.295 1.457-.351zm77.084.324-.266 1.306 1.47.297.266-1.306zm-80.947.61-1.46.353.315 1.295 1.457-.352zm84.842.18-.264 1.307 1.469.3.265-1.307zm-88.707.753-1.457.353.312 1.295 1.46-.351zm92.604.039-.266 1.306 1.47.3.266-1.307zm3.894.79-.263 1.308 1.468.298.266-1.306zm-100.39.173-1.431.449.4 1.272 1.432-.45zm104.29.619-.265 1.307 1.47.298.266-1.306zm-108.08.572-1.43.451.399 1.272 1.432-.451zm111.97.219-.263 1.307 1.468.298.266-1.306zm3.897.791-.266 1.307 1.47.298.266-1.306zm-119.66.184-1.432.449.4 1.271 1.432-.449zm123.55.607-.264 1.307 1.469.298.265-1.306zm-127.38.637-1.397.545.485 1.242 1.398-.545zm131.27.154-.266 1.307 1.47.298.264-1.306zm3.894.791-.265 1.307 1.47.298.266-1.306zm-138.87.5-1.396.545.484 1.242 1.398-.545zm142.77.291-.265 1.307 1.47.298.264-1.306zm3.895.791-.266 1.307.037.007.266-1.306zm-150.36.363-1.399.547.485 1.24 1.398-.544zm-3.737 1.485-1.357.638.568 1.206 1.358-.64zm-3.595 1.691-1.358.639.567 1.207 1.357-.639zm-3.598 1.694-1.357.638.568 1.207 1.357-.638zm-3.635 1.716-1.31.729.648 1.166 1.31-.729zm-3.474 1.932-1.311.728.648 1.166 1.311-.728zm-3.475 1.932-1.31.728.648 1.166 1.31-.728zm-3.473 1.931-.172.094-.037.023-1.095.711.724 1.12 1.076-.7.15-.082zm-3.38 2.174-1.26.816.726 1.12 1.258-.817zm-3.337 2.162-1.257.816.724 1.12 1.258-.817zm-3.335 2.162-.38.246-.036.028-.838.626.799 1.069.82-.615.361-.235zm-3.237 2.385-1.2.898.8 1.067 1.2-.899zm-3.181 2.38-1.202.901.8 1.067 1.2-.899zm-3.182 2.384-.566.423-.036.03-.601.515.87 1.012.583-.502.549-.41zm-3.078 2.584-1.139.976.87 1.012 1.138-.979zm-3.014 2.591-1.138.977.87 1.012 1.137-.979zm-3.013 2.592-.73.627-.034.031-.383.377.936.95.367-.362.713-.613zm-2.91 2.772-1.069 1.054.937.95 1.069-1.053zm-2.83 2.79-1.07 1.053.936.95 1.069-1.053zm-2.833 2.792-.865.851-.031.034-.19.212.998.885.176-.197.848-.836zm-2.726 2.949-.994 1.123.998.885.994-1.123zm-2.637 2.977-.994 1.12.998.885.994-1.123zm-2.637 2.974-.972 1.098-.028.035-.021.025 1.056.815.006-.008.957-1.08zm-2.533 3.117-.918 1.188 1.057.814.916-1.187zm-2.43 3.147-.916 1.187 1.055.815.916-1.188zm-2.43 3.146-.915 1.188 1.054.814.918-1.187zm-2.33 3.272-.835 1.248 1.11.74.833-1.246zm-2.21 3.305-.834 1.246 1.107.742.834-1.246zm-2.211 3.302-.834 1.248 1.107.74.834-1.246zm-2.117 3.416-.746 1.303 1.158.662.744-1.3zm-1.977 3.45-.746 1.302 1.158.662.746-1.3zm-1.975 3.449-.746 1.302 1.157.662.746-1.3zm-1.658 2.939-.701 1.326 1.178.623.7-1.326zm-1.86 3.514-.7 1.326 1.18.623.7-1.326zm-1.857 3.513-.7 1.327 1.179.623.701-1.327zm-1.857 3.514-.701 1.326 1.178.623.7-1.326zm-1.86 3.516-.7 1.324 1.18.625.7-1.326z" class="ucdraw"/><g class="uchighlight"><path d="m49.219 26.145-.53 1.225 1.378.593.529-1.222zm3.648 1.576-.529 1.225 1.377.595.53-1.224zm3.649 1.578-.53 1.223 1.378.596.529-1.225zm3.648 1.576-.527 1.225 1.377.594.527-1.223zm3.65 1.577-.529 1.224 1.377.594.53-1.223zm3.649 1.576-.53 1.225 1.378.595.529-1.224zm3.648 1.578-.529 1.223 1.377.595.53-1.224zm3.649 1.576-.528 1.225L75.61 39l.528-1.223zm3.65 1.576-.53 1.225 1.378.596.53-1.225zm3.649 1.578-.53 1.223 1.377.596.53-1.225zm3.648 1.577-.53 1.224 1.378.594.529-1.223zm3.648 1.576-.529 1.225 1.377.593.53-1.222zm3.65 1.576-.529 1.225 1.377.595.53-1.224zm3.65 1.578-.53 1.223 1.377.596.53-1.225zm3.648 1.576-.53 1.225 1.377.594.53-1.223zm3.648 1.577-.53 1.224 1.378.596.529-1.225zm3.648 1.578-.527 1.222 1.377.596.527-1.224zm3.65 1.576-.529 1.224 1.377.594.53-1.222zm3.65 1.576-.53 1.225 1.377.593.53-1.222zm3.648 1.576-.53 1.225 1.377.596.53-1.225zm3.648 1.578-.527 1.223 1.377.596.527-1.225zm3.65 1.577-.529 1.224 1.377.594.53-1.223zm3.649 1.576-.53 1.224 1.377.596.53-1.224zm3.648 1.578-.53 1.223 1.378.595.53-1.224zm3.649 1.576-.528 1.225 1.377.593.528-1.222zm3.65 1.576-.53 1.225 1.378.594.529-1.223zm3.648 1.576-.529 1.225 1.377.596.53-1.225zm3.649 1.579-.53 1.222 1.377.596.53-1.225zm3.648 1.576-.527 1.224 1.377.594.527-1.223z"/><path d="m151.89 71.234-.598 1.375 1.223.531.598-1.375zm-1.584 3.647-.598 1.374 1.223.532.598-1.375zm-1.584 3.644-.598 1.377 1.223.531.598-1.377zm-1.584 3.646-.598 1.375 1.223.532.598-1.375zm-1.584 3.647-.598 1.375 1.223.531.598-1.375zm-1.584 3.645-.598 1.376 1.225.532.598-1.377zm-1.584 3.646-.598 1.375 1.225.531.598-1.375zm-1.582 3.647-.598 1.374 1.223.532.598-1.375zm-1.584 3.644-.598 1.377 1.223.531.598-1.377zm-1.584 3.646-.598 1.375 1.223.532.598-1.375zm-1.584 3.647-.598 1.375 1.223.531.598-1.375zm-1.584 3.645-.598 1.376 1.223.532.598-1.377zm-1.584 3.646-.598 1.375 1.223.531.598-1.375zm-1.584 3.647-.598 1.374 1.223.532.598-1.375zm-1.584 3.644-.598 1.377 1.223.531.598-1.377zm-1.584 3.646-.598 1.375 1.223.532.598-1.375zm-1.584 3.647-.598 1.375 1.225.531.598-1.375zm-1.582 3.644-.598 1.377 1.223.532.598-1.377zm-1.584 3.647-.598 1.377 1.223.531.598-1.377zm-1.584 3.646-.598 1.375 1.223.532.598-1.375zm-1.584 3.645-.598 1.377 1.223.531.598-1.377zm-1.584 3.646-.598 1.377 1.223.532.598-1.377zm-1.584 3.647-.598 1.375 1.223.531.598-1.375zm-1.584 3.644-.598 1.377 1.223.532.598-1.377zm-1.584 3.647-.598 1.377 1.223.531.598-1.377zm-1.584 3.646-.598 1.375 1.223.532.598-1.375zm-1.584 3.645-.598 1.377 1.223.531.598-1.377zm-1.584 3.646-.598 1.377 1.225.532.598-1.377zm-1.582 3.647-.598 1.375 1.223.531.598-1.375z"/><path d="M157.6 65.863a.67.67 0 0 0-.559.076l-10.779 6.922-.521.078.035.233-.2.127.284.443.078.516.233-.036.127.2.437-.284 12.863-1.937a.667.667 0 0 0 .516-.916l-2.098-5.041a.67.67 0 0 0-.416-.381zm-.508 1.627 1.463 3.518-9.072 1.367z"/></g><path d="M182.07 74.215a.67.67 0 0 0-.588.102l-10.777 7.908-.5.086.043.25-.205.15.303.412.086.5.25-.043.15.205.412-.302 12.844-2.21a.667.667 0 0 0 .514-.886l-2.098-5.762a.67.67 0 0 0-.433-.41zm-.516 1.701 1.52 4.178-9.424 1.623z" class="ucdraw"/><path d="m162.7 60.635-.686 1.648 3.625 9.432-22.578 8.92-3.825-9.307 22.862-9.09-24.455 8.464 4.705 11.68 25.022-9.915z" class="uchighlight"/></svg>
diff --git a/subprojects/docs/src/components/UseCases/uc1.svg.license b/subprojects/docs/src/components/UseCases/uc1.svg.license
new file mode 100644
index 00000000..15aca74d
--- /dev/null
+++ b/subprojects/docs/src/components/UseCases/uc1.svg.license
@@ -0,0 +1,4 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
4
diff --git a/subprojects/docs/src/components/UseCases/uc2.svg b/subprojects/docs/src/components/UseCases/uc2.svg
new file mode 100644
index 00000000..8aec8169
--- /dev/null
+++ b/subprojects/docs/src/components/UseCases/uc2.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="328" height="189" viewBox="0 0 328 189"><path d="M90.592 52.826c-3.75 0-6.793 3.097-6.793 6.889V86.27c0 3.791 3.043 6.888 6.793 6.888h45.746c3.75 0 6.793-3.097 6.793-6.888V59.715c0-3.792-3.043-6.889-6.793-6.889zm0 1.332h45.746c3.018 0 5.46 2.474 5.46 5.557V86.27c0 3.082-2.442 5.556-5.46 5.556H90.592c-3.018 0-5.46-2.474-5.46-5.556V59.715c0-3.083 2.442-5.557 5.46-5.557" class="ucdraw"/><path d="M95.075 61.702h.749v6.887h-.749zm3.856 0h.748v6.887h-.748zm3.855 0h.749v6.887h-.749zm3.856 0h.748v6.887h-.748zm3.855 0h.749v6.887h-.749zm3.856 0h.748v6.887h-.748zm3.855 0h.749v6.887h-.749zm3.856 0h.748v6.887h-.748zm3.855 0h.749v6.887h-.749zm3.856 0h.748v6.887h-.748zM95.075 69.702h.749v6.887h-.749zm3.856 0h.748v6.887h-.748zm3.855 0h.749v6.887h-.749zm3.856 0h.748v6.887h-.748zm3.855 0h.749v6.887h-.749zm3.856 0h.748v6.887h-.748zm3.855 0h.749v6.887h-.749zm3.856 0h.748v6.887h-.748zm3.855 0h.749v6.887h-.749zm3.856 0h.748v6.887h-.748zM95.097 77.876h.749v6.887h-.749zm3.856 0h.748v6.887h-.748zm3.855 0h.749v6.887h-.749zm3.856 0h.748v6.887h-.748zm3.855 0h.749v6.887h-.749zm3.856 0h.748v6.887h-.748zm3.855 0h.749v6.887h-.749zm3.856 0h.748v6.887h-.748zm3.855 0h.749v6.887h-.749zm3.856 0h.748v6.887h-.748zM94.559 106.83c-3.734 0-6.76 3.099-6.76 6.889v26.555c0 3.79 3.026 6.888 6.76 6.888h26.812c3.734 0 6.76-3.099 6.76-6.888v-26.555c0-3.79-3.026-6.889-6.76-6.889zm0 1.332h26.812c2.998 0 5.428 2.472 5.428 5.557v26.555c0 3.084-2.43 5.556-5.428 5.556H94.559c-2.998 0-5.428-2.472-5.428-5.556v-26.555c0-3.085 2.43-5.557 5.428-5.557M172.71 107.83c-3.81 0-6.918 3.09-6.918 6.889v26.555c0 3.798 3.107 6.888 6.918 6.888h27.5c3.81 0 6.916-3.09 6.916-6.888v-26.555c0-3.8-3.105-6.889-6.916-6.889zm0 1.332h27.5c3.093 0 5.582 2.481 5.582 5.557v26.555c0 3.075-2.489 5.556-5.582 5.556h-27.5c-3.093 0-5.584-2.481-5.584-5.556v-26.555c0-3.076 2.49-5.557 5.584-5.557" class="ucdraw"/><path d="M178.27 124.34v-.977h2.098v.977zm2.574 0v-.977h2.098v.977zm2.574 0v-.977h2.098v.977zm2.575 0v-.977h2.097v.977zm2.574 0v-.977h2.097v.977zm2.574 0v-.977h2.098v.977zm2.574 0v-.977h2.098v.977zM178.27 133.34v-.977h2.098v.977zm2.574 0v-.977h2.098v.977zm2.574 0v-.977h2.098v.977zm2.575 0v-.977h2.097v.977zm2.574 0v-.977h2.097v.977zm2.574 0v-.977h2.098v.977zm2.574 0v-.977h2.098v.977zM172.59 52.826c-3.747 0-6.79 3.097-6.79 6.889V86.27c0 3.791 3.043 6.888 6.79 6.888h27.756c3.747 0 6.787-3.097 6.787-6.888V59.715c0-3.792-3.04-6.889-6.787-6.889zm0 1.332h27.756c3.015 0 5.455 2.474 5.455 5.557V86.27c0 3.082-2.44 5.556-5.455 5.556H172.59c-3.015 0-5.457-2.474-5.457-5.556V59.715c0-3.083 2.442-5.557 5.457-5.557" class="ucdraw"/><path d="M176.67 69.344v-.977h2.098v.977zm2.574 0v-.977h2.098v.977zm2.574 0v-.977h2.098v.977zm2.575 0v-.977h2.097v.977zm2.574 0v-.977h2.097v.977zm2.574 0v-.977h2.098v.977zm2.574 0v-.977h2.098v.977zm2.574 0v-.977h2.098v.977zM176.67 78.344v-.977h2.098v.977zm2.574 0v-.977h2.098v.977zm2.574 0v-.977h2.098v.977zm2.575 0v-.977h2.097v.977zm2.574 0v-.977h2.097v.977zm2.574 0v-.977h2.098v.977zm2.574 0v-.977h2.098v.977zm2.574 0v-.977h2.098v.977z" class="ucdraw"/><g class="ucdraw"><path d="M70.967 167.99c0 4.354 3.463 8 7.775 8h169.45c4.313 0 7.778-3.645 7.778-8h-4c0 2.273-1.71 4-3.778 4H78.742c-2.067 0-3.775-1.726-3.775-4zM78.742 15.992c-4.313 0-7.775 3.646-7.775 8h4c0-2.274 1.708-4 3.775-4h169.45c2.067 0 3.777 1.727 3.777 4h4c0-4.355-3.464-8-7.777-8z"/><path d="M79.242 17.826c-3.572 0-6.441 3.068-6.441 6.791v143.75c0 3.724 2.869 6.793 6.441 6.793h169.45c3.573 0 6.443-3.07 6.443-6.793V24.617c0-3.723-2.87-6.791-6.443-6.791zm0 1.332h169.45c2.809 0 5.111 2.416 5.111 5.459v143.75c0 3.044-2.302 5.46-5.111 5.46H79.242c-2.808 0-5.11-2.416-5.11-5.46V24.617c0-3.043 2.302-5.459 5.11-5.459"/><path d="M77.803 42.826v112.33h80.334V42.826zm1.334 1.334h77.666v109.67H79.137z"/><path d="M83.131 86.492c0 4.05 3.371 7.334 7.46 7.334h45.747c4.09 0 7.46-3.284 7.46-7.334h-2.667c0 2.578-2.115 4.666-4.793 4.666H90.592c-2.679 0-4.793-2.088-4.793-4.666zM90.592 52.158c-4.207 0-7.46 3.835-7.46 8.332h2.667c0-3.235 2.232-5.666 4.793-5.666h45.746c2.56 0 4.793 2.43 4.793 5.666h2.668c0-4.497-3.254-8.332-7.46-8.332zM87.131 140.49c0 4.046 3.352 7.334 7.428 7.334h26.812c4.075 0 7.427-3.288 7.427-7.334h-2.668c0 2.582-2.103 4.666-4.76 4.666H94.56c-2.657 0-4.76-2.084-4.76-4.666zM94.559 106.16c-4.076 0-7.428 3.29-7.428 7.334H89.8c0-2.581 2.104-4.666 4.76-4.666h26.812c2.657 0 4.76 2.085 4.76 4.666h2.668c0-4.045-3.352-7.334-7.428-7.334zM136.96 106.83c-3.398 0-6.168 2.768-6.168 6.166 0 3.397 2.77 6.166 6.168 6.166a6.176 6.176 0 0 0 6.166-6.166 6.176 6.176 0 0 0-6.166-6.166m0 1.332a4.823 4.823 0 0 1 4.832 4.834 4.824 4.824 0 0 1-4.832 4.834 4.824 4.824 0 0 1-4.834-4.834 4.824 4.824 0 0 1 4.834-4.834M156.8 42.826v112.33h94.334V42.826zm1.334 1.334H249.8v109.67h-91.666z"/></g><path d="M165.13 86.492c0 4.05 3.37 7.334 7.457 7.334h27.756c4.087 0 7.455-3.285 7.455-7.334h-2.668c0 2.579-2.112 4.666-4.787 4.666h-27.756c-2.675 0-4.79-2.087-4.79-4.666zM172.59 52.158c-4.205 0-7.457 3.836-7.457 8.332h2.668c0-3.236 2.232-5.666 4.79-5.666h27.755c2.557 0 4.787 2.43 4.787 5.666h2.668c0-4.496-3.25-8.332-7.455-8.332z" class="uchighlight"/><path d="M165.13 140.49c0 4.51 3.325 8.334 7.584 8.334h27.5c4.259 0 7.582-3.825 7.582-8.334h-2.666c0 3.223-2.271 5.668-4.916 5.668h-27.5c-2.645 0-4.918-2.445-4.918-5.668zM172.71 107.16c-4.144 0-7.584 3.27-7.584 7.334h2.666c0-2.562 2.158-4.666 4.918-4.666h27.5c2.76 0 4.916 2.104 4.916 4.666h2.666c0-4.064-3.438-7.334-7.582-7.334z" class="ucdraw"/><path d="m235.3 61.861-.121.014-.154.021-.153.026-.15.029-.15.031-.149.037-.148.04-.29.09-.126.044.443 1.258.111-.04.112-.036.115-.034.115-.03.115-.028.118-.026.119-.023.119-.02.12-.017.106-.012zm1.498.021-.184 1.32.086.012.12.02.119.023.117.026.115.027.115.031.114.034.113.037.111.039.111.043.006.002.504-1.235-.021-.007-.14-.055-.143-.05-.145-.046-.144-.045-.149-.039-.148-.037-.15-.031-.151-.03-.152-.025zm-4.27.987-.013.01-.121.084-.121.087-.118.09-.115.094-.113.094-.111.1-.108.099-.105.104-.104.105-.101.11-.006.007.996.885.076-.082.164-.164.086-.078.086-.076.09-.077.09-.072.091-.07.094-.069.096-.066.002-.002zm7.026.11-.787 1.075.088.065.091.07.09.072.09.077.086.076.086.078.082.082.082.084.078.084.078.086.014.017 1.017-.86-.023-.03-.098-.11-.101-.109-.104-.105-.105-.104-.11-.1-.109-.1-.113-.093-.115-.094-.118-.09zm-9.024 2.091-.058.113-.067.135-.064.135-.06.138-.057.14-.053.14-.05.142-.048.145-.043.146-.039.147-.004.012 1.295.314v.006l.032-.115.033-.114.037-.113.039-.111.04-.112.046-.107.047-.107.05-.108.051-.105.053-.098zm10.945.154-1.195.594.04.078.05.108.047.107.045.107.04.112.04.111.037.113.033.114.031.115.03.117.004.016 1.302-.283-.008-.034-.037-.148-.039-.147-.043-.146-.047-.145-.05-.142-.053-.14-.057-.14-.06-.138-.065-.135zm-11.678 2.707-.002.06.002.159.006.158.01.156.014.157.02.156.021.152.026.153.027.152.033.15.008.036 1.297-.317-.006-.02-.025-.117-.043-.238-.016-.12-.014-.122-.011-.121-.008-.123-.004-.125-.002-.125v-.045zm10.998.053-.002.133-.004.125-.008.123-.011.121-.014.121-.016.121-.019.12-.023.118-.026.118-.017.07 1.294.316.022-.086.033-.15.03-.152.025-.153.021-.152.018-.156.014-.157.01-.156.006-.158.001-.15zm-9.134 2.213-1.18.623.059.111.074.131.074.127.08.127.082.123.084.123.088.12.09.116.092.116.095.113.022.023.996-.884-.01-.012-.074-.088-.145-.184-.068-.093-.067-.096-.125-.195-.117-.203zm8.578.047-.026.05-.056.102-.06.102-.126.195-.066.096-.069.093-.144.184-.074.088-.045.05.996.886.056-.063.096-.113.092-.116.09-.117.088-.119.084-.123.082-.123.08-.127.074-.127.074-.13.033-.065zm-7.051 1.705-.76 1.096.086.06.123.082.127.078.129.076.129.073.133.07.133.066.136.063.137.06.14.057.044.018.474-1.248-.03-.01-.108-.045-.108-.047-.105-.049-.106-.052-.103-.055-.102-.057-.2-.12-.097-.065zm5.506.031-.03.02-.097.064-.2.121-.1.057-.104.055-.106.052-.105.05-.108.046-.11.045-.077.03.474 1.245.092-.035.14-.057.138-.06.134-.063.135-.066.133-.07.129-.073.129-.076.125-.078.125-.082.043-.03zm-3.348.807-.15 1.324.137.016.156.013.156.01.158.006.16.002.159-.002.158-.006.156-.01.156-.013.084-.01-.15-1.324-.068.007-.123.01-.123.008-.124.006-.125.002-.125-.002-.125-.006-.123-.008-.123-.01zM236.12 69.712h-.395v-2.776l.005-.19.012-.179q-.076.079-.142.135l-.163.134-.408.327-.213-.276.967-.744h.337z" class="uchighlight"/><g class="ucdraw"><path d="M95.082 93.492v14h.748v-14z"/><path d="m92.902 101.12 3.063 7.348 3.06-7.348zm1.121.748h3.881l-1.94 4.654z"/><path d="m92.902 101.12 3.063 7.348 3.06-7.348zm1.121.748h3.881l-1.94 4.654zM142.92 61.49v.748h10.692v-.748z"/><path d="M152.87 61.494v20h.748v-20z"/><path d="M144.53 81.115v.748h9.077v-.748z"/><path d="m148.84 77.887-6.21 3.106 6.21 3.105zm-.748 1.21v3.79l-3.791-1.894z"/><path d="m148.84 77.887-6.21 3.106 6.21 3.105zm-.748 1.21v3.79l-3.791-1.894zM174.08 93.492v15h.748v-15z"/><path d="m170.9 102.12 3.063 7.348 3.06-7.348zm1.121.748h3.881l-1.94 4.654z"/><path d="m170.9 102.12 3.063 7.348 3.06-7.348zm1.121.748h3.881l-1.94 4.654z"/></g><g class="uchighlight"><path d="M209.71 66.859v1.26h.09v-1.26zm1.422 0v1.26h1.334v-1.26zm2.668 0v1.26h1.332v-1.26zm2.666 0v1.26h1.334v-1.26zm2.666 0v1.26h1.334v-1.26zm2.668 0v1.26h1.332v-1.26zm2.666 0v1.26h1.334v-1.26zm2.666 0v1.26h1.334v-1.26z"/><path d="m213.84 64.932-7.348 3.06 7.348 3.061zm-.748 1.121v3.879l-4.652-1.94z"/><path d="m213.84 64.932-7.348 3.06 7.348 3.061zm-.748 1.121v3.879l-4.652-1.94z"/><path d="m213.84 64.932-7.348 3.06 7.348 3.061zm-.748 1.121v3.879l-4.652-1.94z"/></g><g class="uchighlight"><path d="m207.46 67.992 6-2.5v5z"/><path d="m213.84 64.932-7.348 3.06 7.348 3.061zm-.748 1.121v3.879l-4.652-1.94z"/></g><path d="M173.79 93.492v15h1.332v-15z" class="ucdraw"/><path d="m170.9 102.12 3.063 7.348 3.06-7.348zm1.121.748h3.881l-1.94 4.654z" class="ucdraw"/><path d="m173.96 108.49-2.5-6h5z" class="ucdraw"/><path d="m170.9 102.12 3.063 7.348 3.06-7.348zm1.121.748h3.881l-1.94 4.654zM152.87 61.494v20h.748v-20zM148.84 77.887l-6.21 3.106 6.21 3.105zm-.748 1.21v3.79l-3.791-1.894z" class="ucdraw"/><path d="m143.47 80.992 5-2.5v5z" class="ucdraw"/><path d="m148.84 77.887-6.21 3.106 6.21 3.105zm-.748 1.21v3.79l-3.791-1.894zM94.791 93.492v14h1.332v-14z" class="ucdraw"/><path d="m92.902 101.12 3.063 7.348 3.06-7.348zm1.121.748h3.881l-1.94 4.654z" class="ucdraw"/><path d="m95.964 107.49-2.5-6h5z" class="ucdraw"/><path d="m92.902 101.12 3.063 7.348 3.06-7.348zm1.121.748h3.881l-1.94 4.654z" class="ucdraw"/><g class="uchighlight"><path d="m235.3 74.861-.121.014-.154.021-.153.026-.15.029-.15.031-.149.037-.148.04-.29.09-.126.044.443 1.258.111-.04.112-.036.115-.034.115-.03.115-.028.118-.026.119-.023.119-.02.12-.017.106-.012zm1.498.021-.184 1.32.086.013.12.019.119.023.117.026.115.027.115.031.114.034.113.037.111.039.111.043.006.002.504-1.235-.021-.007-.14-.055-.143-.05-.145-.046-.144-.045-.149-.039-.148-.037-.15-.031-.151-.03-.152-.025zm-4.27.987-.013.01-.121.084-.121.087-.118.09-.115.094-.113.094-.111.1-.108.099-.105.104-.104.105-.101.11-.006.007.996.885.076-.082.164-.164.086-.078.086-.076.09-.077.09-.072.091-.07.094-.069.096-.066.002-.002zm7.026.11-.787 1.075.088.065.091.07.09.072.09.077.086.076.086.078.082.082.082.084.078.084.078.086.014.017 1.017-.86-.023-.03-.098-.11-.101-.109-.104-.105-.105-.104-.11-.1-.109-.1-.113-.093-.115-.094-.118-.09zm-9.024 2.091-.058.113-.067.135-.064.135-.06.138-.057.14-.053.14-.05.142-.048.145-.043.146-.039.147-.004.012 1.295.314v.006l.032-.115.033-.114.037-.113.039-.111.04-.112.046-.107.047-.107.05-.108.051-.105.053-.098zm10.945.154-1.195.594.04.078.05.108.047.107.045.107.04.112.04.111.037.113.033.114.031.115.03.117.004.016 1.302-.283-.008-.034-.037-.148-.039-.147-.043-.146-.047-.145-.05-.142-.053-.14-.057-.14-.06-.138-.065-.135zm-11.678 2.707-.002.06.002.159.006.158.01.156.014.157.02.156.021.152.026.153.027.152.033.15.008.036 1.297-.317-.006-.02-.025-.117-.043-.238-.016-.12-.014-.122-.011-.121-.008-.123-.004-.125-.002-.125v-.045zm10.998.053-.002.133-.004.125-.008.123-.011.121-.014.121-.016.121-.019.12-.023.118-.026.118-.017.07 1.294.316.022-.086.033-.15.03-.152.025-.153.021-.152.018-.156.014-.157.01-.156.006-.158.001-.15zm-9.134 2.213-1.18.623.059.111.074.131.074.127.08.127.082.123.084.123.088.12.09.116.092.116.095.113.022.023.996-.884-.01-.012-.074-.088-.145-.184-.068-.093-.067-.096-.125-.195-.117-.203zm8.578.047-.026.05-.056.102-.06.102-.126.195-.066.096-.069.093-.144.184-.074.088-.045.05.996.886.056-.063.096-.113.092-.116.09-.117.088-.119.084-.123.082-.123.08-.127.074-.127.074-.13.033-.065zm-7.051 1.705-.76 1.096.086.06.123.082.127.078.129.076.129.073.133.07.133.066.136.063.137.06.14.057.044.018.474-1.248-.03-.01-.108-.045-.108-.047-.105-.049-.106-.052-.103-.055-.102-.057-.2-.12-.097-.065zm5.506.031-.03.02-.097.064-.2.121-.1.057-.104.055-.106.052-.105.05-.108.046-.11.045-.077.03.474 1.245.092-.035.14-.057.138-.06.134-.063.135-.066.133-.07.129-.073.129-.076.125-.078.125-.082.043-.03zm-3.348.807-.15 1.324.137.016.156.013.156.01.158.006.16.002.159-.002.158-.006.156-.01.156-.013.084-.01-.15-1.324-.068.007-.123.01-.123.008-.124.006-.125.002-.125-.002-.125-.006-.123-.008-.123-.01zM237.02 82.653h-2.339v-.34l.955-.969q.266-.268.446-.478.184-.21.279-.413.095-.205.095-.449 0-.303-.18-.461-.179-.162-.472-.162-.256 0-.454.088t-.405.25l-.218-.274q.142-.12.308-.212.169-.093.359-.147.193-.054.41-.054.33 0 .569.115t.369.327q.131.213.131.506 0 .283-.112.527-.112.242-.315.481-.202.237-.473.503l-.777.774v.017h1.824zM212.75 79.895v1.19h.717v-1.19zm2.05 0v1.19h1.333v-1.19zm2.667 0v1.19h1.334v-1.19zm2.666 0v1.19h1.334v-1.19zm2.668 0v1.19h1.332v-1.19zm2.666 0v1.19h1.334v-1.19zm2.666 0v1.19h1.334v-1.19z"/><path d="m212.82 77.561-6.21 3.106 6.21 3.105zm-.748 1.209v3.793l-3.791-1.896z"/><path d="m212.82 77.561-6.21 3.106 6.21 3.105zm-.748 1.209v3.793l-3.791-1.896z"/><path d="m212.82 77.561-6.21 3.106 6.21 3.105zm-.748 1.209v3.793l-3.791-1.896z"/></g><g class="uchighlight"><path d="m207.45 80.666 5-2.5v5z"/><path d="m212.82 77.561-6.21 3.106 6.21 3.105zm-.748 1.209v3.793l-3.791-1.896z"/></g><g class="ucdraw"><path d="M107.08 93.492v14h.748v-14z"/><path d="m103.9 101.12 3.063 7.348 3.06-7.348zm1.121.748h3.881l-1.94 4.654z"/><path d="m103.9 101.12 3.063 7.348 3.06-7.348zm1.121.748h3.881l-1.94 4.654z"/><path d="M106.79 93.492v14h1.332v-14z"/><path d="m103.9 101.12 3.063 7.348 3.06-7.348zm1.121.748h3.881l-1.94 4.654z"/></g><path d="m106.96 107.49-2.5-6h5z" class="ucdraw"/><path d="m103.9 101.12 3.063 7.348 3.06-7.348zm1.121.748h3.881l-1.94 4.654z" class="ucdraw"/><g class="ucdraw"><path d="M118.08 93.492v14h.748v-14z"/><path d="m114.9 101.12 3.063 7.348 3.06-7.348zm1.121.748h3.881l-1.94 4.654z"/><path d="m114.9 101.12 3.063 7.348 3.06-7.348zm1.121.748h3.881l-1.94 4.654z"/><path d="M117.79 93.492v14h1.332v-14z"/><path d="m114.9 101.12 3.063 7.348 3.06-7.348zm1.121.748h3.881l-1.94 4.654z"/></g><path d="m117.96 107.49-2.5-6h5z" class="ucdraw"/><path d="m114.9 101.12 3.063 7.348 3.06-7.348zm1.121.748h3.881l-1.94 4.654z" class="ucdraw"/><g class="ucdraw"><path d="M137.08 92.508v15h.748v-15z"/><path d="m136.96 92.535.338 1.117h-.684zm0 0-.346.83-2.716 6.518h6.123zm.34 1.125 1.658 5.475h-3.94z"/><path d="m136.96 92.535.338 1.117h-.684zm0 0-.346.83-2.716 6.518h6.123zm.34 1.125 1.658 5.475h-3.94z"/><path d="M136.79 92.508v15h1.332v-15z"/><path d="m136.96 92.535.338 1.117h-.684zm0 0-.346.83-2.716 6.518h6.123zm.34 1.125 1.658 5.475h-3.94z"/></g><path d="m136.96 93.508-2.5 6h5z" class="ucdraw"/><path d="m136.96 92.535.338 1.117h-.684zm0 0-.346.83-2.716 6.518h6.123zm.34 1.125 1.658 5.475h-3.94z" class="ucdraw"/></svg>
diff --git a/subprojects/docs/src/components/UseCases/uc2.svg.license b/subprojects/docs/src/components/UseCases/uc2.svg.license
new file mode 100644
index 00000000..15aca74d
--- /dev/null
+++ b/subprojects/docs/src/components/UseCases/uc2.svg.license
@@ -0,0 +1,4 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
4
diff --git a/subprojects/docs/src/components/UseCases/uc3.svg b/subprojects/docs/src/components/UseCases/uc3.svg
new file mode 100644
index 00000000..cd463317
--- /dev/null
+++ b/subprojects/docs/src/components/UseCases/uc3.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="328" height="189" viewBox="0 0 328 189"><g class="ucdraw"><path d="M45.86 158.243a.67.67 0 0 0-.402.314l-5.26 9.301a.667.667 0 0 0 .252.908.667.667 0 0 0 .908-.251l5.26-9.301a.667.667 0 0 0-.252-.908.67.67 0 0 0-.506-.063"/><path d="M45.958 158.243a.67.67 0 0 0-.506.06.667.667 0 0 0-.256.909l5.223 9.3a.667.667 0 0 0 .908.256.667.667 0 0 0 .254-.908l-5.22-9.3a.67.67 0 0 0-.403-.317M46.27 140.213c-3.088 0-5.923.478-8.174 1.295s-3.957 1.95-4.668 3.478l-.031.065-.227.988-.013-.002-.026.18-.039.164.006.025.014-.072v.06c0 2.609 1.56 4.928 3.953 6.551s5.639 2.6 9.213 2.6 6.82-.976 9.213-2.6c2.392-1.623 3.953-3.942 3.953-6.55v-.053l-.008-.051-.092-.582h-.064a4 4 0 0 0-1.016-1.936c-.716-.745-1.703-1.372-2.89-1.894-2.376-1.045-5.575-1.666-9.104-1.666m0 2.242c3.055 0 5.821.513 7.762 1.303.97.395 1.73.86 2.217 1.328s.685.9.685 1.316-.2.847-.685 1.315-1.247.935-2.217 1.33c-1.941.79-4.707 1.303-7.762 1.303s-5.817-.513-7.758-1.303c-.97-.395-1.73-.862-2.217-1.33s-.687-.899-.687-1.315.202-.848.687-1.316 1.247-.933 2.217-1.328c1.94-.79 4.703-1.303 7.758-1.303m-11.809 3.906.002.01-.012.051v-.004zm23.137 1.752c-.49 1.392-1.342 2.702-2.855 3.729-2.132 1.447-5.136 2.371-8.465 2.371s-6.333-.924-8.465-2.371c-1.503-1.02-2.354-2.319-2.848-3.7.135.18.237.374.405.536.66.636 1.558 1.164 2.638 1.603 2.16.88 5.06 1.4 8.262 1.4s6.104-.52 8.264-1.4c1.08-.44 1.978-.967 2.638-1.603.177-.17.286-.375.426-.565"/><path d="M45.778 134.213a.667.667 0 0 0-.666.666v14.449a.667.667 0 0 0 .666.668.667.667 0 0 0 .666-.668v-14.449a.667.667 0 0 0-.666-.666M50.202 154.253l-4.844 3.465a.59.59 0 0 0-.137.824.59.59 0 0 0 .825.137l4.845-3.465a.59.59 0 0 0 .137-.824.59.59 0 0 0-.826-.137"/><path d="M41.653 154.033a.595.595 0 0 0-.836.096.595.595 0 0 0 .096.836l4.654 3.689a.595.595 0 0 0 .834-.098.595.595 0 0 0-.096-.836z"/></g><g class="ucdraw"><path d="M55 64v16h16V64zm1 1h14v14H56z"/><path d="M62.539 64.5v15.117h1V64.5z"/><path d="M55.5 72v1h15.117v-1zM36.237 63.422v8.156h8.156v-8.156zm.51.51h7.136v7.136h-7.136z"/><path d="M40.08 63.677v7.706h.51v-7.706z"/><path d="M36.492 67.5v.51h7.706v-.51zM22.466 51.849v8.156h8.156v-8.156zm.51.51h7.136v7.136h-7.136z"/><path d="M26.309 52.104v7.706h.51v-7.706z"/><path d="M22.721 55.927v.51h7.706v-.51zM143.75 57.236v8.156h8.156v-8.156zm.51.51h7.136v7.136h-7.136z"/><path d="M147.59 57.491v7.706h.51V57.49z"/><path d="M144 61.314v.51h7.706v-.51zM274.51 58.005v8.156h8.156v-8.156zm.51.51h7.136v7.136h-7.136z"/><path d="M278.35 58.26v7.706h.51V58.26z"/><path d="M274.76 62.083v.51h7.706v-.51zM156 48v16h16V48zm1 1h14v14h-14z"/><path d="M163.65 48.5v15.117h1V48.5z"/><path d="M156.5 56v1h15.119v-1zM84.646 9.985c-5.073 2.633-11.259 5.953-16.332 8.586l.79.45c4.682-2.431 11.198-5.864 15.881-8.295zm-41.323.13-.338.741c4.682 2.431 11.198 5.864 15.881 8.294l.789-.448c-5.073-2.634-11.259-5.953-16.332-8.587m21.372 6.714.034 10.956 7.379 3.555-.031-10.828zm-1.363.121-7.251 3.668-.014 4.195c-2.346 1.217-6.549 3.409-8.883 4.621l.339.737c2.332-1.21 6.197-3.24 8.542-4.456l-.018 5.684 7.253-3.541zm8.866 8.343.002.9c2.342 1.215 5.882 3.029 8.223 4.244l.339-.737c-2.341-1.216-6.223-3.191-8.564-4.407m-8.195 3.53-7.302 3.58 7.394 2.582 7.302-2.582zM184.65 8.984c-5.08 2.739-11.26 6.191-16.34 8.93l.79.468c4.69-2.528 11.2-6.099 15.88-8.627zm-41.327.136-.338.771c4.682 2.528 11.198 6.097 15.881 8.625l.789-.466c-5.073-2.739-11.259-6.191-16.332-8.93m21.372 6.982.034 11.394 7.381 3.697-.03-11.261zm-1.363.126-7.251 3.815-.014 4.362c-2.346 1.266-6.549 3.546-8.883 4.806l.339.767c2.332-1.258 6.197-3.369 8.542-4.634l-.018 5.911 7.253-3.683zm8.868 8.677v.936c2.34 1.264 5.88 3.15 8.22 4.414l.34-.767c-2.34-1.264-6.22-3.319-8.56-4.583m-8.197 3.671-7.302 3.723 7.394 2.685 7.305-2.685z"/></g><path d="M311.65 8.984c-5.08 2.739-11.26 6.191-16.34 8.93l.79.468c4.69-2.528 11.2-6.099 15.88-8.627zm-41.33.136-.34.771c4.69 2.528 11.2 6.097 15.89 8.625l.78-.466c-5.07-2.739-11.25-6.191-16.33-8.93m21.38 6.982.03 11.394 7.38 3.697-.03-11.261zm-1.37.126-7.25 3.815-.01 4.362c-2.35 1.266-6.55 3.546-8.89 4.806l.34.767c2.33-1.258 6.2-3.369 8.54-4.634l-.01 5.911 7.25-3.683zm8.87 8.677v.936c2.34 1.264 5.88 3.15 8.22 4.414l.34-.767c-2.34-1.264-6.22-3.319-8.56-4.583m-8.2 3.671-7.3 3.723 7.39 2.685 7.31-2.685z" class="uchighlight"/><g class="ucdraw"><path d="M187.8 165.99a.54.54 0 0 0-.327.256l-4.279 7.566a.54.54 0 0 0 .205.739.54.54 0 0 0 .739-.205l4.278-7.566a.54.54 0 0 0-.204-.74.54.54 0 0 0-.412-.05"/><path d="M187.88 165.99a.54.54 0 0 0-.412.05.54.54 0 0 0-.208.738l4.247 7.566a.54.54 0 0 0 .74.208.54.54 0 0 0 .206-.739l-4.246-7.566a.54.54 0 0 0-.327-.257M187.72 151.33c-2.612 0-5.01.416-6.911 1.128-1.902.712-3.343 1.705-3.94 3.016l-.023.052-.186.857-.012-.002-.02.144-.017.065v.09c0 2.251 1.309 4.261 3.329 5.674s4.765 2.262 7.788 2.262 5.769-.85 7.788-2.262c2.02-1.413 3.329-3.423 3.329-5.674v-.56h-.129a3.46 3.46 0 0 0-.856-1.692c-.602-.645-1.435-1.192-2.439-1.647-2.008-.91-4.714-1.45-7.701-1.45zm0 1.878c2.586 0 4.926.445 6.571 1.134.823.345 1.47.752 1.885 1.163s.592.8.592 1.18-.177.77-.592 1.181-1.062.819-1.885 1.163c-1.645.69-3.985 1.135-6.571 1.135-2.582 0-4.921-.445-6.565-1.135-.822-.344-1.468-.751-1.883-1.163s-.592-.8-.592-1.18.177-.77.592-1.18c.415-.412 1.06-.819 1.883-1.164 1.644-.69 3.983-1.134 6.565-1.134m9.641 4.852c-.396 1.276-1.137 2.474-2.466 3.404-1.807 1.263-4.35 2.068-7.167 2.068s-5.36-.805-7.167-2.068c-1.322-.925-2.06-2.116-2.46-3.385.129.19.238.39.409.558.555.55 1.313 1.01 2.226 1.392 1.825.766 4.279 1.22 6.984 1.22 2.71 0 5.164-.454 6.99-1.22.914-.383 1.673-.841 2.228-1.392.177-.175.291-.38.423-.577"/><path d="M187.73 146.45a.54.54 0 0 0-.542.542v11.754a.54.54 0 0 0 .542.543.54.54 0 0 0 .542-.543v-11.754a.54.54 0 0 0-.542-.542M191.4 163.47a.47.47 0 0 0-.345.092l-3.687 2.847a.467.467 0 0 0-.085.655.467.467 0 0 0 .657.086l3.686-2.847a.467.467 0 0 0 .084-.655.47.47 0 0 0-.31-.178"/><path d="M184.1 163.38a.47.47 0 0 0-.316.178.473.473 0 0 0 .08.664l3.714 2.928a.473.473 0 0 0 .664-.08.473.473 0 0 0-.078-.663l-3.716-2.929a.47.47 0 0 0-.348-.098zM302.58 174.86a.67.67 0 0 0-.402.314l-5.26 9.301a.667.667 0 0 0 .252.908.667.667 0 0 0 .908-.251l5.26-9.301a.667.667 0 0 0-.252-.908.67.67 0 0 0-.506-.063"/><path d="M302.17 174.92a.667.667 0 0 0-.256.908l5.22 9.301a.667.667 0 0 0 .909.256.667.667 0 0 0 .254-.908l-5.219-9.301a.667.667 0 0 0-.908-.256M302.99 156.83c-3.084 0-5.919.478-8.17 1.295s-3.96 1.951-4.674 3.478l-.03.065-.222.988h-.013l-.024.16-.023.08v.116c0 2.609 1.562 4.927 3.955 6.55s5.639 2.6 9.21 2.6 6.819-.976 9.212-2.6c2.393-1.623 3.955-3.941 3.955-6.55v-.686h-.162c-.157-.702-.472-1.37-1.016-1.935-.717-.745-1.704-1.372-2.892-1.895-2.377-1.045-5.577-1.666-9.106-1.666zm0 2.242c3.057 0 5.822.513 7.762 1.303.97.395 1.729.86 2.215 1.328s.687.9.687 1.316-.202.847-.687 1.315-1.245.935-2.215 1.33c-1.94.79-4.705 1.303-7.762 1.303-3.051 0-5.816-.513-7.758-1.303-.97-.395-1.732-.862-2.219-1.33s-.687-.9-.687-1.315.2-.848.687-1.316 1.248-.933 2.22-1.328c1.94-.79 4.705-1.303 7.757-1.303m11.33 5.656c-.49 1.393-1.343 2.704-2.857 3.73-2.133 1.448-5.136 2.372-8.463 2.372s-6.331-.924-8.463-2.371c-1.5-1.018-2.35-2.314-2.846-3.691.134.176.233.368.399.527.66.636 1.56 1.164 2.64 1.603 2.16.88 5.061 1.4 8.26 1.4 3.203 0 6.104-.52 8.264-1.4 1.08-.44 1.978-.967 2.638-1.603.178-.171.287-.376.428-.567"/><path d="M302.5 150.83a.667.667 0 0 0-.666.666v14.449a.667.667 0 0 0 .666.668.667.667 0 0 0 .666-.668v-14.449a.667.667 0 0 0-.666-.666M306.29 170.64a.55.55 0 0 0-.39.148l-3.897 3.672a.546.546 0 0 0-.024.772.546.546 0 0 0 .772.023l3.896-3.672a.546.546 0 0 0 .024-.771.55.55 0 0 0-.381-.172"/><path d="M298.56 170.88a.57.57 0 0 0-.799.098.57.57 0 0 0 .098.799l4.476 3.51a.57.57 0 0 0 .8-.098.57.57 0 0 0-.096-.8zM64 136v16h16v-16zm1 1h14v14H65z"/><path d="M71.539 136.73v15.119h1V136.73z"/><path d="M64.5 143v1h15.117v-1zM165 134v17h16v-17zm1 1h14v15h-14z"/><path d="M172.35 134.85v15.579h1V134.85z"/><path d="M165.5 142v1h15.119v-1zM282.24 137.06v16h16v-16zm1 1h14v14h-14z"/><path d="M289.9 137.56v15.117h1V137.56z"/><path d="M282.74 145.06v1h15.119v-1zM71.748 136.02l-.624-3.951 1.317-.208.624 3.952zm-.832-5.268-.624-3.951 1.317-.208.624 3.951zm-.832-5.268-.623-3.951 1.317-.208.623 3.951zm-.831-5.268-.624-3.951 1.317-.208.624 3.951zm-.832-5.268-.624-3.951 1.317-.208.624 3.951zm-.832-5.268-.624-3.951 1.317-.208.624 3.951zm-.831-5.268-.624-3.951 1.317-.208.624 3.951zm-.832-5.268-.624-3.951 1.317-.208.624 3.951zm-.832-5.268-.624-3.951 1.317-.208.624 3.951zm-.832-5.268-.624-3.951 1.318-.208.623 3.951zm-2.564-3.419 1.802-5.684 3.466 4.852zM80.949 135.72l2.956-2.694-.898-.986-2.956 2.695zm3.942-3.592 2.956-2.695-.898-.985-2.956 2.694zm3.942-3.593 2.956-2.694-.898-.986-2.956 2.695zm3.942-3.592 2.956-2.695-.898-.985-2.956 2.694zm3.942-3.593 2.956-2.694-.898-.986-2.956 2.695zm3.942-3.592 2.956-2.695-.898-.985-2.957 2.694zm3.942-3.593 2.956-2.694-.898-.985-2.957 2.694zm3.941-3.592 2.957-2.694-.898-.986-2.957 2.694zm3.942-3.593 2.957-2.694-.898-.985-2.957 2.694zm3.942-3.592 2.957-2.694-.898-.986-2.957 2.695zm3.942-3.592 2.957-2.695-.898-.985-2.957 2.694zm3.942-3.593 2.957-2.694-.899-.986-2.956 2.695zm3.942-3.592 2.956-2.695-.898-.985-2.956 2.694zm3.942-3.593 2.956-2.694-.898-.986-2.956 2.695zm3.942-3.592 2.956-2.695-.898-.985-2.956 2.694zm3.942-3.593 2.956-2.694-.898-.986-2.956 2.695zm3.942-3.592 2.956-2.695-.898-.985-2.956 2.694zm3.942-3.593 2.956-2.694-.898-.985-2.957 2.694zm3.942-3.592 2.956-2.694-.898-.986-2.957 2.694zm4.053-.988 2.145-5.563-5.738 1.621z"/><path d="m71.838 78.926 3.447 2.03-.677 1.149-3.446-2.031zm4.596 2.707 3.446 2.03-.677 1.149-3.446-2.03zm4.595 2.707 3.446 2.03-.677 1.149-3.446-2.03zm4.595 2.707 3.446 2.03-.676 1.149-3.447-2.03zm4.595 2.707 3.447 2.031-.677 1.148-3.447-2.03zm4.595 2.707 3.447 2.031-.677 1.149-3.446-2.031zm4.596 2.708 3.446 2.03-.677 1.149-3.446-2.031zm4.595 2.707 3.446 2.03-.677 1.149-3.446-2.031zm4.595 2.707 3.446 2.03-.676 1.149-3.447-2.03zm4.595 2.707 3.447 2.03-.677 1.149-3.447-2.03zm4.595 2.707 3.447 2.03-.677 1.149-3.446-2.03zm4.596 2.707 3.446 2.031-.677 1.148-3.446-2.03zm4.595 2.707 3.446 2.031-.677 1.149-3.446-2.031zm4.595 2.708 3.446 2.03-.676 1.149-3.447-2.031zm4.595 2.707 3.447 2.03-.677 1.149-3.447-2.031zm4.595 2.707 3.447 2.03-.677 1.149-3.446-2.03zm4.596 2.707 3.446 2.03-.677 1.149-3.446-2.03zm4.595 2.707 3.446 2.03-.677 1.149-3.446-2.03zm4.595 2.707 3.446 2.031-.676 1.148-3.447-2.03zm4.595 2.707 1.862 1.097-.677 1.149-1.862-1.097zm1.729-1.303 3.241 5.005-5.949-.409zM171.56 57.242l3.984-.357-.119-1.328-3.984.357zm5.312-.476 3.984-.358-.119-1.328-3.984.358zm5.312-.477 3.984-.357-.119-1.328-3.984.357zm5.312-.476 3.984-.357-.119-1.328-3.984.357zm5.312-.476 3.984-.358-.119-1.328-3.984.358zm5.312-.477 3.984-.357-.119-1.328-3.984.357zm5.312-.476 3.984-.357-.119-1.328-3.984.357zm5.312-.477 3.984-.357-.119-1.328-3.984.357zm5.312-.476 3.984-.357-.119-1.328-3.984.357zm5.312-.476 3.984-.358-.119-1.328-3.984.358zm5.312-.477 3.984-.357-.119-1.328-3.984.357zm5.312-.476 3.984-.357-.119-1.328-3.984.357zm5.312-.476 3.984-.358-.119-1.328-3.984.358zm5.312-.477 3.984-.357-.119-1.328-3.984.357zm5.312-.476 3.984-.357-.119-1.328-3.984.357zm5.312-.476 3.984-.358-.119-1.328-3.984.358zm5.312-.477 3.984-.357-.119-1.328-3.984.357zm5.312-.476 3.984-.357-.119-1.328-3.984.357zm5.312-.477 3.984-.357-.119-1.328-3.984.357zm5.313-.476 3.984-.357-.12-1.328-3.983.357zm5.312-.476 2.157-.194-.12-1.328-2.156.194zm1.008 1.917 5.074-3.132-5.55-2.18zM291.66 52.391l-.077 3.94 1.333.026.076-3.94zm-.102 5.255-.076 3.94 1.333.026.076-3.941zm-.102 5.254-.076 3.94 1.333.026.076-3.94zm-.102 5.254-.076 3.941 1.333.025.076-3.94zm-.102 5.255-.076 3.94 1.333.026.076-3.941zm-.102 5.254-.076 3.941 1.334.025.076-3.94zm-.101 5.255-.077 3.94 1.333.026.076-3.941zm-.102 5.254-.076 3.941 1.333.025.076-3.94zm-.102 5.255-.076 3.94 1.333.026.076-3.941zm-.102 5.254-.076 3.941 1.333.025.076-3.94zm-.102 5.255-.076 3.94 1.333.026.076-3.941zm-.102 5.254-.076 3.941 1.333.025.077-3.94zm-.102 5.255-.077 3.94 1.333.026.076-3.941zm-.102 5.254-.076 3.94 1.333.026.076-3.94zm-.102 5.255-.076 3.94 1.333.025.076-3.94zm-.102 5.254-.055 2.856 1.333.025.055-2.856zm-2.03 1.505 2.565 5.305 2.768-5.205z"/></g><path d="m164.7 64.152.48 3.895-1.328.155-.474-3.895zm.63 5.193.48 3.895-1.326.155-.474-3.895zm.64 5.193.47 3.894-1.32.155-.48-3.894zm.63 5.192.47 3.895-1.32.155-.48-3.895zm.63 5.193.47 3.895-1.32.155-.47-3.895zm.63 5.193.48 3.895-1.33.155-.47-3.895zm.63 5.193.48 3.894-1.33.155-.47-3.894zm.64 5.192.47 3.895-1.32.155-.48-3.895zm.63 5.193.47 3.895-1.32.155-.48-3.895zm.63 5.193.47 3.895-1.32.155-.47-3.895zm.63 5.193.48 3.894-1.33.155-.47-3.894zm.63 5.192.48 3.895-1.33.155-.47-3.895zm.64 5.193.42 3.5-1.32.156-.43-3.501zm2.25 1.97-2.02 5.503-3.27-4.883z" class="uchighlight"/><g class="uchighlight"><path d="M283.17 37.166v16.668h16.668V37.166zm1.668 1.668h13.332v13.332h-13.332z"/><path d="M290.63 38v15.117h1.666V38z"/><path d="M284 45.166v1.668h15.119v-1.668z"/></g><path fill="none" class="ucstroke" stroke-miterlimit="8" stroke-width="2.667" d="M12.36 125.2c93.532-4.036 205.07-3.996 298.18.107"/><g fill="none" class="ucstroke" stroke-dasharray="0.733, 1.466" stroke-width=".733"><path d="M12.449 46.04c94.703-4.242 208.29-4.2 302.56.112M14.63 59.887c93.532-4.036 205.07-3.996 298.18.107M12.449 73.04c94.703-4.242 208.29-4.2 302.56.112"/></g></svg>
diff --git a/subprojects/docs/src/components/UseCases/uc3.svg.license b/subprojects/docs/src/components/UseCases/uc3.svg.license
new file mode 100644
index 00000000..15aca74d
--- /dev/null
+++ b/subprojects/docs/src/components/UseCases/uc3.svg.license
@@ -0,0 +1,4 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
4
diff --git a/subprojects/docs/src/components/UseCases/uc4.svg b/subprojects/docs/src/components/UseCases/uc4.svg
new file mode 100644
index 00000000..fa647e00
--- /dev/null
+++ b/subprojects/docs/src/components/UseCases/uc4.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="328" height="189" viewBox="0 0 328 189"><g class="ucdraw"><path d="m148.57 31.054 4.688 2.603 5.132 2.557 5.512 2.481 5.884 2.408 12.724 4.54 13.935 4.171 14.966 3.752 15.83 3.288 16.529 2.779 17.025 2.22.173-1.322-17.001-2.217-16.48-2.77-15.778-3.278-14.91-3.738-13.873-4.151-12.663-4.52-5.835-2.387-5.466-2.46-5.082-2.533-4.662-2.589zm1.295-2.331 4.636 2.574 5.032 2.507 5.421 2.44 5.785 2.368 12.602 4.497 13.811 4.133 14.854 3.724 15.728 3.266 16.43 2.763 16.976 2.214.173-1.322-16.951-2.21-16.381-2.756-15.675-3.255-14.8-3.71-13.748-4.114-12.54-4.476-5.736-2.347-5.377-2.42-4.982-2.482-4.61-2.56zM283.37 139.42l-.943.943 10.135 10.135-10.135 10.135.943.944 10.135-10.135 10.135 10.135.943-.944-10.135-10.135 10.135-10.135-.943-.943-10.135 10.135z"/><path d="M293.5 134.83c-8.644 0-15.666 7.022-15.666 15.666s7.022 15.666 15.666 15.666 15.666-7.022 15.666-15.666-7.022-15.666-15.666-15.666m0 1.332c7.924 0 14.334 6.41 14.334 14.334s-6.41 14.334-14.334 14.334-14.334-6.41-14.334-14.334 6.41-14.334 14.334-14.334M288.83 20.5v14.834h-14.334v1.332h14.334V51.5h1.332V36.666h14.334v-1.332h-14.334V20.5z"/><path d="M289.5 19.834c-8.656 0-15.666 7.257-15.666 16.166s7.01 16.166 15.666 16.166S305.166 44.909 305.166 36s-7.01-16.166-15.666-16.166m0 1.332c7.912 0 14.334 6.623 14.334 14.834s-6.422 14.834-14.334 14.834S275.166 44.211 275.166 36s6.422-14.834 14.334-14.834M260.67 98.014l-.937.059.17 2.662.935-.06zm-3.598.227-2.662.17.17 2.66 2.66-.168zm-5.322.337-2.662.168.168 2.663 2.662-.168zm-5.324.338-2.66.168.168 2.66 2.662-.167zm-5.322.336-2.66.168.167 2.662 2.66-.168zm-5.323.338-2.662.168.17 2.662 2.66-.17zm-5.322.336-2.662.17.168 2.66 2.662-.168zm-5.322.338-2.662.168.168 2.662 2.662-.17zm-5.325.336-2.66.17.168 2.66 2.662-.168zm-5.322.338-2.66.168.168 2.662 2.66-.168zm-5.322.338-2.662.168.17 2.66 2.66-.168zm-5.322.336-2.663.168.168 2.662 2.663-.168zm-5.323.338-2.662.168.168 2.662 2.662-.17zm-5.324.335-2.66.17.168 2.66 2.662-.167zm-5.322.338-2.662.168.17 2.662 2.66-.17zm-5.323.336-2.662.17.17 2.66 2.66-.168zm-5.322.338-2.662.168.168 2.662 2.662-.168zm-5.324.338-2.66.168.168 2.66 2.662-.168zM147.86 104.96q-1.335.086-2.678.19l.207 2.658c.878-.07 1.759-.129 2.643-.186zm-5.346.408q-1.34.118-2.672.25l.262 2.653q1.322-.133 2.637-.247zm-5.34.53q-1.33.145-2.665.31l.328 2.647q1.31-.162 2.63-.307zm-5.32.648q-1.336.176-2.658.367l.379 2.64c.878-.125 1.753-.249 2.625-.363zm-5.31.766q-1.325.203-2.649.425l.442 2.631q1.304-.22 2.615-.422zm-5.291.88q-1.318.234-2.64.485l.503 2.619q1.297-.246 2.605-.479zm-5.266.998q-1.319.264-2.627.543l.553 2.608q1.299-.277 2.594-.535zm-5.246 1.116q-1.312.292-2.617.603l.617 2.594q1.288-.306 2.58-.596zm-5.223 1.236q-1.3.322-2.601.664l.681 2.58q1.278-.337 2.565-.656zm-5.19 1.36a188 188 0 0 0-2.585.73l.746 2.56q1.268-.367 2.547-.718zm-5.155 1.492q-1.286.387-2.567.796l.813 2.54q1.259-.403 2.527-.786zm-5.116 1.628q-1.278.427-2.545.872l.883 2.515q1.25-.44 2.502-.857zm-5.072 1.78q-1.262.465-2.518.953l.967 2.484q1.23-.48 2.47-.933zm-5.014 1.947q-1.247.508-2.486 1.045l1.06 2.445q1.21-.522 2.432-1.02zm-4.947 2.137q-1.226.558-2.443 1.15l1.168 2.397q1.181-.576 2.382-1.121zm-4.853 2.355q-1.206.621-2.39 1.278l1.294 2.334a84 84 0 0 1 2.314-1.239zm-4.735 2.63q-1.17.694-2.308 1.437l1.453 2.234q1.096-.713 2.218-1.38zm-4.558 2.97-.18.129-.557.406-.004.004q-.729.54-1.449 1.12l1.676 2.073q.661-.533 1.357-1.048l.004-.004.004-.002.53-.387.165-.12zm-4.282 3.45a32 32 0 0 0-1.966 1.968l1.972 1.795a29 29 0 0 1 1.801-1.803zm-3.746 4.153c-.553.771-1.064 1.59-1.496 2.463l2.39 1.184c.357-.72.79-1.42 1.272-2.092zm-2.517 5.239c-.237.98-.343 2.001-.288 3.029l2.663-.143a7.9 7.9 0 0 1 .216-2.261z"/><path d="m49.393 145.39.448-3.534 1.747-3.75 2.798-3.573 3.727-3.431 4.582-3.31 5.371-3.189 6.095-3.054 6.755-2.9 7.346-2.722 7.867-2.517 8.32-2.287 8.72-2.031 18.227-3.159 9.44-1.082 9.478-.703.098 1.33-9.45.701-9.376 1.075-18.152 3.145-8.657 2.017-8.268 2.272-7.812 2.5-7.286 2.699-6.688 2.871-6.018 3.016-5.278 3.134-4.469 3.228-3.59 3.304-2.636 3.367-1.594 3.423-.422 3.328zm2.646.335.395-3.121 1.442-3.095 2.475-3.161 3.452-3.177 4.356-3.148 5.186-3.078 5.941-2.977 6.62-2.842 7.226-2.677 7.757-2.483 8.216-2.257 8.595-2.003 18.076-3.132 9.311-1.067 9.424-.699.099 1.329-9.398.697-9.246 1.06-18.001 3.119-8.532 1.988-8.164 2.244-7.702 2.464-7.166 2.655-6.553 2.814-5.863 2.937-5.094 3.024-4.243 3.066-3.314 3.05-2.314 2.955-1.289 2.768-.369 2.915zM152.58 146.4l-.951.072.2 2.659.95-.07zm-3.61.271-2.66.2.2 2.658 2.66-.2zm-5.318.397-2.66.2.2 2.66 2.66-.2zm-5.318.398-2.66.2.199 2.66 2.658-.2zm-5.32.399-2.659.2.2 2.66 2.658-.2zm-5.319.398-2.658.2.2 2.66 2.657-.2zm-5.318.399-2.658.199.199 2.658 2.658-.197zm-5.319.398-2.658.2.2 2.658 2.658-.2zm-5.318.399-2.658.199.199 2.658 2.658-.2zm-5.318.398-2.659.2.2 2.657 2.658-.199zm-5.319.397-2.658.199.2 2.66 2.657-.2zm-5.318.398-2.658.2.199 2.66 2.658-.2zm-5.319.398-2.658.2.2 2.66 2.658-.2zm-5.318.399-2.658.199.197 2.66 2.66-.199zm-5.318.398-2.66.2.199 2.658 2.66-.198zm-5.319.399-2.66.199.2 2.658 2.66-.2zm-5.318.398-2.66.2.199 2.658 2.66-.2zm-5.319.399-2.66.199.2 2.658 2.66-.2z"/><path d="m61.466 156.57 91.366-6.84-.1-1.33-91.366 6.84zm-.2-2.66 91.367-6.84-.1-1.33-91.365 6.841zM169.46 107.13l91.422-5.789-.084-1.33-91.422 5.788zm-.169-2.661 91.422-5.79-.084-1.33-91.422 5.789z"/><path d="m61.443 144.44-20.203 1.078 1.08 20.201 20.201-1.078zm-1.26 1.402.938 17.537-17.541.938-.938-17.54z"/></g><path d="M48.713 159.189q.002.031-.012.055-.01.024-.045.042-.034.017-.092.028-.058.012-.148.016-.086.005-.145 0t-.095-.018-.053-.037q-.013-.022-.014-.054l-.362-6.771q-.001-.028.01-.052.014-.024.048-.041t.092-.029.144-.015q.09-.005.149 0t.095.018.048.037q.017.022.019.05zm3.679-.196q.001.03-.013.055-.01.024-.045.042-.034.017-.092.028t-.148.016q-.086.004-.145 0-.059-.005-.094-.019t-.053-.036q-.013-.023-.015-.054l-.361-6.772q-.002-.027.009-.051.014-.024.048-.042.034-.017.093-.028t.143-.016q.09-.005.15 0 .058.005.094.019t.049.036q.017.023.018.05zm3.678-.197q.002.031-.013.056-.01.024-.044.041-.035.018-.093.029-.058.01-.147.015-.086.005-.145 0-.06-.005-.095-.018-.036-.014-.053-.037-.013-.022-.015-.054l-.361-6.771q-.002-.027.009-.051.014-.025.049-.042.034-.018.092-.029.058-.01.144-.015.09-.005.148 0 .06.005.095.018.036.014.05.037.016.022.018.05zM171.68 136.59l-20.201 1.078 1.078 20.203 20.201-1.078zm-1.262 1.402.938 17.54-17.54.937-.937-17.54z" class="ucdraw"/><path d="M158.948 151.19q.001.031-.013.055-.01.024-.045.042-.034.017-.092.028t-.148.016q-.086.005-.145 0t-.094-.019-.053-.036q-.013-.023-.015-.054l-.361-6.771q-.002-.028.009-.052.014-.024.048-.042.035-.017.093-.028t.143-.016q.09-.004.15 0 .058.005.094.019t.049.036q.017.023.018.05zm3.678-.197q.002.032-.013.056-.01.024-.044.041-.035.018-.093.029-.058.01-.147.016-.086.004-.145 0-.06-.005-.095-.019t-.053-.036q-.013-.023-.014-.054l-.362-6.772q-.002-.027.009-.051.014-.024.049-.042.034-.017.092-.028t.144-.016q.09-.005.148 0 .06.005.095.018.036.014.05.037.016.023.017.05zm3.678-.196q.002.031-.012.056-.01.023-.045.041t-.092.028q-.058.012-.148.016-.086.005-.145 0t-.095-.018-.053-.037q-.012-.022-.014-.054l-.362-6.771q-.001-.027.01-.052.014-.024.048-.041t.092-.029.144-.015q.09-.005.149 0t.095.018q.035.014.049.037.016.022.018.05z" class="ucdraw"/><path d="m170.09 94.295-21.535 1.15 1.15 21.533 21.533-1.15zm-2.521 2.805.865 16.209-16.207.865-.867-16.207z" class="uchighlight"/><path d="M156.725 109.189q.002.03-.013.055-.01.024-.044.042-.035.017-.093.028t-.148.016q-.085.004-.144 0-.06-.005-.095-.019t-.053-.036q-.013-.023-.015-.054l-.361-6.772q-.002-.027.009-.051.014-.024.048-.042.035-.017.093-.028t.144-.016q.09-.005.148 0 .06.005.095.019t.05.036q.016.023.017.05zm3.678-.197q.002.031-.012.056-.01.024-.045.041t-.092.029-.148.015q-.086.005-.145 0t-.095-.018-.053-.036q-.013-.023-.014-.054l-.362-6.772q-.001-.027.01-.051.014-.025.048-.042t.092-.029q.058-.01.144-.015.09-.005.149 0t.095.018q.035.014.048.037.017.022.019.05zm3.679-.196q.001.031-.013.055-.01.024-.045.042-.034.017-.092.028t-.148.016q-.086.005-.145 0t-.094-.019-.053-.036q-.013-.023-.015-.054l-.361-6.771q-.002-.028.009-.052.014-.024.048-.042.035-.017.093-.028t.143-.016q.09-.004.15 0 .058.005.094.019t.049.036q.017.023.018.05z" class="uchighlight"/><path d="m279.75 88.199-20.203 1.08 1.078 20.201 20.203-1.078zm-1.262 1.402.938 17.54-17.54.937-.937-17.54z" class="ucdraw"/><path d="M267.019 102.188q.001.03-.013.055-.01.024-.045.042-.034.017-.092.028t-.148.016q-.086.005-.145 0t-.095-.019-.052-.036q-.013-.023-.015-.054l-.362-6.772q-.001-.027.01-.05.014-.025.048-.043t.092-.028q.059-.011.144-.016.09-.004.149 0 .059.005.095.019t.049.036q.017.023.018.05zm3.678-.197q.002.031-.013.056-.01.024-.044.041-.035.018-.093.029-.058.01-.148.016-.085.004-.144 0-.06-.006-.095-.019-.036-.014-.053-.036-.013-.023-.015-.054l-.361-6.772q-.002-.027.009-.051.014-.024.048-.042.035-.017.093-.028.058-.012.144-.016.09-.005.148 0 .06.005.095.018.036.014.05.037.016.022.017.05zm3.678-.196q.002.031-.012.055-.01.024-.045.042-.034.017-.092.028-.059.011-.148.016-.086.005-.145 0t-.095-.018-.053-.037q-.013-.023-.014-.054l-.362-6.771q-.001-.028.01-.052.014-.024.048-.041t.092-.029.144-.016q.09-.004.149 0 .059.005.095.019.035.014.048.036.017.023.019.05z" class="ucdraw"/><g class="ucdraw"><path d="m42.316 154.25-2.662.143.142 2.662 2.663-.14zm-5.324.285-2.664.143.142 2.662 2.662-.143zm-5.326.283-2.664.143.142 2.664 2.664-.143zm-5.327.286-2.662.142.14 2.662 2.665-.142z"/><path d="m23.642 154.58 18.697-.998.072 1.331-18.698.998zm.142 2.663 18.698-.998.071 1.331-18.698.998zM171.7 148.72l9.476-.697 9.438-1.064 18.228-3.09 8.72-1.983 8.321-2.23 7.869-2.452 7.347-2.65 6.757-2.82 6.098-2.97 5.374-3.098 4.587-3.216 3.734-3.333 2.809-3.474 1.762-3.659.456-3.443-1.322-.175-.427 3.232-1.604 3.327-2.643 3.27-3.595 3.209-4.474 3.136-5.282 3.046-6.022 2.932-6.691 2.794-7.289 2.628-7.815 2.436-8.27 2.215-8.659 1.97-18.155 3.077-9.375 1.057-9.45.695zm-.196-2.66 9.425-.693 9.313-1.05 18.08-3.065 8.599-1.955 8.22-2.202 7.761-2.42 7.23-2.606 6.625-2.766 5.946-2.895 5.19-2.993 4.362-3.058 3.456-3.085 2.478-3.065 1.444-2.996.4-3.02-1.322-.175-.372 2.809-1.284 2.663-2.313 2.862-3.316 2.96-4.25 2.979-5.099 2.94-5.869 2.858-6.56 2.738-7.17 2.586-7.709 2.402-8.169 2.189-8.537 1.941-18.008 3.054-9.25 1.042-9.398.692z"/><path d="M269.25 110.02a9.2 9.2 0 0 1-.719 2.209l2.422 1.12c.413-.893.738-1.848.92-2.853zm-1.941 4.305c-.472.673-1 1.318-1.567 1.941l1.973 1.795a22 22 0 0 0 1.777-2.207zm-3.372 3.74q-.34.31-.712.63-.614.53-1.243 1.026l1.649 2.096q.685-.54 1.34-1.104l.004-.004q.377-.325.767-.683zm-4.04 3.21-.102.073q-1.015.711-2.057 1.373l1.43 2.252a58 58 0 0 0 2.164-1.445l.004-.004.106-.074zm-4.395 2.811q-1.127.663-2.283 1.287l1.27 2.344a77 77 0 0 0 2.365-1.332zm-4.611 2.506a95 95 0 0 1-2.364 1.156l1.14 2.413a98 98 0 0 0 2.427-1.19zm-4.762 2.26q-1.202.54-2.418 1.049l1.033 2.457a113 113 0 0 0 2.475-1.072zm-4.865 2.053q-1.225.49-2.46.957l.942 2.494q1.26-.476 2.51-.977zm-4.942 1.875q-1.245.448-2.496.875l.864 2.523q1.272-.435 2.537-.89zm-5.01 1.717q-1.254.411-2.519.804l.791 2.545q1.281-.397 2.56-.816zm-5.056 1.574q-1.267.378-2.541.736l.723 2.567q1.291-.365 2.58-.749zm-5.1 1.441q-1.278.345-2.56.672l.66 2.584q1.3-.331 2.598-.682zm-5.134 1.317q-1.285.314-2.578.613l.601 2.597q1.305-.301 2.611-.62zm-5.166 1.197q-1.29.284-2.592.555l.545 2.61q1.31-.27 2.623-.562zm-5.192 1.082q-1.3.257-2.603.498l.484 2.623q1.32-.244 2.637-.506zm-5.213.969q-1.31.229-2.613.441l.424 2.633c.886-.143 1.767-.295 2.644-.447zm-5.24.857q-1.305.201-2.621.387l.375 2.64a217 217 0 0 0 2.654-.392zm-5.248.746q-1.318.174-2.63.33l.314 2.649q1.335-.16 2.662-.334zm-5.27.633q-1.311.146-2.636.275l.264 2.653q1.329-.13 2.668-.278zm-5.277.52q-1.32.116-2.64.214l.199 2.66q1.341-.1 2.676-.218zm-5.29.402q-1.316.087-2.645.158l.144 2.662q1.334-.071 2.68-.16z"/></g><path d="m57.244 77.292 18.898-.506 18.395.444 8.826.549 8.457.749 8.026.938 7.524 1.116 6.95 1.282 6.306 1.439 5.598 1.588 4.828 1.737 4.011 1.897 3.158 2.112 2.244 2.474.824 2.454-1.264.424-.735-2.189-1.947-2.145-2.94-1.967-3.863-1.828-4.724-1.699-5.52-1.566-6.246-1.425-6.899-1.273-7.48-1.109-7.987-.933-8.421-.746-8.784-.546-18.335-.443-18.865.505zm.071 2.666 18.831-.504 18.276.441 8.741.544 8.384.742 7.949.929 7.436 1.103 6.849 1.263 6.184 1.411 5.443 1.545 4.62 1.661 3.716 1.759 2.722 1.82 1.649 1.817.646 1.925-1.264.424-.557-1.66-1.351-1.489-2.504-1.674-3.569-1.689L145 88.702l-5.365-1.523-6.123-1.397-6.799-1.254-7.392-1.096-7.91-.924-8.348-.74-8.699-.541-18.216-.439-18.797.502z" class="uchighlight"/><path d="M75.953 77.453q-1.337.001-2.678.014l.026 2.668q1.326-.013 2.656-.014zm2.676.008-.016 2.666q1.331.006 2.656.025l.037-2.666q-1.34-.019-2.677-.025m-8.026.039q-1.343.02-2.677.05l.06 2.667q1.331-.032 2.655-.051zm13.377.031-.05 2.666q1.324.025 2.654.063l.072-2.666q-1.334-.037-2.676-.063m-18.73.092q-1.337.04-2.677.092l.105 2.666q1.325-.052 2.652-.092zm24.08.057-.09 2.664q1.326.046 2.653.103l.115-2.666a306 306 0 0 0-2.678-.101m-29.428.148q-1.342.06-2.675.13l.14 2.665q1.33-.072 2.653-.13zm34.777.078-.132 2.662q1.328.065 2.652.143l.156-2.662q-1.339-.078-2.676-.143m5.346.307-.174 2.662q1.328.086 2.649.183l.197-2.66a303 303 0 0 0-2.672-.185m5.34.392-.217 2.659q1.325.107 2.645.226l.242-2.656q-1.337-.12-2.67-.229m5.336.48-.264 2.655q1.322.131 2.639.274l.29-2.653a269 269 0 0 0-2.665-.275m5.326.577-.31 2.648q1.316.154 2.632.323l.338-2.645q-1.329-.17-2.66-.326m5.316.68-.363 2.642q1.312.18 2.621.38l.399-2.638q-1.327-.2-2.657-.384m5.305.799-.426 2.63q1.308.213 2.61.444l.465-2.627q-1.325-.234-2.649-.447m5.29.931-.5 2.62q1.3.246 2.591.517l.547-2.611q-1.32-.275-2.639-.526m5.265 1.096-.588 2.601q1.286.29 2.566.608l.645-2.588q-1.308-.325-2.623-.621m5.232 1.303-.703 2.572q1.27.345 2.523.728l.782-2.55a88 88 0 0 0-2.602-.75m5.178 1.584-.861 2.523q1.233.42 2.443.898l.98-2.48a58 58 0 0 0-2.562-.942m5.082 2.021-1.12 2.422q.731.338 1.45.72l.4.217.387.22.01.005 1.361-2.293-.033-.02-.43-.242-.439-.24-.006-.002a32 32 0 0 0-1.58-.787m4.85 2.89-1.67 2.079c.628.504 1.177 1.043 1.58 1.629l2.197-1.51c-.606-.881-1.352-1.59-2.107-2.197" class="uchighlight"/><g class="ucdraw"><path d="m38.299 78.971-2.664.143.142 2.662 2.663-.143zm-5.326.283-2.664.143.142 2.664 2.664-.143zm-5.326.285-2.662.143.14 2.662 2.664-.143zm-5.327.286-2.662.14.143 2.664 2.662-.142z"/><path d="m19.622 79.3 18.698-.998.071 1.331-18.698.998zm.142 2.663 18.698-.998.071 1.331-18.698.998zM298.19 96.01l-2.662.143.142 2.662 2.663-.143zm-5.324.283-2.664.143.142 2.664 2.662-.143zm-5.326.285-2.665.143.143 2.662 2.664-.143zm-5.327.286-2.662.14.14 2.664 2.665-.142z"/><path d="m279.52 96.339 18.698-.998.071 1.331-18.698.999zm.142 2.663 18.698-.998.071 1.331-18.697.999zM57.424 69.154l-20.201 1.078 1.078 20.203 20.201-1.08zm-1.262 1.402.938 17.54-17.54.937-.937-17.54z"/></g><path d="M44.151 84.065q.002.035-.014.062-.012.027-.05.047-.04.02-.104.032-.066.012-.167.018-.096.005-.163 0-.066-.006-.106-.021t-.06-.04q-.014-.027-.016-.062l-.407-7.618q-.002-.03.01-.058.016-.027.055-.046t.104-.032.162-.018q.1-.005.167 0 .066.005.107.02.04.016.055.042.019.025.02.056zm4.138-.221q.002.035-.014.062-.012.027-.05.047t-.104.032-.167.018q-.096.005-.163 0-.066-.006-.106-.021t-.06-.04q-.014-.027-.016-.062l-.407-7.618q-.001-.03.01-.057.016-.028.055-.047t.104-.032.162-.018q.1-.005.167 0 .066.005.107.02.04.016.055.042.019.025.02.056zm4.138-.22q.002.034-.014.061-.012.027-.05.047t-.104.032-.167.018q-.096.005-.162 0-.067-.006-.107-.021t-.06-.04q-.014-.026-.016-.062l-.407-7.618q-.001-.03.01-.057.017-.028.055-.047t.104-.032q.065-.013.162-.018.1-.005.167 0 .066.005.107.02.04.016.055.042.019.025.02.056z" class="ucdraw"/><g class="ucdraw"><path d="m23.644 31.374 259.65 29.056-.148 1.325-259.65-29.056zm-.296 2.651 259.65 29.055-.149 1.325L23.209 35.35z"/><path d="m23.631 32.42-.297 2.65 2.65.297.297-2.65zm5.299.594-.295 2.648 2.648.297.297-2.65zm5.3.592-.296 2.65 2.65.297.297-2.65zm5.301.593-.296 2.65 2.65.298.297-2.65zm5.301.594-.297 2.648 2.65.297.296-2.65zm5.299.592-.297 2.65 2.65.297.297-2.65zm5.3.594-.296 2.65 2.65.297.297-2.65zm5.302.593-.297 2.649 2.65.297.297-2.65zm5.3.592-.296 2.65 2.65.297.295-2.65zm5.3.594-.298 2.65 2.65.297.298-2.65zm5.3.594-.297 2.65 2.65.295.297-2.648zm5.3.591-.296 2.65 2.65.298.297-2.65zm5.3.594-.295 2.65 2.648.297.297-2.65zm5.3.594-.296 2.65 2.65.295.297-2.648zm5.301.592-.297 2.65 2.65.297.298-2.65zm5.301.593-.297 2.65 2.65.298.295-2.65zm5.299.594-.295 2.65 2.648.296.297-2.649zm5.3.592-.296 2.65 2.65.297.297-2.65zm5.301.594-.296 2.65 2.65.297.297-2.65zm5.301.594-.297 2.65 2.65.297.296-2.65zm5.299.591-.297 2.65 2.65.298.297-2.65zm5.3.594-.296 2.65 2.65.297.297-2.65zm5.302.594-.297 2.65 2.65.297.297-2.65zm5.298.594-.295 2.648 2.65.297.296-2.65zm5.301.591-.297 2.65 2.65.298.298-2.65zm5.301.594-.297 2.65 2.65.297.297-2.65zm5.3.594-.296 2.648 2.65.297.297-2.65zm5.3.592-.295 2.65 2.648.297.297-2.65zm5.3.593-.296 2.65 2.65.298.297-2.65zm5.301.594-.297 2.649 2.65.296.298-2.65zm5.301.592-.297 2.65 2.65.297.295-2.65zm5.299.594-.297 2.65 2.65.297.297-2.65zm5.3.593-.296 2.65 2.65.296.297-2.649zm5.301.592-.296 2.65 2.65.298.297-2.65zm5.301.594-.297 2.65 2.65.297.296-2.65zm5.299.594-.297 2.65 2.65.295.297-2.648zm5.3.592-.296 2.65 2.65.297.297-2.65zm5.302.593-.297 2.65 2.65.298.297-2.65zm5.298.594-.295 2.65 2.649.295.297-2.648zm5.301.592-.297 2.65 2.65.297.298-2.65zm5.301.594-.297 2.65 2.65.297.297-2.65zm5.3.593-.296 2.65 2.65.298.297-2.65zm5.3.592-.295 2.65 2.648.297.297-2.65zm5.3.594-.296 2.65 2.65.297.297-2.65zm5.301.594-.297 2.65 2.65.297.298-2.65zm5.301.593-.297 2.649 2.65.297.295-2.65zm5.299.592-.297 2.65 2.65.298.297-2.65zm5.3.594-.296 2.65 2.65.297.297-2.65zm5.301.594-.296 2.648 2.65.297.297-2.65zm7.023 4.093-2.956-.877z"/><path d="m150.25 27.859-1.352 2.299q1.165.684 2.346 1.34l1.293-2.334q-1.152-.638-2.287-1.305m4.607 2.559-1.24 2.359q1.193.627 2.399 1.229l1.189-2.387q-1.18-.588-2.348-1.201m4.725 2.359-1.148 2.406q1.216.58 2.441 1.135l1.102-2.428q-1.204-.545-2.395-1.113m4.815 2.19-1.067 2.443q1.233.537 2.473 1.055l1.025-2.461q-1.22-.51-2.431-1.037zm4.884 2.04-.996 2.473q1.248.502 2.498.985l.963-2.487q-1.238-.477-2.465-.97m4.944 1.91-.932 2.499q1.256.468 2.52.922l.9-2.512q-1.246-.447-2.488-.908m4.99 1.792-.875 2.52q1.268.44 2.539.864l.846-2.529a227 227 0 0 1-2.51-.855m5.031 1.685-.822 2.537q1.274.413 2.553.813l.796-2.545q-1.266-.396-2.527-.805m5.065 1.588-.774 2.55q1.282.39 2.566.767l.75-2.56q-1.273-.372-2.543-.757m5.095 1.496-.73 2.565q1.288.367 2.58.72l.707-2.57a281 281 0 0 1-2.557-.715m5.121 1.41-.69 2.577q1.295.345 2.593.68l.666-2.583a303 303 0 0 1-2.569-.674m5.143 1.33-.649 2.588q1.298.325 2.6.641l.629-2.592q-1.29-.312-2.58-.637m5.164 1.254-.611 2.596q1.3.308 2.61.606l.589-2.602q-1.293-.293-2.588-.6m5.182 1.182-.575 2.604 1.03.226 1.584.342.56-2.608-1.578-.34zm5.197 1.111-.537 2.614 1.705.35.914.18.523-2.612-.908-.184zm5.217 1.045-.512 2.617.463.09 2.017.385.153.027.484-2.62-.144-.028-2.006-.38zm5.222.979-.472 2.623 1.285.232 1.346.236.46-2.627-1.34-.234zm5.243.916-.45 2.629.127.021 2.07.344.446.07.424-2.633-.44-.07-2.056-.34zm5.246.851-.412 2.635 1.078.168 1.562.236.4-2.636-1.556-.237zm5.254.791-.375 2.64 2.097.298.55.076.362-2.643-.54-.074zm5.271.729-.351 2.644 1.05.139 1.6.205.34-2.644-1.596-.205zm5.28.672-.329 2.646.022.004 2.146.254.494.057.301-2.649-.486-.056-2.135-.254z"/></g></svg>
diff --git a/subprojects/docs/src/components/UseCases/uc4.svg.license b/subprojects/docs/src/components/UseCases/uc4.svg.license
new file mode 100644
index 00000000..15aca74d
--- /dev/null
+++ b/subprojects/docs/src/components/UseCases/uc4.svg.license
@@ -0,0 +1,4 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
4
diff --git a/subprojects/docs/src/components/UseCases/uc5.svg b/subprojects/docs/src/components/UseCases/uc5.svg
new file mode 100644
index 00000000..1b7d769d
--- /dev/null
+++ b/subprojects/docs/src/components/UseCases/uc5.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="328" height="189" viewBox="0 0 328 189"><g class="ucdraw"><path d="M74.833 30.833h70.334l-.173 22.149-8.136.058-.23 13.697 8.539.057v26.587l-8.056.116.289 13.35 7.767.173c-.058.519-.23 22.046-.058 22.854l-7.456.173-.23 13.524 7.744-.058v20.655H74.833v-20.367l8.735.173-.346-14.043-8.39.115.059-22.68 8.48-.231-.057-13.812-8.481-.173.029-26.53c2.096.599 5.263.068 7.88.145l-.144-13.581-7.736.086c-.03-.317-.03-22.437-.03-22.437zm.778 22.006h7.65V67.11h-7.65v25.955h7.904v14.271h-7.904v22.682h8.158v14.272h-8.158v19.099h68.778V144.29h-7.052v-14.272h7.052v-22.682h-7.305V93.065h7.305V67.11h-7.559V52.839h7.559V31.611H75.611zm.778-20.45h67.222v19.672h-7.559v15.827h7.559v24.399h-7.305v15.827h7.305v21.127h-7.051v15.827h7.051v17.543H76.389v-17.543h8.157v-15.827h-8.157v-21.127h7.904V92.287h-7.904V67.888h7.65V52.061h-7.65zm.778 18.894h7.65v17.383h-7.65v22.843h7.903v17.382h-7.903v19.572h8.157v17.382h-8.157v15.988h65.666v-15.988h-7.051v-17.382h7.051v-19.572h-7.305V91.509h7.305V68.666h-7.559V51.283h7.559V33.167H77.167zM186.83 39.833h70.334s0 33.466.029 34.072c-.058-.692-7.9.144-7.9.144l.058 13.275h7.813v34.843H186.83v-15.33l8.39.115-.116-13.534-8.274.057-.058-26.79h7.905l.058-13.245-7.905-.086zm.778 13.031h7.559v14.34h-7.559v26.07h7.813v14.34h-7.813v13.775h68.778V88.102h-7.813V73.761h7.813v-33.15h-68.778zm.778-11.475h67.222v31.595h-7.813v15.895h7.813v31.732h-67.222v-12.219h7.813V92.496h-7.813V67.982h7.559V52.086h-7.559zm.778 9.919h7.559V68.76h-7.559v22.958h7.813v17.452h-7.813v10.663h65.666V89.657h-7.813V72.206h7.813V42.167h-65.666zM152.5 59.834v1.332h28.883v-1.332zM152.5 99.834v1.332h28.883v-1.332z"/></g><g class="uchighlight"><path d="M186.83 126.83h70.334v12.024l-7.66-.014v13.163h7.66c.014.158 0 12.16 0 12.16H186.83v-12.612l9.05.021.022-13.084-9.065-.021zm.778 10.996h8.791v14.402h-8.791v11.158h68.778v-10.735h-7.559v-14.402h7.559v-10.641h-68.778zm.778-9.44h67.222v9.085h-7.559v15.958h7.559v9.179h-67.222v-9.602h8.791v-15.958h-8.791zm.778 7.884h8.791v17.514h-8.791v8.046h65.666v-7.623h-7.559v-17.514h7.559v-7.529h-65.666z"/><path d="M202.58 134.22h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.534v4.92h-.534zm2.754 0h.534v4.92h-.534zm2.754 0h.534v4.92h-.534zm2.753 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.534v4.92h-.534zm2.754 0h.534v4.92h-.534zM205.58 140.22h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.534v4.92h-.534zm2.754 0h.534v4.92h-.534zm2.754 0h.534v4.92h-.534zm2.753 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zM205.58 147.22h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.534v4.92h-.534zm2.754 0h.534v4.92h-.534zm2.754 0h.534v4.92h-.534zm2.753 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zM202.58 153.22h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.534v4.92h-.534zm2.754 0h.534v4.92h-.534zm2.754 0h.534v4.92h-.534zm2.753 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.535v4.92h-.535zm2.754 0h.534v4.92h-.534zm2.754 0h.534v4.92h-.534z"/></g><g class="ucdraw"><path d="M152.93 136.83v1.34h14.256v8.115h15.594v-1.34h-14.256v-8.115zM40.183 59.805v1.332h28.883v-1.332zM40.231 99.84v1.32h28.393v-1.32zM40.5 136.83v1.332h28.883v-1.332zM264.5 80.834v1.332h28.883v-1.332zM264.5 146.83v1.332h28.883v-1.332z"/><path d="M67.291 51.404v17.02h17.15v-17.02zm1.998 2h13.152v13.021H69.289zM135.35 51.404v17.02h17.15v-17.02zm1.998 2h13.154v13.021h-13.154zM179.37 51.568v17.02h17.15v-17.02zm1.998 1.998h13.152v13.021h-13.152zM247.35 72.168v17.021h17.152V72.168zm2 2h13.152v13.021H249.35zM67.545 91.555v17.021h17.15V91.555zm2 2h13.152v13.023H69.545zM135.61 91.555v17.021h17.15V91.555zm2 2h13.152v13.023H137.61zM179.7 91.555v17.021h17.15V91.555zm2 2h13.152v13.023H181.7zM67.799 128.44v17.02h17.152v-17.02zm2 2h13.152v13.021H69.799zM135.86 128.44v17.02h17.15v-17.02zm2 2h13.152v13.021H137.86zM180.68 136.5v17.021h17.15V136.5zm2 2h13.152v13.021H182.68zM247.6 136.92v17.021h17.152V136.92zm2 2h13.152v13.021H249.6zM23.5 51.5v17.176h17.48V51.5zm2 2h13.48v13.176H25.5zM23.76 92.062v17.174h17.48V92.062zm2 2h13.48v13.174H25.76zM24.02 129.32v17.176H41.5V129.32zm2 2H39.5v13.176H26.02zM300.62 73.146c-4.592 0-8.334 3.742-8.334 8.334s3.742 8.334 8.334 8.334 8.334-3.742 8.334-8.334-3.742-8.334-8.334-8.334m0 1.668a6.653 6.653 0 0 1 6.666 6.666 6.653 6.653 0 0 1-6.666 6.666 6.653 6.653 0 0 1-6.666-6.666 6.653 6.653 0 0 1 6.666-6.666M300.44 139.09c-4.592 0-8.332 3.74-8.332 8.332s3.74 8.334 8.332 8.334 8.334-3.742 8.334-8.334-3.742-8.332-8.334-8.332m0 1.666a6.655 6.655 0 0 1 6.668 6.666 6.657 6.657 0 0 1-6.668 6.668 6.655 6.655 0 0 1-6.666-6.668 6.653 6.653 0 0 1 6.666-6.666M90.833 44.833h39.334v103.33H90.833zm.778 102.56h37.778V45.613H91.611zm.778-101h36.222v100.22H92.389zm.778 99.444h34.666V47.171H93.167zM204.83 51.833h37.334v58.334H204.83zm.778 57.556h35.778V52.611h-35.778zm.778-56h34.222v55.222h-34.222zm.778 54.444h32.666V54.167h-32.666z"/></g></svg>
diff --git a/subprojects/docs/src/components/UseCases/uc5.svg.license b/subprojects/docs/src/components/UseCases/uc5.svg.license
new file mode 100644
index 00000000..15aca74d
--- /dev/null
+++ b/subprojects/docs/src/components/UseCases/uc5.svg.license
@@ -0,0 +1,4 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
4
diff --git a/subprojects/docs/src/components/UseCases/uc6.svg b/subprojects/docs/src/components/UseCases/uc6.svg
new file mode 100644
index 00000000..063d89a8
--- /dev/null
+++ b/subprojects/docs/src/components/UseCases/uc6.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="328" height="189" viewBox="0 0 328 189"><g class="ucdraw"><path d="M199.54 12.877c-4.198-.201-8.359.317-12.461 1.111-3.585.692-6.178 3-7.383 6.471-.808 2.325-1.483 4.683-2.162 7.02v.002c-1.406 4.865-3.309 9.424-6.834 12.993-6.266 6.343-13.344 11.724-20.828 16.599-1.386.902-2.792 1.2-4.473.818-3.488-.794-6.882-1.867-10.229-3.14h-.002c-5.267-2.001-9.84-5.37-14.738-8.337-4.2-2.544-8.728-2.99-13.279-1.047-7.172 3.07-12.17 8.202-13.318 16.305-.777 5.49-2.148 10.835-3.92 16.107h-.001c-.945 2.818-1.407 5.763-1.15 8.829.388 4.62 2.67 8.345 5.091 11.863 4.239 6.162 3.381 13.213-.613 18.758-2.613 3.627-6.373 6.054-10.014 8.79-2.563 1.926-5.166 3.938-6.946 6.848-3.084 5.033-4.566 10.538-4.445 16.441 0 .348.003.692 0 1.028-.071 6.845 2.72 12.404 8.89 15.637 6.602 3.456 13.332 6.653 20.042 9.857 3.314 1.58 6.867 1.698 10.35.658a474 474 0 0 0 10.83-3.379c6.848-2.223 11.473-6.816 13.447-13.828 1.75-6.209 1.104-12.262-1.106-18.176-1.328-3.548-2.74-6.95-2.474-10.664.195-2.723 1.364-5.325 1.949-8.207.69-3.388.817-6.089.035-8.435s-2.472-4.254-5.182-6.04l-.002-.001c-.75-.49-1.48-1.051-2.238-1.606h-.002c-2.14-1.557-3.924-3.71-4.861-6.111s-1.046-5.029.148-7.674c1.053-2.33 2.614-4.35 4.49-6.014 3.957-3.503 7.603-7.275 10.766-11.533 2.458-3.31 4.908-6.57 7.899-9.338 1.556-1.44 2.699-2.156 3.857-2.347s2.46.12 4.38 1.004c2.802 1.29 5.341 3.03 7.776 4.968v-.002c3.468 2.771 7.376 4.62 11.8 5.276 5.863.87 11.074-.554 14.73-5.717 1.98-2.788 3.44-5.798 4.73-8.871l.002-.002a64 64 0 0 1 6.59-11.893v-.002c3.587-5.115 4.901-11.119 7.341-16.465 1.29-2.83 3.13-5.568 3.864-8.898v-.002c.53-2.44.303-4.546-.762-6.15-1.065-1.606-2.916-2.625-5.375-3.048a34 34 0 0 0-4.209-.457zm-4.266 2.135c2.55-.161 5.105-.074 7.664.38 2.299.408 3.73 1.282 4.448 2.495.717 1.213.79 2.887.039 5.094h-.002v.002c-.335.998-.78 1.977-1.272 2.943v.002c-1.716 3.384-3.332 6.836-4.548 10.465-1.434 4.22-3.326 8.166-5.883 11.791h.002c-2.821 3.991-4.757 8.401-6.639 12.785-1.18 2.75-2.649 5.312-4.582 7.537v.002c-2.744 3.16-6.187 4.449-10.352 3.924-3.88-.49-7.44-1.819-10.572-4.186v-.002c-2.876-2.166-5.765-4.4-9.148-5.978-2.32-1.08-4.295-1.525-6.18-1.205s-3.6 1.388-5.445 3.123c-4.187 3.934-7.096 8.776-10.684 12.934-2.213 2.563-4.69 4.885-7.2 7.217-3.064 2.847-5.25 5.912-6.03 9.271-.782 3.359-.109 6.972 2.37 10.736 1.807 2.74 4.606 4.32 7.008 6.049 3.657 2.63 4.547 5.942 3.637 10.213-.634 2.975-1.904 5.915-2.174 9.222-.36 4.434 1.048 8.415 2.514 12.3 1.662 4.397 2.594 8.818 1.754 13.46h-.002c-1.4 7.756-5.422 13.028-13.041 15.49-3.528 1.142-7.09 2.212-10.637 3.362-2.828.917-5.542.78-8.168-.485-6.817-3.277-13.68-6.43-20.285-10.018-2.906-1.579-4.85-3.455-6.116-6.1-1.263-2.64-1.84-6.091-1.841-10.774.157-4.331 1.812-10.478 6.347-15.512 1.673-1.859 3.834-3.3 5.961-4.854 3.19-2.333 6.424-4.712 8.88-8.058 4.695-6.398 4.953-14.844.63-21.492v-.002c-2.319-3.56-4.588-6.987-4.867-11.221-.161-2.433.263-4.796 1.05-7.084a91.3 91.3 0 0 0 4.016-16.523c1.09-7.442 5.569-11.923 12.223-14.938 3.84-1.74 7.305-1.275 10.848.855 3.896 2.34 7.624 5.086 11.87 7.096 4.701 2.224 9.61 3.8 14.704 4.795 1.97.385 3.865-.07 5.496-1.088 6.965-4.35 13.287-9.518 19.361-14.96 4.788-4.278 7.496-9.76 9.178-15.77h.002c.647-2.338 1.343-4.666 2.154-6.934v-.002c1.015-2.822 2.99-4.624 5.871-5.242 2.544-.544 5.09-.954 7.641-1.115z"/><path d="M199.07 13.869c-3.976-.185-7.904.355-11.777 1.19-3.287.708-5.682 2.921-6.826 6.117-.829 2.323-1.524 4.69-2.186 7.05v.002c-1.628 5.878-4.21 11.107-8.754 15.193-6.025 5.432-12.273 10.567-19.123 14.873-1.39.873-2.9 1.23-4.521.91-4.975-.975-9.76-2.521-14.344-4.704-4.08-1.945-7.765-4.665-11.721-7.059-3.8-2.3-7.855-2.843-12.055-.932h-.002c-6.89 3.145-11.8 8.099-12.953 16.014a91 91 0 0 1-3.947 16.34v.002c-.83 2.426-1.291 4.98-1.118 7.631.306 4.673 2.76 8.336 5.063 11.9 4.021 6.22 3.784 14.068-.584 20.057-2.297 3.15-5.388 5.46-8.567 7.799v-.002c-2.087 1.534-4.33 3.024-6.146 5.057-4.776 5.335-6.507 11.783-6.672 16.42v.025c0 4.817.58 8.485 1.967 11.402s3.59 5.038 6.662 6.719c6.64 3.63 13.507 6.8 20.285 10.086v.002c2.916 1.407 6.036 1.562 9.135.55 3.517-1.148 7.072-2.217 10.609-3.372 8.004-2.604 12.447-8.453 13.904-16.582.89-4.976-.11-9.675-1.813-14.215-1.453-3.879-2.76-7.659-2.426-11.758v-.002c.246-3.041 1.476-5.933 2.145-9.09.977-4.622-.137-8.705-4.15-11.61l2.018-.117c-2.477-1.79-5.08-3.31-6.656-5.72-2.321-3.547-2.873-6.73-2.178-9.739.696-3.008 1.13-5.478 4.066-8.225l.002-.002c2.506-2.342 4.551-4.995 6.818-7.636 3.677-4.288 7.566-7.48 11.566-11.264 1.74-1.646 2.77-2.465 4.279-2.82.865-.203 2.014-.724 4.19.298 3.204 1.502 6.646 2.896 9.52 5.075 3.327 2.524 7.108 3.946 11.178 4.463h.002c4.526.574 8.5-.928 11.496-4.389 2.047-2.361 3.57-5.063 4.789-7.914l.002-.002c1.868-4.391 3.761-8.725 6.48-12.586l.002-.002c2.631-3.756 6.455-7.184 7.902-11.52v-.084c1.194-3.548 1.79-7.281 3.494-10.65.508-1.003.085-2.286.45-3.376v-.002c.822-2.438.807-4.57-.162-6.217s-2.827-2.689-5.354-3.14a31 31 0 0 0-3.99-.444zm-3.879 1.373c2.541-.162 5.086-.073 7.635.383 2.293.41 3.722 1.285 4.44 2.504.717 1.219.793 2.9.046 5.115v.002c-.335 1.002-.782 1.985-1.273 2.955-1.717 3.398-3.322 6.862-4.547 10.502v.002c-1.413 4.235-3.305 8.195-5.854 11.834-2.82 4.005-4.747 8.432-6.619 12.83-1.18 2.76-2.636 5.337-4.568 7.565h-.002c-2.745 3.172-6.169 4.465-10.322 3.939-3.87-.491-7.409-1.827-10.541-4.203-2.866-2.173-5.745-4.414-9.123-5.998h-.002c-2.31-1.085-4.282-1.532-6.162-1.211-1.882.321-3.592 1.394-5.432 3.135-4.174 3.95-7.075 8.807-10.654 12.98h.002c-2.207 2.57-4.676 4.903-7.18 7.242-3.055 2.858-5.233 5.933-6.011 9.303-.779 3.369-.11 6.993 2.361 10.77 1.798 2.748 4.59 4.337 6.99 6.072 3.646 2.639 4.534 5.966 3.627 10.254-.633 2.986-1.901 5.937-2.17 9.258-.362 4.444 1.046 8.438 2.506 12.336 1.657 4.418 2.585 8.85 1.75 13.512-1.395 7.785-5.412 13.077-13.006 15.547v.002c-3.517 1.149-7.072 2.218-10.609 3.373-2.815.919-5.519.78-8.14-.485-6.794-3.292-13.64-6.456-20.227-10.057v.002c-2.897-1.584-4.836-3.468-6.098-6.123-1.26-2.651-1.835-6.115-1.836-10.816.157-4.347 1.808-10.518 6.33-15.57l.002-.002c1.667-1.865 3.821-3.309 5.942-4.867v-.002c3.181-2.342 6.406-4.728 8.855-8.086 4.682-6.42 4.94-14.893.627-21.564-2.31-3.573-4.575-7.012-4.854-11.264-.16-2.442.264-4.817 1.05-7.115a92 92 0 0 0 4.003-16.578c1.087-7.466 5.555-11.967 12.188-14.994 3.83-1.743 7.28-1.277 10.812.86 3.886 2.351 7.605 5.103 11.838 7.12 4.69 2.234 9.583 3.815 14.66 4.811 1.969.388 3.862-.067 5.49-1.09 6.946-4.366 13.25-9.553 19.305-15.012 4.777-4.297 7.475-9.794 9.147-15.826v-.002c.658-2.349 1.345-4.686 2.156-6.96 1.016-2.835 2.98-4.641 5.852-5.26 2.538-.547 5.076-.96 7.617-1.121zm-2.293 5.875c-1.636.185-3.236.75-4.33 1.736-2.97 2.676-2.72 6.35-3.074 8.965l-.008.047v.045c.01 2.28.321 4.051.642 5.767v.002c.145.766.337 1.567.762 2.282s1.124 1.326 2.106 1.582c1.881.493 3.498-.418 4.673-1.635l.002-.002c3.589-3.667 5.29-8.247 6.002-13.13.268-1.832-.335-3.79-2.168-4.888-1.283-.765-2.97-.957-4.607-.771zm.149 1.324c1.42-.16 2.868.051 3.775.592 1.367.819 1.743 2.1 1.531 3.55-.687 4.704-2.287 8.971-5.637 12.394h-.002v.002c-1.004 1.04-2.045 1.626-3.38 1.275h-.002v-.002c-.659-.171-1.01-.492-1.295-.972s-.463-1.135-.598-1.846v-.002c-.317-1.698-.605-3.354-.617-5.502.372-2.818.168-5.86 2.638-8.086.786-.71 2.166-1.242 3.586-1.402zM113.152 51.59c-6.431.01-12.085 4.366-13.713 10.857-1.622 6.477-3.418 12.985-4.1 19.75-.615 6.096 2.027 9.877 6.215 12.523 2.396 1.514 5.674 1.332 7.666-.357l.002-.002c1.465-1.239 2.933-2.516 4.285-3.918v-.002c2.92-3.035 6.136-5.718 9.486-8.297v.002c3.36-2.582 6.564-5.454 8.444-9.543V72.6c2.184-4.75 1.429-9.347-2.352-12.705-2.017-1.792-4.195-3.426-6.428-4.916-2.837-1.894-5.933-3.638-9.506-3.39zm.07 1.326c3.093-.223 5.91 1.315 8.695 3.174 2.19 1.462 4.32 3.06 6.281 4.803 3.413 3.031 4.036 6.783 2.026 11.152-1.738 3.782-4.74 6.503-8.045 9.043-3.378 2.6-6.647 5.326-9.633 8.43-1.299 1.346-2.73 2.597-4.186 3.828h-.002c-1.446 1.227-4.227 1.427-6.093.248-3.938-2.49-6.173-5.58-5.6-11.262.668-6.617 2.442-13.063 4.068-19.561 1.488-5.931 6.6-9.854 12.44-9.854h.023zm-4.049 58.46c-1.392-.058-2.848.608-4.184 2.208v.002c-1.798 2.16-3.47 4.387-5.343 6.373-3.26 3.47-7.167 6.23-11.205 8.805v-.002c-6.225 3.963-10.221 9.45-10.965 17-.523 5.29.511 10.23 4.502 14.172 3.43 3.393 7.664 5.357 11.67 7.518 9.664 5.217 19.422 4.614 28.922-.229 5.91-3.013 8.945-8.157 9.035-14.816v-.025l-.002-.026c-.077-1.185.003-2.428-.242-3.752v-.002c-.557-3.004-1.748-5.734-3.139-8.334-2.712-5.074-4.929-10.289-5.973-15.938v-.002c-.349-1.9-1.29-3.558-2.537-4.93-2.08-2.293-4.265-4.544-6.795-6.427-1.115-.83-2.352-1.538-3.744-1.596zm-.055 1.331c.96.04 1.982.573 3.002 1.332 2.417 1.8 4.545 3.984 6.604 6.254v.002h.002c1.113 1.224 1.916 2.657 2.213 4.276 1.078 5.836 3.358 11.183 6.107 16.326 1.357 2.536 2.483 5.138 3.004 7.949.204 1.104.142 2.276.22 3.55-.086 6.271-2.77 10.818-8.306 13.64-9.215 4.697-18.382 5.263-27.684.242-4.05-2.185-8.144-4.106-11.365-7.291-3.681-3.637-4.61-8.048-4.111-13.094.704-7.155 4.374-12.201 10.352-16.006h.002c4.073-2.597 8.077-5.415 11.459-9.014 1.941-2.06 3.629-4.309 5.398-6.433 1.16-1.39 2.145-1.772 3.104-1.733zM245.93 61.027c-1.196.263-2.419.796-3.633 1.59-1.799 1.176-3.226 2.719-4.508 4.334-4.492 5.666-9.389 10.664-15.918 13.979h-.002c-6.484 3.292-12.342 7.587-17.28 13.035v.002a2103 2103 0 0 1-10.249 11.26c-3.974 4.332-8.046 8.596-11.957 13.014-3.712 4.19-5.47 9.185-4.047 14.859.711 2.854 1.712 5.645 3.29 8.201.865 1.413 1.897 2.752 3.214 3.877 4.4 3.78 9.604 5.156 14.885 4.973 7.63.148 14.258-1.904 19.982-6.46 3.322-2.643 5.877-5.94 8.305-9.279v-.002c2.357-3.264 5.22-5.847 8.932-7.427 2.078-.883 4.169-1.766 6.21-2.768 2.992-1.462 4.679-4.03 5.215-7.248.487-2.924.278-5.823-.199-8.639v-.002c-1.101-6.686-.427-12.722 4.1-18.029h-.002c2.076-2.422 3.294-5.307 4.031-8.324 1.334-5.464 1.332-10.942-1.438-16.139l-.002-.002c-1.353-2.553-3.245-4.212-5.459-4.78-1.106-.283-2.274-.288-3.47-.024zm.803 2.027a4.3 4.3 0 0 1 1.802.028c1.138.267 2.214 1.032 3.23 2.345 3.786 4.912 3.922 10.357 2.343 16.221-.906 3.36-2.747 6.235-4.865 9.012v.002c-3.614 4.749-3.97 10.144-3.393 15.631v.002c.322 3.05.75 6.028.527 9.008-.257 3.361-1.708 5.667-4.724 7.12-1.9.919-3.87 1.747-5.84 2.579-4.03 1.704-7.118 4.525-9.629 7.977-2.44 3.352-4.975 6.57-8.203 9.105-5.272 4.149-11.283 6.001-17.98 6.022h-.002c-5.162.027-9.75-1.296-13.668-4.71-1.946-1.697-3.238-3.876-4.297-6.275l-.002-.002c-2.175-4.984-3.173-9.712.037-14.549v-.002c1.234-1.861 2.568-3.616 4.1-5.187l.002-.002c6.477-6.63 12.534-13.606 18.736-20.432h-.002c5.264-5.788 11.279-10.614 18.227-14.107 6.844-3.441 11.906-8.68 16.492-14.455h.002v-.002c1.435-1.815 3.052-3.396 5.064-4.537.728-.412 1.406-.67 2.043-.791z"/><path d="M247.2 61.941c-.81.152-1.641.47-2.478.943-2.227 1.258-3.98 2.989-5.503 4.899-4.573 5.745-9.532 10.846-16.178 14.182-7.171 3.598-13.377 8.563-18.764 14.488-6.266 6.883-12.38 13.89-18.863 20.525-1.628 1.66-3.023 3.495-4.298 5.416-3.54 5.318-2.41 10.744-.147 15.916v.002c1.102 2.511 2.512 4.898 4.684 6.787 4.211 3.664 9.224 5.095 14.662 5.066 7.002-.021 13.409-1.984 18.957-6.345 3.422-2.68 6.048-6.025 8.527-9.428v-.002c2.43-3.33 5.341-5.974 9.15-7.578v.002c1.99-.837 3.99-1.679 5.95-2.623 3.413-1.64 5.232-4.528 5.515-8.27.237-3.189-.213-6.27-.53-9.302v-.002c-.573-5.377-.23-10.352 3.146-14.777 2.181-2.85 4.16-5.896 5.144-9.532 1.65-6.124 1.506-12.175-2.605-17.486l-.002-.002c-1.149-1.485-2.488-2.486-4.006-2.841a5.7 5.7 0 0 0-2.362-.038zm.236 1.307a4.3 4.3 0 0 1 1.82.027c1.15.27 2.235 1.04 3.257 2.361h.002c3.826 4.942 3.962 10.424 2.373 16.324-.916 3.382-2.778 6.274-4.916 9.069v.002c-3.644 4.776-4.002 10.205-3.415 15.727.322 3.067.753 6.065.53 9.064-.257 3.385-1.717 5.705-4.764 7.168h-.002c-1.92.925-3.898 1.757-5.889 2.594-4.07 1.714-7.18 4.552-9.71 8.021-2.46 3.377-5.014 6.616-8.272 9.166h-.002c-5.311 4.175-11.381 6.042-18.14 6.063h-.001c-5.203.027-9.831-1.305-13.78-4.74-1.966-1.711-3.277-3.905-4.335-6.317v-.002c-2.195-5.015-3.207-9.773.033-14.643v-.002c1.245-1.874 2.59-3.64 4.14-5.22h.003c6.517-6.67 12.643-13.69 18.896-20.56v-.001c5.293-5.823 11.367-10.677 18.375-14.193 6.895-3.461 11.997-8.732 16.623-14.543 1.457-1.828 3.083-3.42 5.115-4.569h.002c.733-.415 1.414-.675 2.057-.797zm-2.332 12.043c-.471.013-.973.137-1.482.351-1.68.706-2.702 2.065-3.473 3.45l-.002.001c-1.664 3.023-4.093 4.69-7.502 5.287-1.486.261-2.9.702-4.297 1.051-5.306 1.335-10.055 3.8-13.842 7.817-5.789 6.128-11.604 12.244-17.186 18.58-3.322 3.778-6.798 7.539-9.59 11.865-2.568 3.976-3.746 8.368-2.443 13.146 1.738 6.362 6.786 9.838 12.982 9.841 6 .086 10.3-1.362 14.232-3.808 4.323-2.69 7.502-6.459 10.086-10.646 3.257-5.282 7.478-9.431 12.867-12.562 4.06-2.365 6.77-5.993 6.99-10.95.162-3.69.073-7.395-.486-11.071-.413-2.735-.698-5.359-.28-7.729.42-2.37 1.504-4.497 3.96-6.398 1.618-1.259 2.314-3.342 2.084-5.482-.119-1.082-.536-1.976-1.317-2.432a2.4 2.4 0 0 0-1.302-.31zm.63 1.463c.304.178.572.589.663 1.423.19 1.77-.374 3.35-1.576 4.286-2.692 2.085-3.99 4.585-4.455 7.218-.466 2.635-.142 5.394.275 8.16.542 3.566.632 7.185.473 10.815-.2 4.51-2.548 7.654-6.328 9.855-5.57 3.237-9.969 7.558-13.332 13.014-2.516 4.076-5.557 7.666-9.654 10.215-3.768 2.344-7.73 3.692-13.51 3.61h-.01c-5.72 0-10.105-2.996-11.707-8.862-1.197-4.387-.154-8.31 2.277-12.072 2.708-4.198 6.133-7.912 9.47-11.707 5.56-6.31 11.364-12.417 17.155-18.547 3.593-3.81 8.084-6.152 13.197-7.437 1.444-.361 2.829-.789 4.203-1.03 3.73-.654 6.602-2.623 8.437-5.955l.002-.002c.709-1.272 1.526-2.32 2.824-2.865.792-.333 1.29-.297 1.594-.12z"/><path d="M244.53 74.836c-.468.014-.966.14-1.47.354-1.672.706-2.683 2.063-3.444 3.447v.002c-1.646 3.02-4.045 4.683-7.412 5.28-1.477.26-2.871.701-4.246 1.05-5.258 1.333-9.948 3.797-13.693 7.81-5.719 6.122-11.484 12.231-16.996 18.563-3.294 3.777-6.718 7.534-9.489 11.854h-.002c-2.538 3.972-3.702 8.36-2.41 13.133 1.727 6.357 6.719 9.836 12.852 9.836h.002c5.936.083 10.184-1.365 14.074-3.808 4.283-2.688 7.421-6.455 9.975-10.64 3.216-5.275 7.398-9.42 12.717-12.546l.002-.002c4.03-2.364 6.698-5.99 6.918-10.938v-.002c.161-3.687.071-7.389-.477-11.061-.412-2.733-.7-5.357-.287-7.725s1.487-4.491 3.918-6.39c1.608-1.26 2.292-3.34 2.063-5.475-.113-1.08-.522-1.972-1.297-2.43a2.37 2.37 0 0 0-1.297-.312zm-.414 2.315c.237-.108.282-.144.564.068.28.212.368.415.397.715s-.045.694-.186 1.091c-.55 1.538-1.581 2.78-2.841 3.895-2.326 2.043-3.131 4.743-3.225 7.623-.083 2.471.296 4.855.533 7.19.33 3.228.634 6.42.496 9.615v.002c-.19 4.657-2.567 7.806-6.443 10.096-5.1 3.017-9.29 6.95-12.428 12.049-2.725 4.422-5.85 8.42-10.281 11.146h-.002c-3.478 2.144-7.259 3.407-9.528 3.449-4.458-.003-7.883-1.129-10.246-3.08-2.364-1.953-3.71-4.743-3.95-8.258v-.002c-.206-2.876.963-5.558 2.595-8.076v-.002c2.72-4.235 6.127-7.998 9.473-11.828 5.528-6.342 11.314-12.49 17.084-18.64 3.393-3.614 7.646-5.845 12.453-7.116 1.73-.458 3.452-.917 5.181-1.291 3.119-.674 5.645-2.303 7.295-5.147v-.002h.002c.634-1.103 1.228-2.152 2.123-2.828l.002-.002h.002c.364-.28.693-.56.93-.668zm-53.225 65.426.088.058q-.045-.028-.088-.058"/><path d="M245.22 75.859a1.93 1.93 0 0 0-.922.154c-.523.234-.898.59-1.197.815-1.196.892-1.862 2.13-2.496 3.209-1.478 2.518-3.622 3.88-6.485 4.492-1.78.38-3.54.843-5.279 1.299-5.042 1.313-9.587 3.652-13.205 7.455-5.82 6.118-11.664 12.245-17.266 18.582-3.364 3.798-6.85 7.588-9.68 11.924-1.718 2.623-3.06 5.578-2.836 8.855v.002c.266 3.795 1.797 6.97 4.479 9.153s6.47 3.365 11.195 3.367h.012c2.728-.049 6.615-1.397 10.295-3.629 4.727-2.872 8.013-7.043 10.809-11.527l.002-.002c3.05-4.88 7.1-8.63 12.09-11.539 4.173-2.434 6.94-6.061 7.16-11.137v-.002c.132-3.299-.173-6.542-.514-9.762-.252-2.37-.614-4.677-.537-6.97.097-2.656.78-4.874 2.801-6.631l.002-.002c1.37-1.195 2.586-2.61 3.248-4.424v-.004l.002-.002c.18-.505.312-1.069.252-1.662a2.35 2.35 0 0 0-.932-1.645h-.002v-.002a1.9 1.9 0 0 0-.996-.367zm-.379 1.371c.24-.108.294-.144.582.068.285.213.37.414.4.71s-.04.685-.181 1.08c-.559 1.527-1.601 2.764-2.871 3.873-2.336 2.032-3.154 4.721-3.258 7.59v.001c-.083 2.461.295 4.831.543 7.157.34 3.208.635 6.385.508 9.566-.201 4.63-2.594 7.763-6.5 10.04-5.15 3.004-9.38 6.916-12.55 11.987h-.001c-2.744 4.402-5.897 8.378-10.37 11.096-3.518 2.135-7.33 3.393-9.622 3.435-4.5-.003-7.96-1.125-10.346-3.068-2.388-1.944-3.746-4.718-3.99-8.213-.196-2.859.981-5.528 2.623-8.033v-.002c2.75-4.214 6.185-7.959 9.56-11.77 5.579-6.311 11.414-12.427 17.234-18.547 3.422-3.597 7.716-5.819 12.574-7.084h.002c1.74-.456 3.48-.912 5.219-1.283 3.137-.67 5.695-2.29 7.357-5.121h-.002c.647-1.1 1.241-2.143 2.145-2.817h.002c.37-.279.7-.558.941-.666zm-16.184 17.633a8.5 8.5 0 0 0-2.933.15c-3.473.776-5.543 3.304-7.024 6.11v.002h-.002c-1.92 3.647-3.93 7.015-7.512 9.082-4.838 2.793-8.774 6.555-12.145 10.916-1.94 2.511-4.384 4.865-5.652 8.09-1.112 2.812-1.074 5.577.045 7.646 1.116 2.065 3.355 3.35 6.248 3.18 5.741.01 9.691-2.687 12.996-6.117 3.51-3.636 5.42-8.18 7.556-12.44v-.001c.757-1.501 1.732-2.806 2.922-4.028v-.002c2.149-2.206 5.091-3.441 7.797-5.285 4.11-2.796 5.655-7.565 3.889-12.207v-.002c-1.093-2.894-3.392-4.735-6.186-5.094zm-.152 1.295c2.33.262 4.142 1.76 5.09 4.271l.002.002c1.572 4.132.276 8.138-3.393 10.633-2.554 1.74-5.61 3-8.002 5.457-1.269 1.302-2.334 2.726-3.158 4.362-2.163 4.313-4.034 8.705-7.324 12.113-3.19 3.31-6.715 5.73-12.06 5.713h-.02l-.022.002c-2.488.152-4.124-.848-5.01-2.487-.886-1.638-.977-3.998.021-6.521v-.002c1.132-2.88 3.448-5.15 5.467-7.764 3.29-4.257 7.095-7.885 11.756-10.576 3.938-2.271 6.087-5.929 8.027-9.615h-.002c1.4-2.652 3.15-4.763 6.137-5.43a7.6 7.6 0 0 1 2.49-.158zM186.84 67.453l-1.672 1.094 1.094 1.674 1.674-1.096zm2.191 3.346-1.673 1.095 1.095 1.674 1.674-1.096zm2.19 3.347-1.674 1.096 1.096 1.674 1.674-1.096zm2.191 3.348-1.674 1.094 1.096 1.674 1.672-1.094zm2.19 3.346-1.674 1.095 1.096 1.674 1.673-1.095zm2.19 3.347-1.673 1.096 1.094 1.674 1.674-1.096zm2.19 3.348-1.673 1.096 1.095 1.672 1.674-1.094zm2.19 3.348-1.674 1.094 1.096 1.674 1.674-1.096zm2.191 3.346-1.673 1.095.728 1.114 1.672-1.096zM180.99 136l-1.291.121.186 1.99 1.29-.119zm-3.281.307-1.992.183.185 1.992 1.99-.185zm-3.985.369-1.99.185.184 1.993 1.992-.186zm-3.982.37-1.992.186.185 1.99 1.993-.185zm-3.982.37-1.993.186.186 1.992 1.992-.186zm-3.983.371-1.992.186.186 1.99 1.99-.186zm-3.984.37-1.99.185.185 1.992 1.99-.186zm-3.983.37-1.99.186.184 1.99 1.992-.184zm-3.982.37-1.992.185.185 1.992 1.993-.185zm-3.982.37-1.993.186.186 1.99 1.992-.183zm-3.983.372-1.992.183.186 1.992 1.99-.185zm-3.984.369-1.99.185.185 1.993 1.99-.186zm-3.983.37-1.99.185.592 1.829 1.584-.023zM103.03 131.25l4 17 4-17zM107 60l4.5 18 4.5-18z"/><path d="m196 118 4 17 4-17zM242 51l4.5 18 4.5-18z"/></g><g class="uchighlight"><path d="m191.84 61.453-1.672 1.094 1.094 1.674 1.674-1.096zm2.191 3.346-1.673 1.095 1.095 1.674 1.674-1.096zm2.19 3.347-1.674 1.096 1.096 1.674 1.674-1.096zm2.191 3.348-1.674 1.094 1.096 1.674 1.672-1.094zm2.19 3.346-1.674 1.095 1.096 1.674 1.673-1.095zm2.19 3.347-1.673 1.096 1.094 1.674 1.674-1.096zm2.19 3.348-1.673 1.096 1.095 1.672 1.674-1.094zm2.19 3.348-1.674 1.094 1.096 1.674 1.674-1.096zm2.191 3.346-1.673 1.095.728 1.114 1.672-1.096zM206.46 71.865l4.5 18 4.5-18zM181.54 42.385l4.5 18 4.5-18z"/></g><g class="ucdraw"><path d="M36.51 30.38v.332h256v-.332zM36.51 56.38v.332h256v-.332zM36.51 82.38v.332h256v-.332zM36.51 108.38v.332h256v-.332zM36.51 134.38v.332h256v-.332zM36.51 160.38v.332h256v-.332z"/></g></svg>
diff --git a/subprojects/docs/src/components/UseCases/uc6.svg.license b/subprojects/docs/src/components/UseCases/uc6.svg.license
new file mode 100644
index 00000000..15aca74d
--- /dev/null
+++ b/subprojects/docs/src/components/UseCases/uc6.svg.license
@@ -0,0 +1,4 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
4
diff --git a/subprojects/docs/src/components/Video/cover-background.png b/subprojects/docs/src/components/Video/cover-background.png
new file mode 100644
index 00000000..11369ae3
--- /dev/null
+++ b/subprojects/docs/src/components/Video/cover-background.png
Binary files differ
diff --git a/subprojects/docs/src/components/Video/cover-background.png.license b/subprojects/docs/src/components/Video/cover-background.png.license
new file mode 100644
index 00000000..50ad65f2
--- /dev/null
+++ b/subprojects/docs/src/components/Video/cover-background.png.license
@@ -0,0 +1,9 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
4
5Modified image based on "Low Angle Shot of Manufacturing Plant under Blue Sky"
6available under the CC-1.0 license at
7https://www.pexels.com/photo/low-angle-shot-of-manufacturing-plant-under-blue-sky-257700/
8Original image "Bulgaria, Vratsa, Abandoned image. Free for use." by "2427999" also available at
9https://pixabay.com/photos/bulgaria-vratsa-abandoned-industry-1351947/
diff --git a/subprojects/docs/src/components/Video/cover.svg b/subprojects/docs/src/components/Video/cover.svg
new file mode 100644
index 00000000..632175d9
--- /dev/null
+++ b/subprojects/docs/src/components/Video/cover.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1280" height="720" viewBox="0 0 1280 720"><path fill="#fff" fill-opacity=".4" d="M0 95h1280v530H0z"/><path class="videocolor" fill-opacity=".702" d="M0 171h1205v378H0z"/><path class="videohighlight" d="M1261 95h19v530h-19z"/><path class="videocolor" d="M0 171h19v378H0z"/><g class="videotitle"><path fill-rule="evenodd" d="M1143 387.09v26.293c-69.4 3.985-192.57 26.695-256 95.615v-31.074c64.343-63.744 180.16-88.046 256-90.834M887 211c55.152 64.14 162.7 91.63 256 98.004V335.3c-93.3 6.374-200.85 33.866-256 98.003v-30.676c22.983-34.262 96.979-66.532 153.51-80.476-56.535-13.944-130.53-46.214-153.51-80.475z"/><text font-size="72" font-weight="800" transform="translate(31 439)">Video</text><text font-size="72" font-weight="800" transform="translate(31 525)">introduction</text></g><path class="videoplay" fill-rule="evenodd" d="M593.12 284.23v151.53l131.07-75.765zm46.879-85.227c88.918 0 161 72.082 161 161s-72.082 161-161 161-161-72.082-161-161 72.082-161 161-161"/></svg>
diff --git a/subprojects/docs/src/components/Video/cover.svg.license b/subprojects/docs/src/components/Video/cover.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/components/Video/cover.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/components/Video/index.module.css b/subprojects/docs/src/components/Video/index.module.css
new file mode 100644
index 00000000..4fbd1b80
--- /dev/null
+++ b/subprojects/docs/src/components/Video/index.module.css
@@ -0,0 +1,79 @@
1/*
2 * SPDX-FileCopyrightText: 2024 The Refinery Authors
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7:global(.videocolor) {
8 fill: var(--ifm-color-primary);
9}
10
11:global(.videohighlight) {
12 fill: var(--refinery-highlight);
13}
14
15[data-theme='dark'] :global(.videocolor) {
16 fill: var(--ifm-color-primary-darker);
17}
18
19.video__container {
20 position: relative;
21 width: 100%;
22 height: auto;
23 aspect-ratio: 560/315;
24 box-shadow: var(--ifm-global-shadow-lw);
25 transition: box-shadow var(--ifm-button-transition-duration) var(--ifm-transition-timing-default);
26}
27
28.video__container:hover,
29.video__container:focus-within {
30 box-shadow: var(--ifm-global-shadow-md);
31}
32
33.video,
34.video__button,
35.video__image,
36.video__svg,
37.video__svg > svg {
38 position: absolute;
39 top: 0;
40 left: 0;
41 width: 100%;
42 height: 100%;
43}
44
45.video__svg text {
46 font-family: var(--ifm-font-family-base);
47}
48
49.video__button {
50 margin: 0;
51 padding: 0;
52 border: none;
53 cursor: pointer;
54 background-size: cover;
55}
56
57.video__cover {
58 z-index: 1;
59}
60
61:global(.videoplay) {
62 fill: rgb(255 255 255 / 40%);
63 transition: fill var(--ifm-button-transition-duration) var(--ifm-transition-timing-default);
64}
65
66.video__container:hover :global(.videoplay),
67.video__container:focus-within :global(.videoplay) {
68 fill: rgb(255 255 255 / 70%);
69}
70
71:global(.videotitle) * {
72 fill: #303846;
73 transition: fill var(--ifm-button-transition-duration) var(--ifm-transition-timing-default);
74}
75
76.video__container:hover :global(.videotitle) *,
77.video__container:focus-within :global(.videotitle) * {
78 fill: #21252b;
79}
diff --git a/subprojects/docs/src/components/Video/index.tsx b/subprojects/docs/src/components/Video/index.tsx
new file mode 100644
index 00000000..bd36eaa4
--- /dev/null
+++ b/subprojects/docs/src/components/Video/index.tsx
@@ -0,0 +1,62 @@
1/*
2 * SPDX-FileCopyrightText: 2024 The Refinery Authors
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7import { useState } from 'react';
8
9import coverBackground from './cover-background.png?sizes[]=1920&sizes[]=1288&sizes[]=1108&&sizes[]=644&sizes[]=322&placeholder=true&rl';
10import Cover from './cover.svg';
11import styles from './index.module.css';
12
13export default function Video() {
14 const [started, setStarted] = useState(false);
15 return (
16 <>
17 <h2 className="sr-only">Check out the intro video</h2>
18 <div className="container">
19 <div className={styles['video__container']}>
20 {started ? (
21 <iframe
22 width="560"
23 height="315"
24 src="https://www.youtube-nocookie.com/embed/Qy_3udNsWsM?autoplay=1"
25 title="YouTube video player"
26 frameBorder="0"
27 allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
28 referrerPolicy="strict-origin-when-cross-origin"
29 allowFullScreen
30 className={styles['video']}
31 />
32 ) : (
33 <button
34 type="button"
35 aria-label="Video introduction"
36 title="Play video (requires acceping cookies from YouTube)"
37 onClick={() => setStarted(true)}
38 className={styles['video__button']}
39 style={{
40 backgroundImage: `url("${coverBackground.placeholder}")`,
41 }}
42 >
43 <img
44 alt=""
45 src={coverBackground.src}
46 srcSet={coverBackground.srcSet}
47 width={coverBackground.width}
48 height={coverBackground.height}
49 sizes="(min-width: 1440px) 1288px, (min-width: 1140px) 1108px, calc(100vw - 32px)"
50 loading="lazy"
51 className={styles['video__image']}
52 />
53 <div className={styles['video__svg']}>
54 <Cover />
55 </div>
56 </button>
57 )}
58 </div>
59 </div>
60 </>
61 );
62}
diff --git a/subprojects/docs/src/css/custom.css b/subprojects/docs/src/css/custom.css
new file mode 100644
index 00000000..30384369
--- /dev/null
+++ b/subprojects/docs/src/css/custom.css
@@ -0,0 +1,142 @@
1/*
2 * SPDX-FileCopyrightText: 2024 The Refinery Authors
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7@import '@fontsource-variable/open-sans/wdth.css';
8@import '@fontsource-variable/open-sans/wdth-italic.css';
9@import '@fontsource-variable/jetbrains-mono/wght.css';
10@import '@fontsource-variable/jetbrains-mono/wght-italic.css';
11
12@import './sr-only.css';
13
14:root {
15 --ifm-font-family-base: 'Open Sans Variable',
16 'Open Sans',
17 'Roboto',
18 'Helvetica',
19 'Arial',
20 sans-serif;
21 --ifm-font-family-monospace: 'JetBrains Mono Variable',
22 'JetBrains Mono',
23 'Cascadia Code',
24 'Fira Code',
25 monospace;
26 --ifm-code-font-size: 95%;
27 --ifm-background-surface-color: #f5f5f5;
28 --refinery-outer-border-color: rgb(0 0 0 / 0.21);
29 --ifm-font-color-base: #19202b;
30 --ifm-color-content-secondary: #696c77;
31 --ifm-color-primary: #038a99;
32 --ifm-color-primary-dark: #037c8a;
33 --ifm-color-primary-darker: #037582;
34 --ifm-color-primary-darkest: #02616b;
35 --ifm-color-primary-light: #0398a8;
36 --ifm-color-primary-lighter: #039fb0;
37 --ifm-color-primary-lightest: #04b3c7;
38 --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
39 --ifm-blockquote-color: var(--ifm-color-content-secondary);
40 --ifm-card-background-color: #fff;
41 /* elevation=4 shadow from Material UI. */
42 --ifm-global-shadow-md: 0px 2px 4px -1px rgba(0,0,0,0.2),
43 0px 4px 5px 0px rgba(0,0,0,0.14),
44 0px 1px 10px 0px rgba(0,0,0,0.12) !important;
45 /* elevation=8 shadow from Material UI. */
46 --ifm-global-shadow-tl: 0px 5px 5px -3px rgba(0,0,0,0.2),
47 0px 8px 10px 1px rgba(0,0,0,0.14),
48 0px 3px 14px 2px rgba(0,0,0,0.12) !important;
49 --refinery-highlight: #ca1243;
50}
51
52[data-theme='dark'] {
53 --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
54 --ifm-background-color: #21252b !important;
55 --ifm-background-surface-color: #282c34 !important;
56 --refinery-outer-border-color: transparent;
57 --ifm-font-color-base: #ebebff !important;
58 --ifm-color-content-secondary: #abb2bf !important;
59 --ifm-color-primary: #56b6c2;
60 --ifm-color-primary-dark: #43acb9;
61 --ifm-color-primary-darker: #3fa2af;
62 --ifm-color-primary-darkest: #348690;
63 --ifm-color-primary-light: #6bbfc9;
64 --ifm-color-primary-lighter: #75c3cd;
65 --ifm-color-primary-lightest: #94d1d8;
66 --ifm-card-background-color: var(--ifm-background-surface-color) !important;
67 --refinery-highlight: #e06c75;
68}
69
70code {
71 font-feature-settings: 'liga', 'calt';
72}
73
74.navbar {
75 --ifm-navbar-background-color: var(--ifm-background-surface-color) !important;
76 --ifm-navbar-shadow: 0 1px var(--refinery-outer-border-color) !important;
77}
78
79[data-theme='dark'] .navbar {
80 --ifm-navbar-shadow: var(--ifm-global-shadow-lw) !important;
81}
82
83.button, .navbar__link, .footer__link-item {
84 text-transform: uppercase;
85 font-variation-settings: 'wdth' 87.5;
86}
87
88.button--play::before {
89 content: '▶';
90 display: inline-block;
91 transform: translatey(-0.1em);
92 padding-right: 1ch;
93}
94
95.button, .navbar__link {
96 font-weight: 600;
97}
98
99.navbar__link--try-now {
100 color: var(--ifm-color-primary);
101 background: rgb(3 138 153 / 12%);
102 transition: background var(--ifm-button-transition-duration) var(--ifm-transition-timing-default);
103}
104
105.navbar__inner .navbar__link--try-now {
106 margin: 0 0.75rem 0 0.5rem;
107 padding: 0.25rem 1.25rem;
108 border-radius: 50em;
109}
110
111.navbar__link--try-now:hover,
112.navbar__link--try-now:active {
113 color: var(--ifm-color-primary);
114 background: rgb(3 138 153 / 16%);
115}
116
117[data-theme="dark"] .navbar__link--try-now {
118 background: rgb(86 182 194 / 16%);
119}
120
121[data-theme="dark"] .navbar__link--try-now:hover,
122[data-theme="dark"] .navbar__link--try-now:active {
123 background: rgb(86 182 194 / 24%);
124}
125
126.menu {
127 --ifm-menu-color: var(--ifm-color-content-secondary) !important;
128}
129
130.footer {
131 --ifm-footer-background-color: var(--ifm-background-surface-color) !important;
132 --ifm-footer-link-color: var(--ifm-color-content-secondary) !important;
133 box-shadow: 0 -1px var(--refinery-outer-border-color);
134}
135
136.hero__title {
137 font-weight: 800;
138}
139
140.markdown svg {
141 max-width: 100%;
142}
diff --git a/subprojects/docs/src/css/sr-only.css b/subprojects/docs/src/css/sr-only.css
new file mode 100644
index 00000000..dbd65fd3
--- /dev/null
+++ b/subprojects/docs/src/css/sr-only.css
@@ -0,0 +1,22 @@
1/*
2 * Copyright (c) 2010–2021 Kitty Giraudel
3 *
4 * SPDX-License-Identifier: MIT
5 *
6 * This snippet was copied from
7 * https://kittygiraudel.com/snippets/sr-only-class/
8 */
9
10.sr-only {
11 border: 0 !important;
12 clip: rect(1px, 1px, 1px, 1px) !important;
13 -webkit-clip-path: inset(50%) !important;
14 clip-path: inset(50%) !important;
15 height: 1px !important;
16 overflow: hidden !important;
17 margin: -1px !important;
18 padding: 0 !important;
19 position: absolute !important;
20 width: 1px !important;
21 white-space: nowrap !important;
22}
diff --git a/subprojects/docs/src/develop/contributing/commands.md b/subprojects/docs/src/develop/contributing/commands.md
new file mode 100644
index 00000000..abfea704
--- /dev/null
+++ b/subprojects/docs/src/develop/contributing/commands.md
@@ -0,0 +1,172 @@
1---
2SPDX-FileCopyrightText: 2024 The Refinery Authors
3SPDX-License-Identifier: EPL-2.0
4sidebar_position: 1
5title: Build commands
6---
7
8# Building from the command line
9
10## Gradle commands
11
12We use [Gradle](https://gradle.org/) to manage the compilation and tests of Refinery.
13
14Java code is built directly by Gradle.
15We use the [frontend-gradle-plugin](https://siouan.github.io/frontend-gradle-plugin/) to manage a [Node.js](https://nodejs.org/en) and [Yarn](https://yarnpkg.com/) installation, which in turn is used to build TypeScript code (including this documentation website).
16Typically, Yarn commands are issued by Gradle and you don't need to work with the TypeScript build system directly if you're only working on the Java parts of Refinery.
17
18### `build`
19
20```bash posix2windows
21./gradlew build
22```
23
24Compile all code, run all tests, and produce all build artifacts.
25
26You should run this command before submitting a [Pull request](https://github.com/graphs4value/refinery/pulls) to make sure that all code builds and tests pass on your local machine.
27This will also be run by GitHub Actions for each commit or pull requests.
28
29### `publishToMavenLocal`
30
31
32```bash posix2windows
33./gradlew publishToMavenLocal
34```
35
36Publishes the Refinery Java artifacts to the [Maven local repository](https://www.baeldung.com/maven-local-repository).
37
38Build tools, such as Gradle, will be able to consume such artifacts, which enables you to use the latest version of Refinery -- possibly including your own modification -- in other Java projects.
39
40For example, in Gradle, you may set
41
42```kotlin title="build.gradle.kts"
43repositories {
44 mavenLocal()
45}
46
47dependencies {
48 implementation("tools.refinery:refinery-generator:0.0.0-SNAPSHOT")
49}
50```
51
52to add a dependency on Refinery to your Java project.
53
54### `serve`
55
56```bash posix2windows
57./gradlew serve
58```
59
60Starts the Refinery backend and web interface on port 1312.
61
62This task is ideal for running the Refinery backend if you don't intend to work on the frontend.
63The Refinery frontend TypeScript projects is automatically built before the server starts.
64The server will use the latest build output of the frontend as static assets.
65
66The behavior of this task is influenced by the same [environmental variables](/learn/docker#environmental-variables) as the Refinery [Docker container](/learn/docker).
67However, the default value of `REFINERY_LISTEN_PORT` is `1312`.
68
69### `serveBackend`
70
71```bash posix2windows
72./gradlew serveBackend
73```
74
75Starts the Refinery backend on port 1312.
76
77This task is ideal for running the Refinery backend if you're working on the frontend.
78No static assets will be build.
79You'll need to use [`yarnw frontend dev`](#frontend-dev)
80
81Like [`gradlew serve`](#serve), the behavior of this task is influenced by the same [environmental variables](/learn/docker#environmental-variables) as the Refinery [Docker container](/learn/docker).
82However, the default value of `REFINERY_LISTEN_PORT` is `1312`.
83
84## Yarn commands
85
86We provide a `yarnw` wrapper script to invoke the Yarn distribution installed by frontend-gradle-plugin directly.
87The following commands can only be run once [`gradlew build`](#build) has installed the necessary Node.js and Yarn packages.
88
89### `docs dev`
90
91```bash posix2windows
92./yarn docs dev
93```
94
95Builds and serves this documentation in development mode on port 3000.
96Saved changes to most documentation sources are immediately reflected in the browse without reloading.
97
98You can set the port with the `-p` option, e.g. to use port 1313, use
99
100```bash posix2windows
101./yarn docs dev -p 1313
102```
103
104:::note
105
106Running this command for the first time may generate error messages like
107```
108ERROR failed to read input source map: failed to parse inline source map url
109```
110which can be safely ignored.
111
112:::
113
114### `frontend dev`
115
116```bash posix2windows
117./yarn frontend dev
118```
119
120Builds and serves the refinery frontend on port 1313.
121Saved changes to most source files are immediately reflected in the browser without reload.
122
123Before running this command, you need to start [`gradlew serveBackend`](#servebackend) to provide a backend for the frontend to connect to.
124The development server of the frontend will proxy all WebSocket connections to the backend.
125
126The following environmental variables influence the behavior of this command:
127
128#### `REFINERY_LISTEN_HOST`
129
130Hostname to listen at for incoming HTTP connections.
131
132**Default value:** `localhost`
133
134#### `REFINERY_LISTEN_PORT`
135
136TCP port to listen at for incoming HTTP connections.
137
138**Default value:** `1313`
139
140#### `REFINERY_BACKEND_HOST`
141
142Hostname of the Refinery backend.
143
144This should match the `REFINERY_LISTEN_HOST` passed to [`gradlew serveBackend`](#servebackend).
145
146**Default value:** `127.0.0.1` (connect to `localhost` over IPv4 only)
147
148#### `REFINERY_LISTEN_PORT`
149
150TCP port of the Refinery backend.
151
152This should match the `REFINERY_LISTEN_PORT` passed to [`gradlew serveBackend`](#servebackend).
153
154**Default value:** `1312`
155
156#### `REFINERY_PUBLIC_HOST`
157
158Publicly visible hostname of the Refinery instance.
159
160If you use a reverse proxy in front of the development server, you must set this variable.
161Otherwise, connections to the development server will fail due to cross-origin protection.
162
163**Default value:** equal to `REFINERY_LISTEN_HOST`
164
165#### `REFINERY_PUBLIC_PORT`
166
167Publicly visible port of the Refinery instance.
168
169If you use a reverse proxy in front of the development server, you must set this variable.
170Otherwise, connections to the development server will fail due to cross-origin protection.
171
172**Default value:** equal to `REFINERY_LISTEN_PORT`
diff --git a/subprojects/docs/src/develop/contributing/ide-setup.md b/subprojects/docs/src/develop/contributing/ide-setup.md
new file mode 100644
index 00000000..742035e0
--- /dev/null
+++ b/subprojects/docs/src/develop/contributing/ide-setup.md
@@ -0,0 +1,94 @@
1---
2SPDX-FileCopyrightText: 2021-2023 The Refinery Authors
3SPDX-License-Identifier: EPL-2.0
4sidebar_position: 2
5title: IDE setup
6---
7
8# Setting up the development environment
9
10## IntelliJ IDEA
11
12We prefer [IntelliJ IDEA](https://www.jetbrains.com/idea/) as a Java development environment.
13No special preparations should be necessary for importing the project as a Gradle project into IDEA:
14
151. See the [required tools](/develop/contributing#required-tools) for compiling Refinery about obtaining the required JDK version. You'll also need a version of IntelliJ IDEA that supports **Java 21** (version **2023.3** or later).
16
172. Clone the project git repository and open it in IntelliJ IDEA. Make sure to _open_ the project instead of creating a _new_ one in the same directory.
18
193. IntelliJ IDEA should build and index the project. If there are errors, it is likely that the `JAVA_HOME` was incorrectly set:
20 * In _Project Structure > Project settings > Project > SDK_, a Java 21 compatible JDK should be selected.
21 * In _Project Structure > Project settings > Project > Language level_, either _SDK default_ or _21_ should be selected.
22 * Make sure that each module in _Project Structure > Project settings > Module_ uses the _Project default_ language level in _Sources > Language level_ and the _Project SDK_ in _Dependencies > Module SDK._
23 * In _Settings > Gradle settings > Gralde Projects > Gradle_, the _Distribution_ should be set to _Wrapper_ and the _Gradle JVM_ should be set to _Project SDK._
24
254. We recommend installing the latest _SonarLint_ plugin in _Settings > Plugins_ to get real-time code quality analysis in your IDE.
26
27:::note
28
29You'll need [Eclipse](#eclipse) to edit Xtext (`*.xtext`) and MWE2 (`*.mwe2`) files and Ecore class diagrams (`*.aird`, `*.ecore`, `*.genmodel`).
30If you do not plan on making changes to such files, feel free to skip the Eclipse installation steps below.
31
32You'll also need [VS Code](#vs-code) to edit the TypeScript code in Refinery.
33
34:::
35
36## Eclipse
37
381. See the [required tools](/develop/contributing#required-tools) for compiling Refinery about obtaining the required JDK version.
39
402. Download and extract the [Eclipse IDE for Java and DSL Developers 2023-12](https://www.eclipse.org/downloads/packages/release/2023-12/r/eclipse-ide-java-and-dsl-developers) package.
41
423. Launch Eclipse and create a new workspace.
43
444. Open _Help > Eclipse Marketplace_ and install the following software:
45 * _EclEmma Java Code Coverage_
46 * _EcoreTools : Ecore Diagram Editor_
47 * _Sirius_ (ignore the warning during installation about the solution _Sirius_ not being available)
48 * _SonarLint_
49
505. Open _Window > Preferences_ and set the following preferences:
51 * _General > Workspace > Text file encoding_ should be _UTF-8_.
52 * _General > Workspace > New text file line delimiter_ should be _Unix_.
53 * Add the JDK 21 to _Java > Installed JREs_.
54 * Make sure JDK 21 is selected for _JavaSE-21_ at _Java > Installed JREs > Execution Environments_.
55 * Set _Gradle > Java home_ to the `JAVA_HOME` directory (the directory which contains the `bin` directory) of JDK 21. Here, Buildship will show a yellow warning sign, which can be safely ignored.
56 * Set _Java > Compiler > JDK Compliance > Compiler compliance level_ to _21_.
57
586. Clone the project Git repository but _do not_ import it into Eclipse yet.
59
607. Open a new terminal and run
61 ```bash posix2windows
62 ./gradlew prepareEclipse
63 ```
64 in the cloned repository.
65 * This should complete without any compilation errors.
66 * To troubleshoot any error, see the [instructions about compiling Refinery](/develop/contributing#compiling).
67
688. Select _File > Import... > Gradle > Existing Gradle Project_ and import the cloned repository in Eclipse.
69 * Make sure to select the root of the repository (containing this file) as the _Project root directory_ and that the _Gradle distribution_ is _Gradle wrapper_.
70 * If you have previously imported the project into Eclipse, this step will likely fail. In that case, you should remove the projects from Eclipse, run `git clean -fxd` in the repository, and start over from step 8.
71
72## VS Code
73
74We recommend [VSCodium](https://github.com/VSCodium/vscodium) or [Visual Studio Code](https://code.visualstudio.com/) to work with the parts of Refinery that are written is TypeScript.
75
761. See the [required tools](/develop/contributing#required-tools) for compiling Refinery about obtaining the required JDK version. You'll also need a version of IntelliJ IDEA that supports **Java 21** (version **2023.3** or later).
77
782. Install the following VS Code extensions:
79 * _EditorConfig for VS Code_ [[Open VSX](https://open-vsx.org/extension/EditorConfig/EditorConfig)] [[Extension Marketplace](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig)]
80 * _ZipFS - a zip file system_ [[Open VSX](https://open-vsx.org/extension/arcanis/vscode-zipfs)] [[Extension Marketplace](https://marketplace.visualstudio.com/items?itemName=arcanis.vscode-zipfs)]
81 * _ESLint_ [[Open VSX](https://open-vsx.org/extension/dbaeumer/vscode-eslint)] [[Extension Marketplace](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)]
82 * _XState VSCode_ [[Open VSX](https://open-vsx.org/extension/statelyai/stately-vscode)] [[Extension Marketplace](https://marketplace.visualstudio.com/items?itemName=statelyai.stately-vscode)]
83
843. Clone the project Git repository but _do not_ import it into VS Code yet.
85
864. Run
87 ```bash posix2windows
88 ./gradlew installFrontend
89 ```
90 to install all required Node.js tooling.
91
925. Open the repository with _Open Folder&hellip;_ in VS Code.
93 * When asked, select that you _Trust_ the folder.
94 * When asked, enable using the TypeScript and ESLint tooling specified in the repository.
diff --git a/subprojects/docs/src/develop/contributing/index.md b/subprojects/docs/src/develop/contributing/index.md
new file mode 100644
index 00000000..aa0bdb2f
--- /dev/null
+++ b/subprojects/docs/src/develop/contributing/index.md
@@ -0,0 +1,59 @@
1---
2SPDX-FileCopyrightText: 2024 The Refinery Authors
3SPDX-License-Identifier: EPL-2.0
4sidebar_position: 1
5title: Contributing
6---
7
8import TabItem from '@theme/TabItem';
9import Tabs from '@theme/Tabs';
10
11# Contributing to Refinery
12
13You can clone the refinery repository from GitHub at https://github.com/graphs4value/refinery.
14If you want to contribute code, we recommend [forking](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo) the repository on GitHub so that you can submit a [pull request](https://github.com/graphs4value/refinery/pulls) later.
15
16## Required tools
17
18Refinery is written in Java and TypeScript. To build Refinery, you'll need a **Java 21** compatible **Java Development Kit (JDK).** We recommend the [Adoptium Java 21 JDK](https://adoptium.net/) or the [Amazon Corretto Java 21 JDK](https://aws.amazon.com/corretto/).
19
20## Compiling Refinery {#compiling}
21
22To build Refinery, run the command
23```bash posix2windows
24./gradlew build
25```
26in the cloned repository.
27
28This should complete without any compilation errors.
29
30If you get any errors about the JVM version, check whether the `JAVA_HOME` environment variable is set to the location of **JDK 21**. You can query the variable with
31<Tabs groupId="posix2windows">
32 <TabItem value="posix" label="Linux or macOS">
33 ```bash
34 echo $JAVA_HOME
35 ```
36 </TabItem>
37 <TabItem value="windows" label="Windows (PowerShell)">
38 ```bash
39 echo $Env:JAVA_HOME
40 ```
41 </TabItem>
42</Tabs>
43To set the `JAVA_HOME` environmental variable, use
44<Tabs groupId="posix2windows">
45 <TabItem value="posix" label="Linux or macOS">
46 ```bash
47 export JAVA_HOME=/java/path/here
48 ```
49 </TabItem>
50 <TabItem value="windows" label="Windows (PowerShell)">
51 ```bash
52 $Env:JAVA_HOME="C:\java\path\here"
53 ```
54 </TabItem>
55</Tabs>
56
57If the build fails with a `Host name must not be empty` error, you [might need to remove the empty proxy configuration from your global `gradle.properties` file](https://stackoverflow.com/a/62128323).
58
59For further information, see the [supported build commands](/develop/contributing/commands) and the [instructions for setting up an IDE](/develop/contributing/ide-setup).
diff --git a/subprojects/docs/src/develop/index.md b/subprojects/docs/src/develop/index.md
new file mode 100644
index 00000000..4537889e
--- /dev/null
+++ b/subprojects/docs/src/develop/index.md
@@ -0,0 +1,13 @@
1---
2SPDX-FileCopyrightText: 2024 The Refinery Authors
3SPDX-License-Identifier: EPL-2.0
4sidebar_position: 0
5---
6
7# Programming guide
8
9:::warning
10
11Under construction
12
13:::
diff --git a/subprojects/docs/src/develop/javadoc.md b/subprojects/docs/src/develop/javadoc.md
new file mode 100644
index 00000000..225e9de0
--- /dev/null
+++ b/subprojects/docs/src/develop/javadoc.md
@@ -0,0 +1,42 @@
1---
2SPDX-FileCopyrightText: 2024 The Refinery Authors
3SPDX-License-Identifier: EPL-2.0
4description: API documentation for Refinery components automatically generated by Javadoc
5sidebar_position: 999
6---
7
8# Javadoc
9
10Here you can find API documentation for Refinery components automatically generated by Javadoc. We recommend reading the [Programming guide](/develop) first to understand how to use these components.
11
12# Refinery
13
14* [`tools.refinery:refinery-generator`](pathname://refinery-generator)
15* [`tools.refinery:refinery-generator-cli`](pathname://refinery-generator-cli)
16* [`tools.refinery:refinery-language`](pathname://refinery-language)
17* [`tools.refinery:refinery-language-ide`](pathname://refinery-language-ide)
18* [`tools.refinery:refinery-language-model`](pathname://refinery-language-model)
19* [`tools.refinery:refinery-language-semantics`](pathname://refinery-language-semantics)
20* [`tools.refinery:refinery-language-web`](pathname://refinery-language-web)
21* [`tools.refinery:refinery-logic`](pathname://refinery-logic)
22* [`tools.refinery:refinery-store`](pathname://refinery-store)
23* [`tools.refinery:refinery-store-dse`](pathname://refinery-store-dse)
24* [`tools.refinery:refinery-store-dse-visualization`](pathname://refinery-store-dse-visualization)
25* [`tools.refinery:refinery-store-query`](pathname://refinery-store-query)
26* [`tools.refinery:refinery-store-query-interpreter`](pathname://refinery-store-query-interpreter)
27* [`tools.refinery:refinery-store-reasoning`](pathname://refinery-store-reasoning)
28* [`tools.refinery:refinery-store-reasoning-scope`](pathname://refinery-store-reasoning-scope)
29* [`tools.refinery:refinery-store-reasoning-smt`](pathname://refinery-store-reasoning-smt)
30
31# Interpreter
32
33:::note
34
35The _Refinery Interpreter_ is modified version of [VIATRA&trade;](https://eclipse.dev/viatra/) specifically for use in Refinery. If you're interested in learning about [VIATRA&trade;](https://eclipse.dev/viatra/), we recommend the [VIATRA&trade; documentation](https://eclipse.dev/viatra/documentation/index.html) and [source code](https://github.com/eclipse-viatra/org.eclipse.viatra) instead. Eclipse&reg;, VIATRA&trade; and &lsquo;Eclipse VIATRA&trade;&rsquo; are trademarks of Eclipse Foundation, Inc.
36
37:::
38
39* [`tools.refinery.interpreter:refinery-interpreter`](pathname://refinery-interpreter)
40* [`tools.refinery.interpreter:refinery-interpreter-localsearch`](pathname://refinery-interpreter-localsearch)
41* [`tools.refinery.interpreter:refinery-interpreter-rete`](pathname://refinery-interpreter-rete)
42* [`tools.refinery.interpreter:refinery-interpreter-rete-recipes`](pathname://refinery-interpreter-rete-recipes)
diff --git a/subprojects/docs/src/learn/docker.md b/subprojects/docs/src/learn/docker.md
new file mode 100644
index 00000000..0df87da8
--- /dev/null
+++ b/subprojects/docs/src/learn/docker.md
@@ -0,0 +1,175 @@
1---
2SPDX-FileCopyrightText: 2024 The Refinery Authors
3SPDX-License-Identifier: EPL-2.0
4sidebar_position: 100
5sidebar_label: Docker
6---
7
8# Running in Docker
9
10:::note
11
12Refinery can run as a cloud-based _Graph Solver as a Service_ without local installation.
13If you're just looking to try Refinery, our [online demo](https://refinery.services/) provides a seamless experience without installation.
14
15:::
16
17:::info
18
19Installing Refinery as a Docker container can support more advanced use cases, such as when generating models with more resources or a longer timeout.
20
21:::
22
23To generate larger models with a longer timeout, you can use our [Docker container](https://github.com/graphs4value/refinery/pkgs/container/refinery) on either `amd64` or `arm64` machines:
24
25```shell
26docker run --rm -it -p 8888:8888 ghcr.io/graphs4value/refinery
27```
28
29Once Docker pulls and starts the container, you can navigate to http://localhost:8888 to open the model generation interface and start editing.
30
31Alternatively, you can follow the [instructions to set up a local development environment](/develop/contributing) and compile and run Refinery from source.
32
33## Updating
34
35To take advantage of the latest updates, you can simply re-pull our Docker container from the GitHub Container Registry:
36
37```shell
38docker pull ghcr.io/graphs4value/refinery
39```
40
41Restart the container to make sure that you're running the last pulled version.
42
43## Environmental variables
44
45The Docker container supports the following environmental variables to customize its behavior.
46Customizing these variable should only be needed if you want to _increase resource limits_ or _expose you Refinery instance over the network_ for others.
47
48Notes for **local-only instances** are highlighted with the :arrow_right: arrow emoji.
49
50Important security notices for **public instances** are highlighted with the :warning: warning emoji.
51
52### Networking
53
54#### `REFINERY_LISTEN_HOST`
55
56Hostname to listen at for incoming HTTP connections.
57
58**Default value:** `0.0.0.0` (accepts connections on any IP address)
59
60#### `REFINERY_LISTEN_PORT`
61
62TCP port to listen at for incoming HTTP connections.
63
64Refinery doesn't support HTTPS connections out of the box, so there's no point in setting this to `443`. Use a [reverse proxy](https://en.wikipedia.org/wiki/Reverse_proxy) instead if you wish to expose Refinery to encrypted connections.
65
66If you change this value, don't forget to adjust the `-p 8888:8888` option of the `docker run` command to [expose](https://docs.docker.com/reference/cli/docker/container/run/#publish) the selected port.
67
68**Default value:** `8888`
69
70#### `REFINERY_PUBLIC_HOST`
71
72Publicly visible hostname of the Refinery instance.
73
74:arrow_right: For installations only accessed locally (i.e., `localhost:8888`) without any reverse proxy, you can safely leave this empty.
75
76:warning: You should set this to the publicly visible hostname of your Refinery instance if you wish to expose Refinery over the network. Most likely, this will be the hostname of a reverse proxy that terminates TLS connections. Our online demo sets this to [refinery.services](https://refinery.services/).
77
78**Default value:** _empty_
79
80#### `REFINERY_PUBLIC_PORT`
81
82Publicly visible port of the Refinery instance.
83
84:arrow_right: For installations only accessed locally (i.e., `localhost:8888`), this value is ignored because `REFINERY_PUBLC_HOST` is not set.
85
86**Default value:** `443`
87
88#### `REFINERY_ALLOWED_ORIGINS`
89
90Comma-separated list of allowed origins for incoming WebSocket connections. If this variable is empty, all incoming WebSocket connections are accepted.
91
92:arrow_right: For installations only accessed locally (i.e., `localhost:8888`) without any reverse proxy, you can safely leave this empty.
93
94:warning: The value inferred from `REFINERY_PUBLIC_HOST` and `REFINERY_PUBLIC_PORT` should be suitable for instances exposed over the network. For security reasons, public instances should never leave this empty.
95
96**Default value:** equal to `REFINERY_PUBLIC_HOST:REFINERY_PUBLIC_PORT` if they are both set, _empty_ otherwise
97
98### Timeouts
99
100#### `REFINERY_SEMANTICS_TIMEOUT_MS`
101
102Timeout for partial model semantics calculation in milliseconds.
103
104:arrow_right: Increase this if you have a slower machine and the editor times out before showing a preview of your partial model in the _Graph_ or _Table_ views.
105
106:warning: Increasing this timeout may increase server load. Excessively large timeout may allow users to overload you server by entering extremely complex partial models.
107
108**Default value:** `1000`
109
110#### `REFINERY_SEMANTICS_WARMUP_TIMEOUT_MS`
111
112Timeout for partial model semantics calculation in milliseconds when the server first start.
113
114Due to various initialization tasks, the first partial model semantics generation may take longer the `REFINERY_SEMANTICS_TIMEOUT_MS` and display a timeout error. This setting increases the timeout for the first generation, leading to seamless use even after server start (especially in auto-scaling setups).
115
116**Default value:** equal to 2 &times; `REFINERY_SEMANTICS_TIMEOUT`
117
118#### `REFINERY_MODEL_GENERATION_TIMEOUT_SEC`
119
120Timeout for model generation in seconds.
121
122:arrow_right: Adjust this value if you're generating very large models (> 10000 nodes) and need more time to complete a generation. Note that some _unsatisfiable_ model generation problems cannot be detected by Refinery and will result in model generation running for an arbitrarily long time without producing any solution.
123
124:warning: Long running model generation will block a [_model generation thread_](#refinery_model_generation_thread_count). Try to balance the number of threads and the timeout to avoid exhausting system resources, but keep the wait time for a free model generation thread for users reasonably short. Auto-scaling to multiple instances may help with bursty demand.
125
126**Default value:** `600` (10 minutes)
127
128### Threading
129
130:warning: Excessively large values may overload the server. Make sure that _all_ Refinery threads can run at the same time to avoid thread starvation.
131
132#### `REFINERY_XTEXT_THREAD_COUNT`
133
134Number of threads used for non-blocking text editing operations. A value of `0` allows an _unlimited_ number of threads by running each semantics calculation in a new thread.
135
136:warning: Excessively large values may overload the server. Make sure that _all_ Refinery threads can run at the same time to avoid thread starvation.
137
138**Default value:** `1`
139
140#### `REFINERY_XTEXT_LOCKING_THREAD_COUNT`
141
142Number of threads used for text editing operations that lock the document. A value of `0` allows an _unlimited_ number of threads by running each semantics calculation in a new thread.
143
144
145**Default value:** equal to `REFINERY_XTEXT_THREAD_COUNT`
146
147#### `REFINERY_XTEXT_SEMANTICS_THREAD_COUNT`
148
149Number of threads used for model semantics calculation. A value of `0` allows an _unlimited_ number of threads by running each semantics calculation in a new thread.
150
151Must be at least as large as `REFINERY_XTEXT_THREAD_COUNT`.
152
153:warning: Excessively large values may overload the server. Make sure that _all_ Refinery threads can run at the same time to avoid thread starvation.
154
155**Default value:** equal to `REFINERY_XTEXT_THREAD_COUNT`
156
157#### `REFINERY_MODEL_GENERATION_THREAD_COUNT`
158
159Number of threads used for model semantics calculation. A value of `0` allows an _unlimited_ number of threads by running each semantics calculation in a new thread.
160
161:warning: Excessively large values may overload the server. Make sure that _all_ Refinery threads can run at the same time to avoid thread starvation. Each model generation task may also demand a large amount of memory in addition to CPU time.
162
163**Default value:** equal to `REFINERY_XTEXT_THREAD_COUNT`
164
165### Libraries
166
167#### `REFINERY_LIBRARY_PATH`
168
169Modules (`.refinery` files) in this directory or colon-separated list of directories will be exposed to user via Refinery's `import` mechanism.
170
171:arrow_right: Use this in conjunction with the [mount volume (-v)](https://docs.docker.com/reference/cli/docker/container/run/#volume) option of `docker run` to work with multi-file projects in Refinery.
172
173:warning: Make sure you only expose files that you want to make public. It's best to expose a directory that contains nothing other that `.refinery` files to minimize potential information leaks.
174
175**Default value:** _empty_ (no directories are exposed)
diff --git a/subprojects/docs/src/learn/index.md b/subprojects/docs/src/learn/index.md
new file mode 100644
index 00000000..bb28df57
--- /dev/null
+++ b/subprojects/docs/src/learn/index.md
@@ -0,0 +1,11 @@
1---
2SPDX-FileCopyrightText: 2024 The Refinery Authors
3SPDX-License-Identifier: EPL-2.0
4sidebar_position: 0
5---
6
7# Introduction
8
9Various software and systems engineering scenarios rely on the systematic construction of consistent graph models. However, **automatically generating a diverse set of consistent graph models** for complex domain specifications is challenging. First, the graph generation problem must be specified with mathematical precision. Moreover, graph generation is a computationally complex task, which necessitates specialized logic solvers.
10
11**Refinery is a novel open-source software framework** to automatically synthesize a diverse set of consistent domain-specific graph models. The framework offers an expressive high-level specification language using partial models to succinctly formulate a wide range of graph generation challenges. It also provides a modern cloud-based architecture for a scalable _Graph Solver as a Service,_ which uses logic reasoning rules to efficiently synthesize a diverse set of solutions to graph generation problems by partial model refinement. Applications include system-level architecture synthesis, test generation for modeling tools or traffic scenario synthesis for autonomous vehicles.
diff --git a/subprojects/docs/src/learn/language/_category_.yml b/subprojects/docs/src/learn/language/_category_.yml
new file mode 100644
index 00000000..f5a6f896
--- /dev/null
+++ b/subprojects/docs/src/learn/language/_category_.yml
@@ -0,0 +1,10 @@
1# SPDX-FileCopyrightText: 2024 The Refinery Authors
2#
3# SPDX-License-Identifier: EPL-2.0
4
5position: 2
6label: Language reference
7link:
8 type: generated-index
9 slug: /language
10 description: Learn more about the Refinery partial modeling language!
diff --git a/subprojects/docs/src/learn/language/classes/ContainmentInstance.svg b/subprojects/docs/src/learn/language/classes/ContainmentInstance.svg
new file mode 100644
index 00000000..197f4b48
--- /dev/null
+++ b/subprojects/docs/src/learn/language/classes/ContainmentInstance.svg
@@ -0,0 +1,227 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="395pt" height="226pt" viewBox="-6 -6 407.4700012207031 238.39999389648438" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery-sdYDAL2PsHukjJUpNyUhU"><style>.refinery-sdYDAL2PsHukjJUpNyUhU .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-sdYDAL2PsHukjJUpNyUhU .node .node-outline{stroke:#19202b;}.refinery-sdYDAL2PsHukjJUpNyUhU .node .node-header{fill:rgb(53, 161, 173);}.refinery-sdYDAL2PsHukjJUpNyUhU .node .node-bg{fill:#fff;}.refinery-sdYDAL2PsHukjJUpNyUhU .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery-sdYDAL2PsHukjJUpNyUhU .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery-sdYDAL2PsHukjJUpNyUhU .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-g .node-header{fill:#e5c07b;}.refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-h .node-header{fill:#e06c75;}.refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-i .node-header{fill:#98c379;}.refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-j .node-header{fill:#c678dd;}.refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-k .node-header{fill:#80a7f4;}.refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-m .node-header{fill:#e78b8f;}.refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-n .node-header{fill:#abcc94;}.refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-p .node-header{fill:#92c0e9;}.refinery-sdYDAL2PsHukjJUpNyUhU .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-sdYDAL2PsHukjJUpNyUhU .edge .edge-line{stroke:#19202b;}.refinery-sdYDAL2PsHukjJUpNyUhU .edge .edge-arrow{fill:#19202b;}.refinery-sdYDAL2PsHukjJUpNyUhU .edge-UNKNOWN text{fill:#696c77;}.refinery-sdYDAL2PsHukjJUpNyUhU .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery-sdYDAL2PsHukjJUpNyUhU .edge-UNKNOWN .edge-arrow{fill:none;}.refinery-sdYDAL2PsHukjJUpNyUhU .edge-ERROR text{fill:#ca1243;}.refinery-sdYDAL2PsHukjJUpNyUhU .edge-ERROR .edge-line{stroke:#ca1243;}.refinery-sdYDAL2PsHukjJUpNyUhU .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery-sdYDAL2PsHukjJUpNyUhU .icon-TRUE{fill:#19202b;}.refinery-sdYDAL2PsHukjJUpNyUhU .icon-UNKNOWN{fill:#696c77;}.refinery-sdYDAL2PsHukjJUpNyUhU .icon-ERROR{fill:#ca1243;}.refinery-sdYDAL2PsHukjJUpNyUhU text.label-UNKNOWN{fill:#696c77;}.refinery-sdYDAL2PsHukjJUpNyUhU text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-sdYDAL2PsHukjJUpNyUhU text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-sdYDAL2PsHukjJUpNyUhU-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-sdYDAL2PsHukjJUpNyUhU-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-sdYDAL2PsHukjJUpNyUhU-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="scale(1 1) rotate(0) translate(4 222.4)">
4<!-- n3 -->
5<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-h">
6
7<rect stroke="none" x="155.95" y="-133.6" width="64.03" height="48.8" rx="12" ry="12" class="node-bg"/>
8<rect stroke="none" x="151" y="-137" width="72" height="27" clip-path="url(#refinery-sdYDAL2PsHukjJUpNyUhU-clip-0)" class="node-header"/>
9<text text-anchor="start" x="181.53" y="-117.8" font-size="12.00">v1</text>
10<use x="161.952" y="-104" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-sdYDAL2PsHukjJUpNyUhU-icon-TRUE"/>
11<g><text text-anchor="start" x="177.95" y="-94.4" font-size="12.00" class="label label-TRUE">Vertex</text>
12</g>
13<polyline points="155.95,-110.2 219.98,-110.2" class="node-outline"/>
14<rect fill="none" x="155.95" y="-133.6" width="64.03" height="48.8" rx="12" ry="12" class="node-outline"/>
15<clipPath id="refinery-sdYDAL2PsHukjJUpNyUhU-clip-0"><rect stroke="none" x="155.95" y="-133.6" width="64.03" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
16<!-- n4 -->
17<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-k">
18
19<rect stroke="none" x="113.78" y="-218.4" width="66.37" height="48.80000000000001" rx="12" ry="12" class="node-bg"/>
20<rect stroke="none" x="109" y="-222" width="74" height="27" clip-path="url(#refinery-sdYDAL2PsHukjJUpNyUhU-clip-1)" class="node-header"/>
21<text text-anchor="start" x="141.09" y="-202.6" font-size="12.00">r1</text>
22<use x="119.78" y="-188.8" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-sdYDAL2PsHukjJUpNyUhU-icon-TRUE"/>
23<g><text text-anchor="start" x="135.78" y="-179.2" font-size="12.00" class="label label-TRUE">Region</text>
24</g>
25<polyline points="113.78,-195 180.15,-195" class="node-outline"/>
26<rect fill="none" x="113.78" y="-218.4" width="66.37" height="48.80000000000001" rx="12" ry="12" class="node-outline"/>
27<clipPath id="refinery-sdYDAL2PsHukjJUpNyUhU-clip-1"><rect stroke="none" x="113.78" y="-218.4" width="66.37" height="48.80000000000001" rx="12" ry="12" class="node-bg"/></clipPath></g>
28<!-- n3&#45;&gt;n4 -->
29<g class="edge edge-TRUE">
30
31<path fill="none" d="M182.6,-133.43C179.13,-141.63 174.65,-151.02 170,-159.88" class="edge-line"/>
32<polygon points="166.95,-158.15 165.24,-168.61 173.1,-161.5 166.95,-158.15" class="edge-line edge-arrow"/>
33<text text-anchor="middle" x="158.39" y="-155.04" font-size="10.50">region</text>
34</g>
35<!-- n8 -->
36<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-i">
37
38<rect stroke="none" x="53.86" y="-48.8" width="84.22000000000001" height="48.8" rx="12" ry="12" class="node-bg"/>
39<rect stroke="none" x="49" y="-52" width="92" height="27" clip-path="url(#refinery-sdYDAL2PsHukjJUpNyUhU-clip-2)" class="node-header"/>
40<text text-anchor="start" x="90.42" y="-33" font-size="12.00">t1</text>
41<use x="59.8559" y="-19.2" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-sdYDAL2PsHukjJUpNyUhU-icon-TRUE"/>
42<g><text text-anchor="start" x="75.86" y="-9.6" font-size="12.00" class="label label-TRUE">Transition</text>
43</g>
44<polyline points="53.86,-25.4 138.08,-25.4" class="node-outline"/>
45<rect fill="none" x="53.86" y="-48.8" width="84.22000000000001" height="48.8" rx="12" ry="12" class="node-outline"/>
46<clipPath id="refinery-sdYDAL2PsHukjJUpNyUhU-clip-2"><rect stroke="none" x="53.86" y="-48.8" width="84.22000000000001" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
47<!-- n3&#45;&gt;n8 -->
48<g class="edge edge-TRUE">
49
50<path fill="none" stroke-width="2" d="M155.95,-84.92C145.63,-76.18 134.29,-66.11 124.25,-56.77" class="edge-line"/>
51<polygon stroke-width="2" points="126.48,-54.66 118.02,-50.88 122.27,-59.11 126.48,-54.66" class="edge-line edge-arrow"/>
52<text text-anchor="start" x="35.36" y="-71.18" font-weight="bold" font-size="10.50">outgoingTransition</text>
53</g>
54<!-- n3&#45;&gt;n8 -->
55
56<!-- n9 -->
57<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-i">
58
59<rect stroke="none" x="155.86" y="-48.8" width="84.22" height="48.8" rx="12" ry="12" class="node-bg"/>
60<rect stroke="none" x="151" y="-52" width="92" height="27" clip-path="url(#refinery-sdYDAL2PsHukjJUpNyUhU-clip-3)" class="node-header"/>
61<text text-anchor="start" x="192.42" y="-33" font-size="12.00">t2</text>
62<use x="161.856" y="-19.2" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-sdYDAL2PsHukjJUpNyUhU-icon-TRUE"/>
63<g><text text-anchor="start" x="177.86" y="-9.6" font-size="12.00" class="label label-TRUE">Transition</text>
64</g>
65<polyline points="155.86,-25.4 240.08,-25.4" class="node-outline"/>
66<rect fill="none" x="155.86" y="-48.8" width="84.22" height="48.8" rx="12" ry="12" class="node-outline"/>
67<clipPath id="refinery-sdYDAL2PsHukjJUpNyUhU-clip-3"><rect stroke="none" x="155.86" y="-48.8" width="84.22" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
68<!-- n3&#45;&gt;n9 -->
69<g class="edge edge-TRUE">
70
71<path fill="none" stroke-width="2" d="M172.38,-85.14C171.61,-77.31 172.15,-68.38 173.81,-59.86" class="edge-line"/>
72<polygon stroke-width="2" points="176.73,-60.8 175.99,-51.56 170.81,-59.24 176.73,-60.8" class="edge-line edge-arrow"/>
73<text text-anchor="start" x="72.62" y="-58.26" font-weight="bold" font-size="10.50">outgoingTransition</text>
74</g><g class="edge edge-TRUE">
75
76<path fill="none" d="M184.63,-85.14C185,-77.31 185.9,-68.38 187.14,-59.86" class="edge-line"/>
77<polygon points="190.57,-60.56 188.77,-50.12 183.67,-59.4 190.57,-60.56" class="edge-line edge-arrow"/>
78<text text-anchor="middle" x="233.31" y="-70.26" font-size="10.50">incomingTransition</text>
79</g>
80<!-- n3&#45;&gt;n9 -->
81
82<!-- n10 -->
83<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-i">
84
85<rect stroke="none" x="257.86" y="-48.8" width="84.21999999999997" height="48.8" rx="12" ry="12" class="node-bg"/>
86<rect stroke="none" x="253" y="-52" width="92" height="27" clip-path="url(#refinery-sdYDAL2PsHukjJUpNyUhU-clip-4)" class="node-header"/>
87<text text-anchor="start" x="294.42" y="-33" font-size="12.00">t3</text>
88<use x="263.856" y="-19.2" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-sdYDAL2PsHukjJUpNyUhU-icon-TRUE"/>
89<g><text text-anchor="start" x="279.86" y="-9.6" font-size="12.00" class="label label-TRUE">Transition</text>
90</g>
91<polyline points="257.86,-25.4 342.08,-25.4" class="node-outline"/>
92<rect fill="none" x="257.86" y="-48.8" width="84.21999999999997" height="48.8" rx="12" ry="12" class="node-outline"/>
93<clipPath id="refinery-sdYDAL2PsHukjJUpNyUhU-clip-4"><rect stroke="none" x="257.86" y="-48.8" width="84.21999999999997" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
94<!-- n3&#45;&gt;n10 -->
95
96<!-- n4&#45;&gt;n3 -->
97<g class="edge edge-TRUE">
98
99<path fill="none" stroke-width="2" d="M152.26,-169.94C155.72,-161.75 160.2,-152.37 164.84,-143.5" class="edge-line"/>
100<polygon stroke-width="2" points="167.39,-145.24 168.88,-136.09 162.01,-142.31 167.39,-145.24" class="edge-line edge-arrow"/>
101<text text-anchor="start" x="119.24" y="-143.04" font-weight="bold" font-size="10.50">vertices</text>
102</g>
103<!-- n5 -->
104<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-h">
105
106<rect stroke="none" x="73.95" y="-133.6" width="64.02999999999999" height="48.8" rx="12" ry="12" class="node-bg"/>
107<rect stroke="none" x="69" y="-137" width="72" height="27" clip-path="url(#refinery-sdYDAL2PsHukjJUpNyUhU-clip-5)" class="node-header"/>
108<text text-anchor="start" x="99.53" y="-117.8" font-size="12.00">v2</text>
109<use x="79.9516" y="-104" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-sdYDAL2PsHukjJUpNyUhU-icon-TRUE"/>
110<g><text text-anchor="start" x="95.95" y="-94.4" font-size="12.00" class="label label-TRUE">Vertex</text>
111</g>
112<polyline points="73.95,-110.2 137.98,-110.2" class="node-outline"/>
113<rect fill="none" x="73.95" y="-133.6" width="64.02999999999999" height="48.8" rx="12" ry="12" class="node-outline"/>
114<clipPath id="refinery-sdYDAL2PsHukjJUpNyUhU-clip-5"><rect stroke="none" x="73.95" y="-133.6" width="64.02999999999999" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
115<!-- n4&#45;&gt;n5 -->
116<g class="edge edge-TRUE">
117
118<path fill="none" stroke-width="2" d="M129.42,-169.94C124.87,-161.93 120.16,-152.77 116.09,-144.08" class="edge-line"/>
119<polygon stroke-width="2" points="118.93,-142.93 112.57,-136.19 113.34,-145.43 118.93,-142.93" class="edge-line edge-arrow"/>
120<text text-anchor="start" x="78.34" y="-156.05" font-weight="bold" font-size="10.50">vertices</text>
121</g>
122<!-- n5&#45;&gt;n4 -->
123<g class="edge edge-TRUE">
124
125<path fill="none" d="M123.6,-133.43C128.21,-141.54 132.96,-150.81 137.06,-159.59" class="edge-line"/>
126<polygon points="133.79,-160.84 141.05,-168.55 140.18,-157.99 133.79,-160.84" class="edge-line edge-arrow"/>
127<text text-anchor="middle" x="117.57" y="-142.24" font-size="10.50">region</text>
128</g>
129<!-- n5&#45;&gt;n8 -->
130<g class="edge edge-TRUE">
131
132<path fill="none" d="M97.06,-85.14C95.54,-77.31 94.28,-68.38 93.46,-59.86" class="edge-line"/>
133<polygon points="96.97,-59.85 92.75,-50.14 89.99,-60.37 96.97,-59.85" class="edge-line edge-arrow"/>
134<text text-anchor="middle" x="47.13" y="-57.66" font-size="10.50">incomingTransition</text>
135</g>
136<!-- n5&#45;&gt;n9 -->
137
138<!-- n5&#45;&gt;n10 -->
139
140<!-- n6 -->
141<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-h">
142
143<rect stroke="none" x="267.95" y="-133.6" width="64.03000000000003" height="48.8" rx="12" ry="12" class="node-bg"/>
144<rect stroke="none" x="263" y="-137" width="72" height="27" clip-path="url(#refinery-sdYDAL2PsHukjJUpNyUhU-clip-6)" class="node-header"/>
145<text text-anchor="start" x="293.53" y="-117.8" font-size="12.00">v3</text>
146<use x="273.952" y="-104" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-sdYDAL2PsHukjJUpNyUhU-icon-TRUE"/>
147<g><text text-anchor="start" x="289.95" y="-94.4" font-size="12.00" class="label label-TRUE">Vertex</text>
148</g>
149<polyline points="267.95,-110.2 331.98,-110.2" class="node-outline"/>
150<rect fill="none" x="267.95" y="-133.6" width="64.03000000000003" height="48.8" rx="12" ry="12" class="node-outline"/>
151<clipPath id="refinery-sdYDAL2PsHukjJUpNyUhU-clip-6"><rect stroke="none" x="267.95" y="-133.6" width="64.03000000000003" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g><g class="edge edge-TRUE">
152
153<path fill="none" d="M293.84,-85.14C293.27,-77.31 293.09,-68.38 293.3,-59.86" class="edge-line"/>
154<polygon points="296.78,-60.29 293.76,-50.14 289.79,-59.96 296.78,-60.29" class="edge-line edge-arrow"/>
155<text text-anchor="middle" x="340.34" y="-70.26" font-size="10.50">incomingTransition</text>
156</g>
157<!-- n7 -->
158<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-k">
159
160<rect stroke="none" x="266.78" y="-218.4" width="66.37" height="48.80000000000001" rx="12" ry="12" class="node-bg"/>
161<rect stroke="none" x="262" y="-222" width="74" height="27" clip-path="url(#refinery-sdYDAL2PsHukjJUpNyUhU-clip-7)" class="node-header"/>
162<text text-anchor="start" x="294.09" y="-202.6" font-size="12.00">r2</text>
163<use x="272.78" y="-188.8" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-sdYDAL2PsHukjJUpNyUhU-icon-TRUE"/>
164<g><text text-anchor="start" x="288.78" y="-179.2" font-size="12.00" class="label label-TRUE">Region</text>
165</g>
166<polyline points="266.78,-195 333.15,-195" class="node-outline"/>
167<rect fill="none" x="266.78" y="-218.4" width="66.37" height="48.80000000000001" rx="12" ry="12" class="node-outline"/>
168<clipPath id="refinery-sdYDAL2PsHukjJUpNyUhU-clip-7"><rect stroke="none" x="266.78" y="-218.4" width="66.37" height="48.80000000000001" rx="12" ry="12" class="node-bg"/></clipPath></g>
169<!-- n6&#45;&gt;n7 -->
170<g class="edge edge-TRUE">
171
172<path fill="none" d="M306.1,-133.43C306.67,-141.27 306.84,-150.2 306.63,-158.72" class="edge-line"/>
173<polygon points="303.14,-158.27 306.16,-168.42 310.14,-158.6 303.14,-158.27" class="edge-line edge-arrow"/>
174<text text-anchor="middle" x="291.03" y="-142.02" font-size="10.50">region</text>
175</g>
176<!-- n6&#45;&gt;n8 -->
177
178<!-- n6&#45;&gt;n9 -->
179
180<!-- n6&#45;&gt;n10 -->
181<g class="edge edge-TRUE">
182
183<path fill="none" d="M213.57,-48.63C214.33,-56.56 213.75,-65.61 212.03,-74.21" class="edge-line"/>
184<polygon points="208.7,-73.11 209.51,-83.67 215.47,-74.91 208.7,-73.11" class="edge-line edge-arrow"/>
185<text text-anchor="middle" x="198.62" y="-70.03" font-size="10.50">target</text>
186</g>
187<!-- n6&#45;&gt;n10 -->
188
189<!-- n7&#45;&gt;n6 -->
190<g class="edge edge-TRUE">
191
192<path fill="none" stroke-width="2" d="M293.84,-169.94C293.28,-162.19 293.09,-153.38 293.29,-144.95" class="edge-line"/>
193<polygon stroke-width="2" points="296.34,-145.33 293.69,-136.45 290.22,-145.05 296.34,-145.33" class="edge-line edge-arrow"/>
194<text text-anchor="start" x="251.69" y="-155.87" font-weight="bold" font-size="10.50">vertices</text>
195</g><g class="edge edge-TRUE">
196
197<path fill="none" stroke-width="2" d="M281.6,-85.14C279.9,-77.39 279.35,-68.58 279.95,-60.15" class="edge-line"/>
198<polygon stroke-width="2" points="282.96,-60.72 281.14,-51.63 276.9,-59.87 282.96,-60.72" class="edge-line edge-arrow"/>
199<text text-anchor="start" x="179.61" y="-58.47" font-weight="bold" font-size="10.50">outgoingTransition</text>
200</g><g class="edge edge-TRUE">
201
202<path fill="none" d="M318.37,-48.63C320.07,-56.47 320.6,-65.4 319.95,-73.92" class="edge-line"/>
203<polygon points="316.51,-73.24 318.55,-83.64 323.44,-74.24 316.51,-73.24" class="edge-line edge-arrow"/>
204<text text-anchor="middle" x="305.62" y="-57.22" font-size="10.50">target</text>
205</g>
206<g class="edge edge-TRUE">
207
208<path fill="none" d="M127.91,-48.63C138.46,-57.54 150.06,-67.86 160.27,-77.38" class="edge-line"/>
209<polygon points="157.7,-79.76 167.36,-84.09 162.51,-74.68 157.7,-79.76" class="edge-line edge-arrow"/>
210<text text-anchor="middle" x="165.07" y="-69.83" font-size="10.50">source</text>
211</g><g class="edge edge-TRUE">
212
213<path fill="none" d="M104.91,-48.63C106.42,-56.47 107.67,-65.4 108.49,-73.92" class="edge-line"/>
214<polygon points="104.98,-73.91 109.19,-83.63 111.96,-73.4 104.98,-73.91" class="edge-line edge-arrow"/>
215<text text-anchor="middle" x="122.29" y="-69.82" font-size="10.50">target</text>
216</g><g class="edge edge-TRUE">
217
218<path fill="none" d="M201.3,-48.63C200.91,-56.47 200.01,-65.4 198.77,-73.92" class="edge-line"/>
219<polygon points="195.34,-73.2 197.13,-83.64 202.24,-74.36 195.34,-73.2" class="edge-line edge-arrow"/>
220<text text-anchor="middle" x="183.25" y="-57.22" font-size="10.50">source</text>
221</g><g class="edge edge-TRUE">
222
223<path fill="none" d="M306.1,-48.63C306.67,-56.47 306.84,-65.4 306.63,-73.92" class="edge-line"/>
224<polygon points="303.14,-73.47 306.16,-83.62 310.14,-73.8 303.14,-73.47" class="edge-line edge-arrow"/>
225<text text-anchor="middle" x="323.2" y="-57.22" font-size="10.50">source</text>
226</g></g>
227</svg> \ No newline at end of file
diff --git a/subprojects/docs/src/learn/language/classes/ContainmentInstance.svg.license b/subprojects/docs/src/learn/language/classes/ContainmentInstance.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/language/classes/ContainmentInstance.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/language/classes/InvalidInstance.svg b/subprojects/docs/src/learn/language/classes/InvalidInstance.svg
new file mode 100644
index 00000000..fb9dd37d
--- /dev/null
+++ b/subprojects/docs/src/learn/language/classes/InvalidInstance.svg
@@ -0,0 +1,20 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="74pt" height="72pt" viewBox="-6 -6 86 84.4000015258789" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery-S3CluI8WDJspDI9OUqv4H"><style>.refinery-S3CluI8WDJspDI9OUqv4H .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-S3CluI8WDJspDI9OUqv4H .node .node-outline{stroke:#19202b;}.refinery-S3CluI8WDJspDI9OUqv4H .node .node-header{fill:rgb(53, 161, 173);}.refinery-S3CluI8WDJspDI9OUqv4H .node .node-bg{fill:#fff;}.refinery-S3CluI8WDJspDI9OUqv4H .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery-S3CluI8WDJspDI9OUqv4H .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery-S3CluI8WDJspDI9OUqv4H .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-g .node-header{fill:#e5c07b;}.refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-h .node-header{fill:#e06c75;}.refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-i .node-header{fill:#98c379;}.refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-j .node-header{fill:#c678dd;}.refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-k .node-header{fill:#80a7f4;}.refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-m .node-header{fill:#e78b8f;}.refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-n .node-header{fill:#abcc94;}.refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-p .node-header{fill:#92c0e9;}.refinery-S3CluI8WDJspDI9OUqv4H .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-S3CluI8WDJspDI9OUqv4H .edge .edge-line{stroke:#19202b;}.refinery-S3CluI8WDJspDI9OUqv4H .edge .edge-arrow{fill:#19202b;}.refinery-S3CluI8WDJspDI9OUqv4H .edge-UNKNOWN text{fill:#696c77;}.refinery-S3CluI8WDJspDI9OUqv4H .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery-S3CluI8WDJspDI9OUqv4H .edge-UNKNOWN .edge-arrow{fill:none;}.refinery-S3CluI8WDJspDI9OUqv4H .edge-ERROR text{fill:#ca1243;}.refinery-S3CluI8WDJspDI9OUqv4H .edge-ERROR .edge-line{stroke:#ca1243;}.refinery-S3CluI8WDJspDI9OUqv4H .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery-S3CluI8WDJspDI9OUqv4H .icon-TRUE{fill:#19202b;}.refinery-S3CluI8WDJspDI9OUqv4H .icon-UNKNOWN{fill:#696c77;}.refinery-S3CluI8WDJspDI9OUqv4H .icon-ERROR{fill:#ca1243;}.refinery-S3CluI8WDJspDI9OUqv4H text.label-UNKNOWN{fill:#696c77;}.refinery-S3CluI8WDJspDI9OUqv4H text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-S3CluI8WDJspDI9OUqv4H text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-S3CluI8WDJspDI9OUqv4H-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-S3CluI8WDJspDI9OUqv4H-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-S3CluI8WDJspDI9OUqv4H-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="translate(4, 68.4000015258789)">
4<!-- n0 -->
5
6<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE">
7
8<rect stroke="none" x="0" y="-64.4" width="66" height="64.4" rx="12" ry="12" class="node-bg"/>
9<rect stroke="none" x="-4" y="-68" width="74" height="27" clip-path="url(#refinery-S3CluI8WDJspDI9OUqv4H-clip-0)" class="node-header"/>
10<text text-anchor="start" x="14.75" y="-48.6" font-size="12.00">invalid</text>
11<use x="6" y="-35" width="12" height="12" id="" class="icon icon-ERROR" href="#refinery-S3CluI8WDJspDI9OUqv4H-icon-ERROR"/>
12<g><text text-anchor="start" x="21.81" y="-25.2" font-size="12.00" class="label label-ERROR">Region</text>
13</g>
14<use x="6" y="-19" width="12" height="12" id="" class="icon icon-ERROR" href="#refinery-S3CluI8WDJspDI9OUqv4H-icon-ERROR"/>
15<g><text text-anchor="start" x="22" y="-9.2" font-size="12.00" class="label label-ERROR">State</text>
16</g>
17<polyline points="0,-41 66,-41" class="node-outline"/>
18<rect fill="none" x="0" y="-64.4" width="66" height="64.4" rx="12" ry="12" class="node-outline"/>
19<clipPath id="refinery-S3CluI8WDJspDI9OUqv4H-clip-0"><rect stroke="none" x="0" y="-64.4" width="66" height="64.4" rx="12" ry="12" class="node-bg"/></clipPath></g></g>
20</svg> \ No newline at end of file
diff --git a/subprojects/docs/src/learn/language/classes/InvalidInstance.svg.license b/subprojects/docs/src/learn/language/classes/InvalidInstance.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/language/classes/InvalidInstance.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/language/classes/MultiplicityConstraintsInstance.svg b/subprojects/docs/src/learn/language/classes/MultiplicityConstraintsInstance.svg
new file mode 100644
index 00000000..b28c295a
--- /dev/null
+++ b/subprojects/docs/src/learn/language/classes/MultiplicityConstraintsInstance.svg
@@ -0,0 +1,229 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="802pt" height="157pt" viewBox="-6 -6 814.3800048828125 169.1999969482422" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery-MZ1i4PkeOsY_2x7-6CJ29"><style>.refinery-MZ1i4PkeOsY_2x7-6CJ29 .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .node .node-outline{stroke:#19202b;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .node .node-header{fill:rgb(53, 161, 173);}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .node .node-bg{fill:#fff;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-g .node-header{fill:#e5c07b;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-h .node-header{fill:#e06c75;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-i .node-header{fill:#98c379;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-j .node-header{fill:#c678dd;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-k .node-header{fill:#80a7f4;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-m .node-header{fill:#e78b8f;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-n .node-header{fill:#abcc94;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-p .node-header{fill:#92c0e9;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .edge .edge-line{stroke:#19202b;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .edge .edge-arrow{fill:#19202b;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .edge-UNKNOWN text{fill:#696c77;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .edge-UNKNOWN .edge-arrow{fill:none;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .edge-ERROR text{fill:#ca1243;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .edge-ERROR .edge-line{stroke:#ca1243;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .icon-TRUE{fill:#19202b;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .icon-UNKNOWN{fill:#696c77;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 .icon-ERROR{fill:#ca1243;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 text.label-UNKNOWN{fill:#696c77;}.refinery-MZ1i4PkeOsY_2x7-6CJ29 text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-MZ1i4PkeOsY_2x7-6CJ29 text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-MZ1i4PkeOsY_2x7-6CJ29-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-MZ1i4PkeOsY_2x7-6CJ29-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-MZ1i4PkeOsY_2x7-6CJ29-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="translate(4, 153.1999969482422)">
4<!-- n0 -->
5
6<!-- n0&#45;&gt;n0 -->
7
8<!-- n0&#45;&gt;n1 -->
9
10<!-- n0&#45;&gt;n1 -->
11
12<!-- n3 -->
13<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-h">
14
15<rect stroke="none" x="84.25" y="-141.4" width="64.03" height="48.80000000000001" rx="12" ry="12" class="node-bg"/>
16<rect stroke="none" x="80" y="-145" width="72" height="27" clip-path="url(#refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-0)" class="node-header"/>
17<text text-anchor="start" x="109.83" y="-125.6" font-size="12.00">v1</text>
18<use x="90.2516" y="-111.8" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-MZ1i4PkeOsY_2x7-6CJ29-icon-TRUE"/>
19<g><text text-anchor="start" x="106.25" y="-102.2" font-size="12.00" class="label label-TRUE">Vertex</text>
20</g>
21<polyline points="84.25,-118 148.28,-118" class="node-outline"/>
22<rect fill="none" x="84.25" y="-141.4" width="64.03" height="48.80000000000001" rx="12" ry="12" class="node-outline"/>
23<clipPath id="refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-0"><rect stroke="none" x="84.25" y="-141.4" width="64.03" height="48.80000000000001" rx="12" ry="12" class="node-bg"/></clipPath></g>
24<!-- n1&#45;&gt;n3 -->
25<g class="edge edge-TRUE">
26
27<path fill="none" d="M127.79,-92.67C135,-81.99 144.45,-69.17 153.6,-57.6" class="edge-line"/>
28<polygon points="156.32,-59.81 159.88,-49.83 150.87,-55.41 156.32,-59.81" class="edge-line edge-arrow"/>
29<text text-anchor="middle" x="190.06" y="-60.95" font-size="10.50">outgoingTransition</text>
30</g>
31<!-- n5 -->
32<g class="edge edge-TRUE">
33
34<path fill="none" d="M172.8,-48.65C165.6,-59.32 156.15,-72.13 147,-83.71" class="edge-line"/>
35<polygon points="144.27,-81.51 140.72,-91.49 149.72,-85.91 144.27,-81.51" class="edge-line edge-arrow"/>
36<text text-anchor="middle" x="140.38" y="-74.06" font-size="10.50">source</text>
37</g>
38<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-i">
39
40<rect stroke="none" x="40.16" y="-48.8" width="84.22" height="48.8" rx="12" ry="12" class="node-bg"/>
41<rect stroke="none" x="36" y="-52" width="92" height="27" clip-path="url(#refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-1)" class="node-header"/>
42<text text-anchor="start" x="76.72" y="-33" font-size="12.00">t1</text>
43<use x="46.1559" y="-19.2" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-MZ1i4PkeOsY_2x7-6CJ29-icon-TRUE"/>
44<g><text text-anchor="start" x="62.16" y="-9.6" font-size="12.00" class="label label-TRUE">Transition</text>
45</g>
46<polyline points="40.16,-25.4 124.38,-25.4" class="node-outline"/>
47<rect fill="none" x="40.16" y="-48.8" width="84.22" height="48.8" rx="12" ry="12" class="node-outline"/>
48<clipPath id="refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-1"><rect stroke="none" x="40.16" y="-48.8" width="84.22" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g><g class="edge edge-TRUE">
49
50<path fill="none" d="M96.97,-48.65C101.54,-58.79 106.27,-70.87 110.06,-81.98" class="edge-line"/>
51<polygon points="106.64,-82.78 113.04,-91.23 113.3,-80.64 106.64,-82.78" class="edge-line edge-arrow"/>
52<text text-anchor="middle" x="89.38" y="-60.85" font-size="10.50">source</text>
53</g><g class="edge edge-TRUE">
54
55<path fill="none" d="M101.52,-92.67C96.95,-82.52 92.23,-70.44 88.44,-59.33" class="edge-line"/>
56<polygon points="91.87,-58.54 85.47,-50.09 85.2,-60.68 91.87,-58.54" class="edge-line edge-arrow"/>
57<text text-anchor="middle" x="46.32" y="-74.16" font-size="10.50">outgoingTransition</text>
58</g><g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-i">
59
60<rect stroke="none" x="142.16" y="-48.8" width="84.22" height="48.8" rx="12" ry="12" class="node-bg"/>
61<rect stroke="none" x="138" y="-52" width="92" height="27" clip-path="url(#refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-2)" class="node-header"/>
62<text text-anchor="start" x="178.72" y="-33" font-size="12.00">t2</text>
63<use x="148.156" y="-19.2" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-MZ1i4PkeOsY_2x7-6CJ29-icon-TRUE"/>
64<g><text text-anchor="start" x="164.16" y="-9.6" font-size="12.00" class="label label-TRUE">Transition</text>
65</g>
66<polyline points="142.16,-25.4 226.38,-25.4" class="node-outline"/>
67<rect fill="none" x="142.16" y="-48.8" width="84.22" height="48.8" rx="12" ry="12" class="node-outline"/>
68<clipPath id="refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-2"><rect stroke="none" x="142.16" y="-48.8" width="84.22" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g><!-- n5 -->
69<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-h">
70
71<rect stroke="none" x="200.77" y="-149.2" width="236.99999999999997" height="64.39999999999999" rx="12" ry="12" class="node-bg"/>
72<rect stroke="none" x="196" y="-153" width="244" height="27" clip-path="url(#refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-3)" class="node-header"/>
73<text text-anchor="start" x="312.83" y="-133.4" font-size="12.00">v2</text>
74<use x="206.766" y="-119.8" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-MZ1i4PkeOsY_2x7-6CJ29-icon-TRUE"/>
75<g><text text-anchor="start" x="222.77" y="-110" font-size="12.00" class="label label-TRUE">Vertex</text>
76</g>
77<use x="206.766" y="-103.8" width="12" height="12" id="" class="icon icon-ERROR" href="#refinery-MZ1i4PkeOsY_2x7-6CJ29-icon-ERROR"/>
78<g><text text-anchor="start" x="222.4" y="-94" font-size="12.00" class="label label-ERROR">outgoingTransition::invalidMultiplicity</text>
79</g>
80<polyline points="200.77,-125.8 437.77,-125.8" class="node-outline"/>
81<rect fill="none" x="200.77" y="-149.2" width="236.99999999999997" height="64.39999999999999" rx="12" ry="12" class="node-outline"/>
82<clipPath id="refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-3"><rect stroke="none" x="200.77" y="-149.2" width="236.99999999999997" height="64.39999999999999" rx="12" ry="12" class="node-bg"/></clipPath></g><g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-i">
83
84<rect stroke="none" x="277.16" y="-48.8" width="84.21999999999997" height="48.8" rx="12" ry="12" class="node-bg"/>
85<rect stroke="none" x="273" y="-52" width="92" height="27" clip-path="url(#refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-4)" class="node-header"/>
86<text text-anchor="start" x="313.72" y="-33" font-size="12.00">t3</text>
87<use x="283.156" y="-19.2" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-MZ1i4PkeOsY_2x7-6CJ29-icon-TRUE"/>
88<g><text text-anchor="start" x="299.16" y="-9.6" font-size="12.00" class="label label-TRUE">Transition</text>
89</g>
90<polyline points="277.16,-25.4 361.38,-25.4" class="node-outline"/>
91<rect fill="none" x="277.16" y="-48.8" width="84.21999999999997" height="48.8" rx="12" ry="12" class="node-outline"/>
92<clipPath id="refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-4"><rect stroke="none" x="277.16" y="-48.8" width="84.21999999999997" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
93<!-- n4&#45;&gt;n5 -->
94
95<!-- n5&#45;&gt;n4 -->
96<g class="edge edge-TRUE">
97
98<path fill="none" d="M325.25,-48.62C325.82,-56.19 326.07,-64.85 326.01,-73.38" class="edge-line"/>
99<polygon points="322.51,-73.22 325.75,-83.31 329.51,-73.4 322.51,-73.22" class="edge-line edge-arrow"/>
100<text text-anchor="middle" x="309.51" y="-57.13" font-size="10.50">source</text>
101</g>
102<!-- n6&#45;&gt;n5 -->
103<g class="edge edge-TRUE">
104
105<path fill="none" d="M312.82,-84.82C312.47,-76.84 312.42,-68.21 312.68,-60.07" class="edge-line"/>
106<polygon points="316.18,-60.3 313.21,-50.13 309.19,-59.94 316.18,-60.3" class="edge-line edge-arrow"/>
107<text text-anchor="middle" x="358.85" y="-70.18" font-size="10.50">outgoingTransition</text>
108</g>
109<!-- n7 -->
110<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-i">
111
112<rect stroke="none" x="404.16" y="-48.8" width="84.21999999999997" height="48.8" rx="12" ry="12" class="node-bg"/>
113<rect stroke="none" x="400" y="-52" width="92" height="27" clip-path="url(#refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-5)" class="node-header"/>
114<text text-anchor="start" x="440.72" y="-33" font-size="12.00">t4</text>
115<use x="410.156" y="-19.2" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-MZ1i4PkeOsY_2x7-6CJ29-icon-TRUE"/>
116<g><text text-anchor="start" x="426.16" y="-9.6" font-size="12.00" class="label label-TRUE">Transition</text>
117</g>
118<polyline points="404.16,-25.4 488.38,-25.4" class="node-outline"/>
119<rect fill="none" x="404.16" y="-48.8" width="84.21999999999997" height="48.8" rx="12" ry="12" class="node-outline"/>
120<clipPath id="refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-5"><rect stroke="none" x="404.16" y="-48.8" width="84.21999999999997" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
121<!-- n8 -->
122<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-h">
123
124<rect stroke="none" x="493.77" y="-149.2" width="237" height="64.39999999999999" rx="12" ry="12" class="node-bg"/>
125<rect stroke="none" x="489" y="-153" width="245" height="27" clip-path="url(#refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-6)" class="node-header"/>
126<text text-anchor="start" x="605.83" y="-133.4" font-size="12.00">v3</text>
127<use x="499.766" y="-119.8" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-MZ1i4PkeOsY_2x7-6CJ29-icon-TRUE"/>
128<g><text text-anchor="start" x="515.77" y="-110" font-size="12.00" class="label label-TRUE">Vertex</text>
129</g>
130<polyline points="493.77,-125.8 730.77,-125.8" class="node-outline"/><use x="499.766" y="-103.8" width="12" height="12" id="" class="icon icon-ERROR" href="#refinery-MZ1i4PkeOsY_2x7-6CJ29-icon-ERROR"/>
131
132<rect fill="none" x="493.77" y="-149.2" width="237" height="64.39999999999999" rx="12" ry="12" class="node-outline"/><g><text text-anchor="start" x="515.4" y="-94" font-size="12.00" class="label label-ERROR">outgoingTransition::invalidMultiplicity</text>
133</g>
134
135<clipPath id="refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-6"><rect stroke="none" x="493.77" y="-149.2" width="237" height="64.39999999999999" rx="12" ry="12" class="node-bg"/></clipPath></g>
136<!-- n7&#45;&gt;n8 -->
137<g class="edge edge-TRUE">
138
139<path fill="none" d="M488.13,-45.15C507.42,-55.16 530.62,-67.65 551.73,-79.34" class="edge-line"/>
140<polygon points="549.83,-82.28 560.27,-84.08 553.23,-76.16 549.83,-82.28" class="edge-line edge-arrow"/>
141<text text-anchor="middle" x="508.37" y="-55.19" font-size="10.50">source</text>
142</g>
143<!-- n8&#45;&gt;n7 -->
144<g class="edge edge-TRUE">
145
146<path fill="none" d="M548.69,-84.82C530.15,-74.94 510.25,-64.06 492.94,-54.34" class="edge-line"/>
147<polygon points="494.83,-51.38 484.4,-49.51 491.38,-57.48 494.83,-51.38" class="edge-line edge-arrow"/>
148<text text-anchor="middle" x="469.61" y="-70.25" font-size="10.50">outgoingTransition</text>
149</g>
150<!-- n9 -->
151<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-i">
152
153<rect stroke="none" x="506.16" y="-48.8" width="84.21999999999997" height="48.8" rx="12" ry="12" class="node-bg"/>
154<rect stroke="none" x="502" y="-52" width="92" height="27" clip-path="url(#refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-7)" class="node-header"/>
155<text text-anchor="start" x="542.72" y="-33" font-size="12.00">t5</text>
156<use x="512.156" y="-19.2" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-MZ1i4PkeOsY_2x7-6CJ29-icon-TRUE"/>
157<g><text text-anchor="start" x="528.16" y="-9.6" font-size="12.00" class="label label-TRUE">Transition</text>
158</g>
159<polyline points="506.16,-25.4 590.38,-25.4" class="node-outline"/>
160<rect fill="none" x="506.16" y="-48.8" width="84.21999999999997" height="48.8" rx="12" ry="12" class="node-outline"/>
161<clipPath id="refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-7"><rect stroke="none" x="506.16" y="-48.8" width="84.21999999999997" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
162<!-- n8&#45;&gt;n9 -->
163<g class="edge edge-TRUE">
164
165<path fill="none" d="M583.79,-84.82C577.32,-76.19 570.67,-66.81 564.85,-58.09" class="edge-line"/>
166<polygon points="567.9,-56.37 559.52,-49.89 562.03,-60.18 567.9,-56.37" class="edge-line edge-arrow"/>
167<text text-anchor="middle" x="617.13" y="-69.99" font-size="10.50">outgoingTransition</text>
168</g>
169<!-- n10 -->
170<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-i">
171
172<rect stroke="none" x="608.16" y="-48.8" width="84.22000000000003" height="48.8" rx="12" ry="12" class="node-bg"/>
173<rect stroke="none" x="604" y="-52" width="92" height="27" clip-path="url(#refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-8)" class="node-header"/>
174<text text-anchor="start" x="644.72" y="-33" font-size="12.00">t6</text>
175<use x="614.156" y="-19.2" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-MZ1i4PkeOsY_2x7-6CJ29-icon-TRUE"/>
176<g><text text-anchor="start" x="630.16" y="-9.6" font-size="12.00" class="label label-TRUE">Transition</text>
177</g>
178<polyline points="608.16,-25.4 692.38,-25.4" class="node-outline"/>
179<rect fill="none" x="608.16" y="-48.8" width="84.22000000000003" height="48.8" rx="12" ry="12" class="node-outline"/>
180<clipPath id="refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-8"><rect stroke="none" x="608.16" y="-48.8" width="84.22000000000003" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
181<!-- n8&#45;&gt;n10 -->
182<g class="edge edge-TRUE">
183
184<path fill="none" d="M618.89,-84.82C622.03,-76.47 625.8,-67.41 629.66,-58.94" class="edge-line"/>
185<polygon points="632.78,-60.52 633.9,-49.99 626.45,-57.53 632.78,-60.52" class="edge-line edge-arrow"/>
186<text text-anchor="middle" x="579.94" y="-57.16" font-size="10.50">outgoingTransition</text>
187</g>
188<!-- n11 -->
189<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-i">
190
191<rect stroke="none" x="710.16" y="-48.8" width="84.22000000000003" height="48.8" rx="12" ry="12" class="node-bg"/>
192<rect stroke="none" x="706" y="-52" width="92" height="27" clip-path="url(#refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-9)" class="node-header"/>
193<text text-anchor="start" x="746.72" y="-33" font-size="12.00">t7</text>
194<use x="716.156" y="-19.2" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-MZ1i4PkeOsY_2x7-6CJ29-icon-TRUE"/>
195<g><text text-anchor="start" x="732.16" y="-9.6" font-size="12.00" class="label label-TRUE">Transition</text>
196</g>
197<polyline points="710.16,-25.4 794.38,-25.4" class="node-outline"/>
198<rect fill="none" x="710.16" y="-48.8" width="84.22000000000003" height="48.8" rx="12" ry="12" class="node-outline"/>
199<clipPath id="refinery-MZ1i4PkeOsY_2x7-6CJ29-clip-9"><rect stroke="none" x="710.16" y="-48.8" width="84.22000000000003" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
200<!-- n8&#45;&gt;n11 -->
201<g class="edge edge-TRUE">
202
203<path fill="none" d="M654,-84.82C668.76,-74.99 685.52,-64.17 700.97,-54.48" class="edge-line"/>
204<polygon points="702.47,-57.67 709.12,-49.42 698.78,-51.73 702.47,-57.67" class="edge-line edge-arrow"/>
205<text text-anchor="middle" x="728.4" y="-57.01" font-size="10.50">outgoingTransition</text>
206</g>
207<!-- n9&#45;&gt;n8 -->
208<g class="edge edge-TRUE">
209
210<path fill="none" d="M570.65,-48.62C577.04,-56.79 583.96,-66.23 590.31,-75.41" class="edge-line"/>
211<polygon points="587.33,-77.25 595.84,-83.57 593.13,-73.33 587.33,-77.25" class="edge-line edge-arrow"/>
212<text text-anchor="middle" x="567.43" y="-69.5" font-size="10.50">source</text>
213</g>
214<!-- n10&#45;&gt;n8 -->
215<g class="edge edge-TRUE">
216
217<path fill="none" d="M646.51,-48.62C643.79,-56.54 640.22,-65.64 636.38,-74.54" class="edge-line"/>
218<polygon points="633.29,-72.88 632.41,-83.44 639.68,-75.73 633.29,-72.88" class="edge-line edge-arrow"/>
219<text text-anchor="middle" x="656.03" y="-57.56" font-size="10.50">source</text>
220</g>
221<!-- n11&#45;&gt;n8 -->
222<g class="edge edge-TRUE">
223
224<path fill="none" d="M722.36,-48.62C708.84,-57.83 692.35,-68.64 676.28,-78.88" class="edge-line"/>
225<polygon points="674.75,-75.7 668.17,-84.01 678.5,-81.62 674.75,-75.7" class="edge-line edge-arrow"/>
226<text text-anchor="middle" x="711.22" y="-70.14" font-size="10.50">source</text>
227</g>
228</g>
229</svg> \ No newline at end of file
diff --git a/subprojects/docs/src/learn/language/classes/MultiplicityConstraintsInstance.svg.license b/subprojects/docs/src/learn/language/classes/MultiplicityConstraintsInstance.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/language/classes/MultiplicityConstraintsInstance.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/language/classes/NewObjectsSimple.svg b/subprojects/docs/src/learn/language/classes/NewObjectsSimple.svg
new file mode 100644
index 00000000..95ba8def
--- /dev/null
+++ b/subprojects/docs/src/learn/language/classes/NewObjectsSimple.svg
@@ -0,0 +1,29 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="172pt" height="57pt" viewBox="-6 -6 184.24000549316406 68.79999923706055" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery-8UTvxM6Gq4184FIveUdov"><style>.refinery-8UTvxM6Gq4184FIveUdov .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-8UTvxM6Gq4184FIveUdov .node .node-outline{stroke:#19202b;}.refinery-8UTvxM6Gq4184FIveUdov .node .node-header{fill:rgb(53, 161, 173);}.refinery-8UTvxM6Gq4184FIveUdov .node .node-bg{fill:#fff;}.refinery-8UTvxM6Gq4184FIveUdov .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery-8UTvxM6Gq4184FIveUdov .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery-8UTvxM6Gq4184FIveUdov .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-g .node-header{fill:#e5c07b;}.refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-h .node-header{fill:#e06c75;}.refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-i .node-header{fill:#98c379;}.refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-j .node-header{fill:#c678dd;}.refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-k .node-header{fill:#80a7f4;}.refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-m .node-header{fill:#e78b8f;}.refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-n .node-header{fill:#abcc94;}.refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-p .node-header{fill:#92c0e9;}.refinery-8UTvxM6Gq4184FIveUdov .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-8UTvxM6Gq4184FIveUdov .edge .edge-line{stroke:#19202b;}.refinery-8UTvxM6Gq4184FIveUdov .edge .edge-arrow{fill:#19202b;}.refinery-8UTvxM6Gq4184FIveUdov .edge-UNKNOWN text{fill:#696c77;}.refinery-8UTvxM6Gq4184FIveUdov .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery-8UTvxM6Gq4184FIveUdov .edge-UNKNOWN .edge-arrow{fill:none;}.refinery-8UTvxM6Gq4184FIveUdov .edge-ERROR text{fill:#ca1243;}.refinery-8UTvxM6Gq4184FIveUdov .edge-ERROR .edge-line{stroke:#ca1243;}.refinery-8UTvxM6Gq4184FIveUdov .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery-8UTvxM6Gq4184FIveUdov .icon-TRUE{fill:#19202b;}.refinery-8UTvxM6Gq4184FIveUdov .icon-UNKNOWN{fill:#696c77;}.refinery-8UTvxM6Gq4184FIveUdov .icon-ERROR{fill:#ca1243;}.refinery-8UTvxM6Gq4184FIveUdov text.label-UNKNOWN{fill:#696c77;}.refinery-8UTvxM6Gq4184FIveUdov text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-8UTvxM6Gq4184FIveUdov text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-8UTvxM6Gq4184FIveUdov-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-8UTvxM6Gq4184FIveUdov-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-8UTvxM6Gq4184FIveUdov-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="translate(4, 52.79999923706055)">
4<!-- n0 -->
5<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-k"><rect stroke="none" x="5.5" y="-42.5" width="79" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
6
7<rect stroke="none" x="0" y="-48.8" width="78.19" height="48.8" rx="12" ry="12" class="node-bg"/>
8<rect stroke="none" x="-4" y="-52" width="86" height="27" clip-path="url(#refinery-8UTvxM6Gq4184FIveUdov-clip-0)" class="node-header"/>
9<text text-anchor="start" x="5" y="-33" font-size="12.00">Region::new</text>
10<use x="6" y="-19.2" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-8UTvxM6Gq4184FIveUdov-icon-TRUE"/>
11<g><text text-anchor="start" x="22" y="-9.6" font-size="12.00" class="label label-TRUE">Region</text>
12</g>
13<polyline points="0,-25.4 78.19,-25.4" class="node-outline"/>
14<rect fill="none" x="0" y="-48.8" width="78.19" height="48.8" rx="12" ry="12" class="node-outline"/>
15<clipPath id="refinery-8UTvxM6Gq4184FIveUdov-clip-0"><rect stroke="none" x="0" y="-48.8" width="78.19" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
16<!-- n2 -->
17
18<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-h"><rect stroke="none" x="100.5" y="-42.5" width="69" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
19
20<rect stroke="none" x="95.95" y="-48.8" width="68.29" height="48.8" rx="12" ry="12" class="node-bg"/>
21<rect stroke="none" x="91" y="-52" width="76" height="27" clip-path="url(#refinery-8UTvxM6Gq4184FIveUdov-clip-1)" class="node-header"/>
22<text text-anchor="start" x="100.95" y="-33" font-size="12.00">State::new</text>
23
24
25
26
27<use x="101.954" y="-19.2" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-8UTvxM6Gq4184FIveUdov-icon-TRUE"/><g><text text-anchor="start" x="117.95" y="-9.6" font-size="12.00" class="label label-TRUE">State</text>
28</g><polyline points="95.95,-25.4 164.24,-25.4" class="node-outline"/><rect fill="none" x="95.95" y="-48.8" width="68.29" height="48.8" rx="12" ry="12" class="node-outline"/><clipPath id="refinery-8UTvxM6Gq4184FIveUdov-clip-1"><rect stroke="none" x="95.95" y="-48.8" width="68.29" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g></g>
29</svg> \ No newline at end of file
diff --git a/subprojects/docs/src/learn/language/classes/NewObjectsSimple.svg.license b/subprojects/docs/src/learn/language/classes/NewObjectsSimple.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/language/classes/NewObjectsSimple.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/language/classes/NewObjectsWithInheritance.svg b/subprojects/docs/src/learn/language/classes/NewObjectsWithInheritance.svg
new file mode 100644
index 00000000..cdf365f0
--- /dev/null
+++ b/subprojects/docs/src/learn/language/classes/NewObjectsWithInheritance.svg
@@ -0,0 +1,38 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="230pt" height="104pt" viewBox="-6 -6 242.10000610351562 116.4000015258789" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery-snWM44tZVFiopoyqQzHDw"><style>.refinery-snWM44tZVFiopoyqQzHDw .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-snWM44tZVFiopoyqQzHDw .node .node-outline{stroke:#19202b;}.refinery-snWM44tZVFiopoyqQzHDw .node .node-header{fill:rgb(53, 161, 173);}.refinery-snWM44tZVFiopoyqQzHDw .node .node-bg{fill:#fff;}.refinery-snWM44tZVFiopoyqQzHDw .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery-snWM44tZVFiopoyqQzHDw .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery-snWM44tZVFiopoyqQzHDw .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-g .node-header{fill:#e5c07b;}.refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-h .node-header{fill:#e06c75;}.refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-i .node-header{fill:#98c379;}.refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-j .node-header{fill:#c678dd;}.refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-k .node-header{fill:#80a7f4;}.refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-m .node-header{fill:#e78b8f;}.refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-n .node-header{fill:#abcc94;}.refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-p .node-header{fill:#92c0e9;}.refinery-snWM44tZVFiopoyqQzHDw .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-snWM44tZVFiopoyqQzHDw .edge .edge-line{stroke:#19202b;}.refinery-snWM44tZVFiopoyqQzHDw .edge .edge-arrow{fill:#19202b;}.refinery-snWM44tZVFiopoyqQzHDw .edge-UNKNOWN text{fill:#696c77;}.refinery-snWM44tZVFiopoyqQzHDw .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery-snWM44tZVFiopoyqQzHDw .edge-UNKNOWN .edge-arrow{fill:none;}.refinery-snWM44tZVFiopoyqQzHDw .edge-ERROR text{fill:#ca1243;}.refinery-snWM44tZVFiopoyqQzHDw .edge-ERROR .edge-line{stroke:#ca1243;}.refinery-snWM44tZVFiopoyqQzHDw .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery-snWM44tZVFiopoyqQzHDw .icon-TRUE{fill:#19202b;}.refinery-snWM44tZVFiopoyqQzHDw .icon-UNKNOWN{fill:#696c77;}.refinery-snWM44tZVFiopoyqQzHDw .icon-ERROR{fill:#ca1243;}.refinery-snWM44tZVFiopoyqQzHDw text.label-UNKNOWN{fill:#696c77;}.refinery-snWM44tZVFiopoyqQzHDw text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-snWM44tZVFiopoyqQzHDw text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-snWM44tZVFiopoyqQzHDw-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-snWM44tZVFiopoyqQzHDw-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-snWM44tZVFiopoyqQzHDw-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="translate(4, 100.4000015258789)">
4<!-- n0 -->
5<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-k"><rect stroke="none" x="5.5" y="-66.5" width="79" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
6
7<rect stroke="none" x="0" y="-72.6" width="78.19" height="48.8" rx="12" ry="12" class="node-bg"/>
8<rect stroke="none" x="-4" y="-76" width="86" height="27" clip-path="url(#refinery-snWM44tZVFiopoyqQzHDw-clip-0)" class="node-header"/>
9<text text-anchor="start" x="5" y="-56.8" font-size="12.00">Region::new</text>
10<use x="6" y="-43" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-snWM44tZVFiopoyqQzHDw-icon-TRUE"/>
11<g><text text-anchor="start" x="22" y="-33.4" font-size="12.00" class="label label-TRUE">Region</text>
12</g>
13<polyline points="0,-49.2 78.19,-49.2" class="node-outline"/>
14<rect fill="none" x="0" y="-72.6" width="78.19" height="48.8" rx="12" ry="12" class="node-outline"/>
15<clipPath id="refinery-snWM44tZVFiopoyqQzHDw-clip-0"><rect stroke="none" x="0" y="-72.6" width="78.19" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
16<!-- n1 -->
17<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-h"><rect stroke="none" x="101.5" y="-90.5" width="127" height="97" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
18
19<rect stroke="none" x="96.1" y="-96.4" width="126" height="96.4" rx="12" ry="12" class="node-bg"/>
20<rect stroke="none" x="92" y="-100" width="134" height="27" clip-path="url(#refinery-snWM44tZVFiopoyqQzHDw-clip-1)" class="node-header"/>
21<text text-anchor="start" x="129.95" y="-80.6" font-size="12.00">State::new</text>
22<use x="102.096" y="-67" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-snWM44tZVFiopoyqQzHDw-icon-TRUE"/>
23<g><text text-anchor="start" x="118.01" y="-58.2" font-style="italic" font-size="12.00" class="label label-TRUE">CompositeElement</text>
24</g>
25<use x="102.096" y="-51" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-snWM44tZVFiopoyqQzHDw-icon-TRUE"/>
26<g><text text-anchor="start" x="118.1" y="-42.2" font-style="italic" font-size="12.00" class="label label-TRUE">Vertex</text>
27</g>
28<use x="102.096" y="-35" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-snWM44tZVFiopoyqQzHDw-icon-TRUE"/>
29<g><text text-anchor="start" x="118.1" y="-26.2" font-style="italic" font-size="12.00" class="label label-TRUE">RegularState</text>
30</g>
31<use x="102.096" y="-19" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-snWM44tZVFiopoyqQzHDw-icon-TRUE"/>
32<g><text text-anchor="start" x="118.1" y="-9.2" font-size="12.00" class="label label-TRUE">State</text>
33</g>
34<polyline points="96.1,-73 222.1,-73" class="node-outline"/>
35<rect fill="none" x="96.1" y="-96.4" width="126" height="96.4" rx="12" ry="12" class="node-outline"/>
36<clipPath id="refinery-snWM44tZVFiopoyqQzHDw-clip-1"><rect stroke="none" x="96.1" y="-96.4" width="126" height="96.4" rx="12" ry="12" class="node-bg"/></clipPath></g>
37</g>
38</svg> \ No newline at end of file
diff --git a/subprojects/docs/src/learn/language/classes/NewObjectsWithInheritance.svg.license b/subprojects/docs/src/learn/language/classes/NewObjectsWithInheritance.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/language/classes/NewObjectsWithInheritance.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/language/classes/ReferencesOppositeInstance.svg b/subprojects/docs/src/learn/language/classes/ReferencesOppositeInstance.svg
new file mode 100644
index 00000000..56a4d956
--- /dev/null
+++ b/subprojects/docs/src/learn/language/classes/ReferencesOppositeInstance.svg
@@ -0,0 +1,69 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="236pt" height="142pt" viewBox="-6 -6 247.8800048828125 153.60000610351562" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery-aUMOWvqBGMJmEq5FBgfQD"><style>.refinery-aUMOWvqBGMJmEq5FBgfQD .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-aUMOWvqBGMJmEq5FBgfQD .node .node-outline{stroke:#19202b;}.refinery-aUMOWvqBGMJmEq5FBgfQD .node .node-header{fill:rgb(53, 161, 173);}.refinery-aUMOWvqBGMJmEq5FBgfQD .node .node-bg{fill:#fff;}.refinery-aUMOWvqBGMJmEq5FBgfQD .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery-aUMOWvqBGMJmEq5FBgfQD .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery-aUMOWvqBGMJmEq5FBgfQD .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-g .node-header{fill:#e5c07b;}.refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-h .node-header{fill:#e06c75;}.refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-i .node-header{fill:#98c379;}.refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-j .node-header{fill:#c678dd;}.refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-k .node-header{fill:#80a7f4;}.refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-m .node-header{fill:#e78b8f;}.refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-n .node-header{fill:#abcc94;}.refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-p .node-header{fill:#92c0e9;}.refinery-aUMOWvqBGMJmEq5FBgfQD .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-aUMOWvqBGMJmEq5FBgfQD .edge .edge-line{stroke:#19202b;}.refinery-aUMOWvqBGMJmEq5FBgfQD .edge .edge-arrow{fill:#19202b;}.refinery-aUMOWvqBGMJmEq5FBgfQD .edge-UNKNOWN text{fill:#696c77;}.refinery-aUMOWvqBGMJmEq5FBgfQD .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery-aUMOWvqBGMJmEq5FBgfQD .edge-UNKNOWN .edge-arrow{fill:none;}.refinery-aUMOWvqBGMJmEq5FBgfQD .edge-ERROR text{fill:#ca1243;}.refinery-aUMOWvqBGMJmEq5FBgfQD .edge-ERROR .edge-line{stroke:#ca1243;}.refinery-aUMOWvqBGMJmEq5FBgfQD .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery-aUMOWvqBGMJmEq5FBgfQD .icon-TRUE{fill:#19202b;}.refinery-aUMOWvqBGMJmEq5FBgfQD .icon-UNKNOWN{fill:#696c77;}.refinery-aUMOWvqBGMJmEq5FBgfQD .icon-ERROR{fill:#ca1243;}.refinery-aUMOWvqBGMJmEq5FBgfQD text.label-UNKNOWN{fill:#696c77;}.refinery-aUMOWvqBGMJmEq5FBgfQD text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-aUMOWvqBGMJmEq5FBgfQD text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-aUMOWvqBGMJmEq5FBgfQD-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-aUMOWvqBGMJmEq5FBgfQD-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-aUMOWvqBGMJmEq5FBgfQD-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="translate(4, 137.60000610351562)">
4<!-- n0 -->
5
6<!-- n1 -->
7
8<!-- n1&#45;&gt;n0 -->
9<!-- n1&#45;&gt;n0 -->
10
11<!-- n1&#45;&gt;n0 -->
12
13<!-- n1&#45;&gt;n0 -->
14
15
16<!-- n3 -->
17<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-h">
18
19<rect stroke="none" x="46.81" y="-133.6" width="64.03" height="48.8" rx="12" ry="12" class="node-bg"/>
20<rect stroke="none" x="42" y="-137" width="72" height="27" clip-path="url(#refinery-aUMOWvqBGMJmEq5FBgfQD-clip-0)" class="node-header"/>
21<text text-anchor="start" x="72.39" y="-117.8" font-size="12.00">v1</text>
22<use x="52.8135" y="-104" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-aUMOWvqBGMJmEq5FBgfQD-icon-TRUE"/>
23<g><text text-anchor="start" x="68.81" y="-94.4" font-size="12.00" class="label label-TRUE">Vertex</text>
24</g>
25<polyline points="46.81,-110.2 110.84,-110.2" class="node-outline"/>
26<rect fill="none" x="46.81" y="-133.6" width="64.03" height="48.8" rx="12" ry="12" class="node-outline"/>
27<clipPath id="refinery-aUMOWvqBGMJmEq5FBgfQD-clip-0"><rect stroke="none" x="46.81" y="-133.6" width="64.03" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
28<g class="edge edge-TRUE">
29
30<path fill="none" d="M114.46,-48.63C110.99,-56.83 106.51,-66.22 101.86,-75.08" class="edge-line"/>
31<polygon points="98.81,-73.35 97.1,-83.81 104.96,-76.7 98.81,-73.35" class="edge-line edge-arrow"/>
32<text text-anchor="middle" x="89.45" y="-70.24" font-size="10.50">source</text>
33</g><g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-h">
34
35<rect stroke="none" x="128.81" y="-133.6" width="64.03" height="48.8" rx="12" ry="12" class="node-bg"/>
36<rect stroke="none" x="124" y="-137" width="72" height="27" clip-path="url(#refinery-aUMOWvqBGMJmEq5FBgfQD-clip-1)" class="node-header"/>
37<text text-anchor="start" x="154.39" y="-117.8" font-size="12.00">v2</text>
38<use x="134.814" y="-104" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-aUMOWvqBGMJmEq5FBgfQD-icon-TRUE"/>
39<g><text text-anchor="start" x="150.81" y="-94.4" font-size="12.00" class="label label-TRUE">Vertex</text>
40</g>
41<polyline points="128.81,-110.2 192.84,-110.2" class="node-outline"/>
42<rect fill="none" x="128.81" y="-133.6" width="64.03" height="48.8" rx="12" ry="12" class="node-outline"/>
43<clipPath id="refinery-aUMOWvqBGMJmEq5FBgfQD-clip-1"><rect stroke="none" x="128.81" y="-133.6" width="64.03" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g><g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-i">
44
45<rect stroke="none" x="77.72" y="-48.8" width="84.22" height="48.8" rx="12" ry="12" class="node-bg"/>
46<rect stroke="none" x="73" y="-52" width="92" height="27" clip-path="url(#refinery-aUMOWvqBGMJmEq5FBgfQD-clip-2)" class="node-header"/>
47<text text-anchor="start" x="114.28" y="-33" font-size="12.00">t1</text>
48<use x="83.7178" y="-19.2" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-aUMOWvqBGMJmEq5FBgfQD-icon-TRUE"/>
49<g><text text-anchor="start" x="99.72" y="-9.6" font-size="12.00" class="label label-TRUE">Transition</text>
50</g>
51<polyline points="77.72,-25.4 161.94,-25.4" class="node-outline"/>
52<rect fill="none" x="77.72" y="-48.8" width="84.22" height="48.8" rx="12" ry="12" class="node-outline"/>
53<clipPath id="refinery-aUMOWvqBGMJmEq5FBgfQD-clip-2"><rect stroke="none" x="77.72" y="-48.8" width="84.22" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g><g class="edge edge-TRUE">
54
55<path fill="none" d="M84.13,-85.14C87.58,-76.95 92.06,-67.57 96.71,-58.7" class="edge-line"/>
56<polygon points="99.76,-60.41 101.47,-49.96 93.61,-57.06 99.76,-60.41" class="edge-line edge-arrow"/>
57<text text-anchor="middle" x="46.32" y="-57.24" font-size="10.50">outgoingTransition</text>
58</g><g class="edge edge-TRUE">
59
60<path fill="none" d="M137.47,-48.63C142.07,-56.74 146.83,-66.01 150.92,-74.79" class="edge-line"/>
61<polygon points="147.65,-76.04 154.91,-83.75 154.04,-73.19 147.65,-76.04" class="edge-line edge-arrow"/>
62<text text-anchor="middle" x="132.53" y="-57.44" font-size="10.50">target</text>
63</g><g class="edge edge-TRUE">
64
65<path fill="none" d="M143.28,-85.14C138.68,-77.04 133.92,-67.77 129.82,-58.99" class="edge-line"/>
66<polygon points="133.08,-57.72 125.81,-50.01 126.69,-60.57 133.08,-57.72" class="edge-line edge-arrow"/>
67<text text-anchor="middle" x="180.75" y="-70.04" font-size="10.50">incomingTransition</text>
68</g></g>
69</svg> \ No newline at end of file
diff --git a/subprojects/docs/src/learn/language/classes/ReferencesOppositeInstance.svg.license b/subprojects/docs/src/learn/language/classes/ReferencesOppositeInstance.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/language/classes/ReferencesOppositeInstance.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/language/classes/ReferencesOppositeSelf.svg b/subprojects/docs/src/learn/language/classes/ReferencesOppositeSelf.svg
new file mode 100644
index 00000000..81ab4a0c
--- /dev/null
+++ b/subprojects/docs/src/learn/language/classes/ReferencesOppositeSelf.svg
@@ -0,0 +1,24 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="117pt" height="57pt" viewBox="-6 -6 128.5 68.79999923706055" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery-4mmABsPwhJURILrHpcKRU"><style>.refinery-4mmABsPwhJURILrHpcKRU .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-4mmABsPwhJURILrHpcKRU .node .node-outline{stroke:#19202b;}.refinery-4mmABsPwhJURILrHpcKRU .node .node-header{fill:rgb(53, 161, 173);}.refinery-4mmABsPwhJURILrHpcKRU .node .node-bg{fill:#fff;}.refinery-4mmABsPwhJURILrHpcKRU .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery-4mmABsPwhJURILrHpcKRU .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery-4mmABsPwhJURILrHpcKRU .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-g .node-header{fill:#e5c07b;}.refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-h .node-header{fill:#e06c75;}.refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-i .node-header{fill:#98c379;}.refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-j .node-header{fill:#c678dd;}.refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-k .node-header{fill:#80a7f4;}.refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-m .node-header{fill:#e78b8f;}.refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-n .node-header{fill:#abcc94;}.refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-p .node-header{fill:#92c0e9;}.refinery-4mmABsPwhJURILrHpcKRU .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-4mmABsPwhJURILrHpcKRU .edge .edge-line{stroke:#19202b;}.refinery-4mmABsPwhJURILrHpcKRU .edge .edge-arrow{fill:#19202b;}.refinery-4mmABsPwhJURILrHpcKRU .edge-UNKNOWN text{fill:#696c77;}.refinery-4mmABsPwhJURILrHpcKRU .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery-4mmABsPwhJURILrHpcKRU .edge-UNKNOWN .edge-arrow{fill:none;}.refinery-4mmABsPwhJURILrHpcKRU .edge-ERROR text{fill:#ca1243;}.refinery-4mmABsPwhJURILrHpcKRU .edge-ERROR .edge-line{stroke:#ca1243;}.refinery-4mmABsPwhJURILrHpcKRU .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery-4mmABsPwhJURILrHpcKRU .icon-TRUE{fill:#19202b;}.refinery-4mmABsPwhJURILrHpcKRU .icon-UNKNOWN{fill:#696c77;}.refinery-4mmABsPwhJURILrHpcKRU .icon-ERROR{fill:#ca1243;}.refinery-4mmABsPwhJURILrHpcKRU text.label-UNKNOWN{fill:#696c77;}.refinery-4mmABsPwhJURILrHpcKRU text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-4mmABsPwhJURILrHpcKRU text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-4mmABsPwhJURILrHpcKRU-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-4mmABsPwhJURILrHpcKRU-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-4mmABsPwhJURILrHpcKRU-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="translate(4, 52.79999923706055)">
4<!-- n0 -->
5<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-p"><rect stroke="none" x="5.5" y="-42.5" width="80" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
6
7<rect stroke="none" x="0" y="-48.8" width="79.01" height="48.8" rx="12" ry="12" class="node-bg"/>
8<rect stroke="none" x="-4" y="-52" width="87" height="27" clip-path="url(#refinery-4mmABsPwhJURILrHpcKRU-clip-0)" class="node-header"/>
9<text text-anchor="start" x="5" y="-33" font-size="12.00">Person::new</text>
10<use x="6" y="-19.2" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-4mmABsPwhJURILrHpcKRU-icon-TRUE"/>
11<g><text text-anchor="start" x="22" y="-9.6" font-size="12.00" class="label label-TRUE">Person</text>
12</g>
13<polyline points="0,-25.4 79.01,-25.4" class="node-outline"/>
14<rect fill="none" x="0" y="-48.8" width="79.01" height="48.8" rx="12" ry="12" class="node-outline"/>
15<clipPath id="refinery-4mmABsPwhJURILrHpcKRU-clip-0"><rect stroke="none" x="0" y="-48.8" width="79.01" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
16<!-- n0&#45;&gt;n0 -->
17<g class="edge edge-UNKNOWN">
18
19<path fill="none" stroke-dasharray="5,2" d="M78.75,-33.47C89.14,-32.95 97.01,-29.93 97.01,-24.4 97.01,-21.12 94.24,-18.72 89.81,-17.2" class="edge-line"/>
20<polygon points="90.68,-13.8 80.24,-15.58 89.52,-20.7 90.68,-13.8" class="edge-line edge-arrow"/>
21<text text-anchor="middle" x="93.87" y="-36.59" font-size="10.50">friend</text>
22</g>
23</g>
24</svg> \ No newline at end of file
diff --git a/subprojects/docs/src/learn/language/classes/ReferencesOppositeSelf.svg.license b/subprojects/docs/src/learn/language/classes/ReferencesOppositeSelf.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/language/classes/ReferencesOppositeSelf.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/language/classes/ReferencesSimple.svg b/subprojects/docs/src/learn/language/classes/ReferencesSimple.svg
new file mode 100644
index 00000000..fac74815
--- /dev/null
+++ b/subprojects/docs/src/learn/language/classes/ReferencesSimple.svg
@@ -0,0 +1,43 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="104pt" height="142pt" viewBox="-6 -6 116.04000091552734 153.60000610351562" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery-KS4S5srdaYqLoF1P1dM89"><style>.refinery-KS4S5srdaYqLoF1P1dM89 .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-KS4S5srdaYqLoF1P1dM89 .node .node-outline{stroke:#19202b;}.refinery-KS4S5srdaYqLoF1P1dM89 .node .node-header{fill:rgb(53, 161, 173);}.refinery-KS4S5srdaYqLoF1P1dM89 .node .node-bg{fill:#fff;}.refinery-KS4S5srdaYqLoF1P1dM89 .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery-KS4S5srdaYqLoF1P1dM89 .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery-KS4S5srdaYqLoF1P1dM89 .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-g .node-header{fill:#e5c07b;}.refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-h .node-header{fill:#e06c75;}.refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-i .node-header{fill:#98c379;}.refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-j .node-header{fill:#c678dd;}.refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-k .node-header{fill:#80a7f4;}.refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-m .node-header{fill:#e78b8f;}.refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-n .node-header{fill:#abcc94;}.refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-p .node-header{fill:#92c0e9;}.refinery-KS4S5srdaYqLoF1P1dM89 .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-KS4S5srdaYqLoF1P1dM89 .edge .edge-line{stroke:#19202b;}.refinery-KS4S5srdaYqLoF1P1dM89 .edge .edge-arrow{fill:#19202b;}.refinery-KS4S5srdaYqLoF1P1dM89 .edge-UNKNOWN text{fill:#696c77;}.refinery-KS4S5srdaYqLoF1P1dM89 .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery-KS4S5srdaYqLoF1P1dM89 .edge-UNKNOWN .edge-arrow{fill:none;}.refinery-KS4S5srdaYqLoF1P1dM89 .edge-ERROR text{fill:#ca1243;}.refinery-KS4S5srdaYqLoF1P1dM89 .edge-ERROR .edge-line{stroke:#ca1243;}.refinery-KS4S5srdaYqLoF1P1dM89 .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery-KS4S5srdaYqLoF1P1dM89 .icon-TRUE{fill:#19202b;}.refinery-KS4S5srdaYqLoF1P1dM89 .icon-UNKNOWN{fill:#696c77;}.refinery-KS4S5srdaYqLoF1P1dM89 .icon-ERROR{fill:#ca1243;}.refinery-KS4S5srdaYqLoF1P1dM89 text.label-UNKNOWN{fill:#696c77;}.refinery-KS4S5srdaYqLoF1P1dM89 text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-KS4S5srdaYqLoF1P1dM89 text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-KS4S5srdaYqLoF1P1dM89-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-KS4S5srdaYqLoF1P1dM89-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-KS4S5srdaYqLoF1P1dM89-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="translate(4, 137.60000610351562)">
4<!-- n0 -->
5<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-h"><rect stroke="none" x="15.5" y="-42.5" width="76" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
6
7<rect stroke="none" x="10.1" y="-48.8" width="75.84" height="48.8" rx="12" ry="12" class="node-bg"/>
8<rect stroke="none" x="6" y="-52" width="83" height="27" clip-path="url(#refinery-KS4S5srdaYqLoF1P1dM89-clip-0)" class="node-header"/>
9<text text-anchor="start" x="15.1" y="-33" font-size="12.00">Vertex::new</text>
10<use x="16.0957" y="-19.2" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-KS4S5srdaYqLoF1P1dM89-icon-TRUE"/>
11<g><text text-anchor="start" x="32.1" y="-9.6" font-size="12.00" class="label label-TRUE">Vertex</text>
12</g>
13<polyline points="10.1,-25.4 85.94,-25.4" class="node-outline"/>
14<rect fill="none" x="10.1" y="-48.8" width="75.84" height="48.8" rx="12" ry="12" class="node-outline"/>
15<clipPath id="refinery-KS4S5srdaYqLoF1P1dM89-clip-0"><rect stroke="none" x="10.1" y="-48.8" width="75.84" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
16<!-- n1 -->
17<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-i"><rect stroke="none" x="5.5" y="-127.5" width="97" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
18
19<rect stroke="none" x="0" y="-133.6" width="96.04" height="48.8" rx="12" ry="12" class="node-bg"/>
20<rect stroke="none" x="-4" y="-137" width="104" height="27" clip-path="url(#refinery-KS4S5srdaYqLoF1P1dM89-clip-1)" class="node-header"/>
21<text text-anchor="start" x="5" y="-117.8" font-size="12.00">Transition::new</text>
22<use x="6" y="-104" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-KS4S5srdaYqLoF1P1dM89-icon-TRUE"/>
23<g><text text-anchor="start" x="22" y="-94.4" font-size="12.00" class="label label-TRUE">Transition</text>
24</g>
25<polyline points="0,-110.2 96.04,-110.2" class="node-outline"/>
26<rect fill="none" x="0" y="-133.6" width="96.04" height="48.8" rx="12" ry="12" class="node-outline"/>
27<clipPath id="refinery-KS4S5srdaYqLoF1P1dM89-clip-1"><rect stroke="none" x="0" y="-133.6" width="96.04" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
28<!-- n1&#45;&gt;n0 -->
29<g class="edge edge-UNKNOWN">
30
31<path fill="none" stroke-dasharray="5,2" d="M41.9,-85.14C41.32,-77.31 41.14,-68.38 41.35,-59.86" class="edge-line"/>
32<polygon points="44.84,-60.29 41.81,-50.14 37.85,-59.96 44.84,-60.29" class="edge-line edge-arrow"/>
33<text text-anchor="middle" x="24.78" y="-70.26" font-size="10.50">source</text>
34</g>
35<!-- n1&#45;&gt;n0 -->
36<g class="edge edge-UNKNOWN">
37
38<path fill="none" stroke-dasharray="5,2" d="M54.14,-85.14C54.71,-77.31 54.9,-68.38 54.68,-59.86" class="edge-line"/>
39<polygon points="58.19,-59.96 54.23,-50.14 51.2,-60.29 58.19,-59.96" class="edge-line edge-arrow"/>
40<text text-anchor="middle" x="40.18" y="-57.66" font-size="10.50">target</text>
41</g>
42</g>
43</svg> \ No newline at end of file
diff --git a/subprojects/docs/src/learn/language/classes/ReferencesSimple.svg.license b/subprojects/docs/src/learn/language/classes/ReferencesSimple.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/language/classes/ReferencesSimple.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/language/classes/index.md b/subprojects/docs/src/learn/language/classes/index.md
new file mode 100644
index 00000000..73108039
--- /dev/null
+++ b/subprojects/docs/src/learn/language/classes/index.md
@@ -0,0 +1,212 @@
1---
2SPDX-FileCopyrightText: 2024 The Refinery Authors
3SPDX-License-Identifier: EPL-2.0
4description: Metamodeling in Refinery
5sidebar_position: 0
6---
7
8# Classes and references
9
10Refinery supports _metamodeling_ to describe the desired structure of generated models.
11
12The metamodeling facilities are inspired by object-oriented software and the [Eclipse Modeling Foundation](https://eclipse.dev/modeling/emf/) (EMF) Core, a lightweight framework for data models.
13The textual syntax in Refinery for defining metamodels is largely compatible with [Xcore](https://wiki.eclipse.org/Xcore), a textual syntax for EMF metamodels.
14
15## Classes
16
17Classes are declared with the `class` keyword.
18
19Like in many programming languages, class members are specified between curly braces `{}`.
20If a class has no members, the declaration may be terminated with a `.` instead.
21
22```refinery
23% Class with no members.
24class Region {}
25
26% Alternative syntax without curly braces.
27class State.
28```
29
30By default, a _new object_ is added to the partial model to represent the instances of a class.
31For example, the new objects `Region::new` and `State::new` represent potential instances of the classes `Region` and `State`, respectively:
32
33import NewObjectsSimple from './NewObjectsSimple.svg';
34
35<NewObjectsSimple />
36
37As you can see, no new objects represent potential nodes that are instanceof of both `Region` and `State`.
38In fact, such instances are not permitted at all.
39Each node must the instance of a _single most-specific class:_
40
41import InvalidInstance from './InvalidInstance.svg';
42
43<InvalidInstance />
44
45### Inheritance
46
47Like in object-oriented programming languages, classes may declare _superclasses_ with the `extends` keyword.
48The inheritance hierarchy may not contain any cycles (a class cannot be a superclass of itself), but _multiple inheritance_ is allowed.
49
50Classes that can't be instantiated directly (i.e., a subclass must be instantiated instead) can be marked with the `abstract` keyword.
51Such classes do not have a _new object,_ since there are no direct instances to represent.
52
53```refinery
54abstract class CompositeElement.
55class Region.
56abstract class Vertex.
57abstract class RegularState extends Vertex.
58class State extends RegularState, CompositeElement.
59```
60
61Notice that the new object `State::new` is an instance of `CompositeElement`, `Vertex`, `RegularState`, and `State` as well.
62
63import NewObjectsWithInheritance from './NewObjectsWithInheritance.svg';
64
65<NewObjectsWithInheritance />
66
67## References
68
69The graph structure of model generated by Refinery is determined by the _references_ of the metamodel, which will appear as labeled edges between nodes (class instances).
70
71References are declared as class members by providing the _target type,_ and optional _multiplicity,_ and the name of the reference:
72
73```refinery
74class Vertex.
75class Transition {
76 Vertex[1] source
77 Vertex[1] target
78}
79```
80
81import ReferencesSimple from './ReferencesSimple.svg';
82
83<ReferencesSimple />
84
85You may add the `refers` keyword for compatibility with [Xcore](https://wiki.eclipse.org/Xcore). The following specification is equivalent:
86
87```refinery
88class Vertex.
89class Transition {
90 refers Vertex[1] source
91 refers Vertex[1] target
92}
93```
94
95### Opposite constraints
96
97The `opposite` keywords specifies that two references are in an _opposite_ relationship, i.e., if one reference is present in a direction, the other must be present between the same nodes in the opposite direction.
98
99```
100class Vertex {
101 Transition[] outgoingTransition opposite source
102 Transition[] incomingTransition opposite target
103}
104class Transition {
105 Vertex[1] source opposite outgoingTransition
106 Vertex[1] target opposite incomingTransition
107}
108```
109
110import ReferencesOppositeInstance from './ReferencesOppositeInstance.svg';
111
112<ReferencesOppositeInstance />
113
114Opposites must be declared in pairs: it is a specification error to declare the `opposite` for one direction but not the other.
115
116Unlike in EMF, references that are the `opposite` of themselves are also supported.
117These must always be present in both directions between two nodes.
118Thus, they correspond to undirected graph edges.
119
120```refinery
121class Person {
122 Person[] friend opposite friend
123}
124```
125
126import ReferencesOppositeSelf from './ReferencesOppositeSelf.svg';
127
128<ReferencesOppositeSelf />
129
130### Multiplicity
131
132_Multiplicity constrains_ can be provided after the reference type in square braces.
133They specify how many _outgoing_ references should exist for any given instance of the class.
134
135:::info
136
137To control the number of _incoming_ references, add an `opposite` reference with multiplicity constraint.
138
139:::
140
141A multiplicity constraint is of the form `[n..m]`, where the non-negative integer `n` is the _lower_ bound of outgoing references,
142and `m` is a positive integer or `*` corresponding to the _upper_ bound of outgoing references.
143The value of `*` represent a reference with _unbounded_ upper multiplicity.
144
145If `n` = `m`, the shorter form `[n]` may be used.
146The bound `[0..*]` may be abbreviated as `[]`.
147If the multiplicity constraint is omitted, the bound `[0..1]` is assumed.
148
149---
150
151In the following model, the node `v1` satisfies all multiplicity constraints of `outgoingTransition`.
152The node `v2` violates the lower bound constraint, while `v3` violates the upper bound constraint.
153All `Transition` instances satisfy the multiplicity constrains associated with `source`.
154
155```refinery
156class Vertex {
157 Transition[2..3] outgoingTransition opposite source
158}
159class Transition {
160 Vertex[1] source opposite outgoingTransition
161}
162```
163
164import MultiplicityConstraintsInstance from './MultiplicityConstraintsInstance.svg';
165
166<MultiplicityConstraintsInstance />
167
168### Containment hierarchy
169
170To structure models and ensure their connectedness, Refinery supports _containment_ constraints.
171
172References may be marked as _containment_ references with the `contains` keyword.
173
174Classes that are the _target type_ of at least one _containment_ reference are considered `contained`.
175An instance of a `contained` class must have exactly 1 incoming containment reference.
176Instances of classes that are not `contained` must _not_ have any incoming containment references.
177
178Containment references have to form a _forest_, i.e., they must not contain any cycles.
179The _roots_ of the forest are instances of classes that are not `contained`, while `contained` classes for the internal nodes and leaves of the trees.
180
181Opposites of _containment_ references have to be marked with the `container` keyword.
182They must not specify any multiplicity constraint, since the multiplicity is already implied by the containment hierarchy.
183
184---
185
186In the following model, the instances of `Region` are the roots of the containment hierarchy.
187The classes `Vertex` are `Transition` are both considered `contained`.
188
189```refinery
190class Region {
191 contains Vertex[] vertices opposite region
192}
193
194class Vertex {
195 container Region region opposite vertices
196 contains Transition[] outgoingTransition opposite source
197 Transition[] incomingTransition opposite target
198}
199
200class Transition {
201 container Vertex source opposite outgoingTransition
202 Vertex[1] target opposite incomingTransition
203}
204```
205
206Containment edges are show with **thick** lines:
207
208import ContainmentInstance from './ContainmentInstance.svg';
209
210<ContainmentInstance />
211
212Containment edges form trees, while non-containment references, such as `target`, may point across the containment hierarchy.
diff --git a/subprojects/docs/src/learn/language/logic/AssertionsError.svg b/subprojects/docs/src/learn/language/logic/AssertionsError.svg
new file mode 100644
index 00000000..8ddc65f3
--- /dev/null
+++ b/subprojects/docs/src/learn/language/logic/AssertionsError.svg
@@ -0,0 +1,20 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="72pt" height="72pt" viewBox="-6 -6 84 84.4000015258789" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery-t1ihtn3yDar9Rl2Fph8SJ"><style>.refinery-t1ihtn3yDar9Rl2Fph8SJ .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .node .node-outline{stroke:#19202b;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .node .node-header{fill:rgb(53, 161, 173);}.refinery-t1ihtn3yDar9Rl2Fph8SJ .node .node-bg{fill:#fff;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-g .node-header{fill:#e5c07b;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-h .node-header{fill:#e06c75;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-i .node-header{fill:#98c379;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-j .node-header{fill:#c678dd;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-k .node-header{fill:#80a7f4;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-m .node-header{fill:#e78b8f;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-n .node-header{fill:#abcc94;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-p .node-header{fill:#92c0e9;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .edge .edge-line{stroke:#19202b;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .edge .edge-arrow{fill:#19202b;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .edge-UNKNOWN text{fill:#696c77;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .edge-UNKNOWN .edge-arrow{fill:none;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .edge-ERROR text{fill:#ca1243;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .edge-ERROR .edge-line{stroke:#ca1243;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .icon-TRUE{fill:#19202b;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .icon-UNKNOWN{fill:#696c77;}.refinery-t1ihtn3yDar9Rl2Fph8SJ .icon-ERROR{fill:#ca1243;}.refinery-t1ihtn3yDar9Rl2Fph8SJ text.label-UNKNOWN{fill:#696c77;}.refinery-t1ihtn3yDar9Rl2Fph8SJ text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-t1ihtn3yDar9Rl2Fph8SJ text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-t1ihtn3yDar9Rl2Fph8SJ-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-t1ihtn3yDar9Rl2Fph8SJ-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-t1ihtn3yDar9Rl2Fph8SJ-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="translate(4, 68.4000015258789)">
4<!-- n3 -->
5<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE">
6
7<rect stroke="none" x="0" y="-64.4" width="64" height="64.4" rx="12" ry="12" class="node-bg"/>
8<rect stroke="none" x="-4" y="-68" width="72" height="27" clip-path="url(#refinery-t1ihtn3yDar9Rl2Fph8SJ-clip-0)" class="node-header"/>
9<text text-anchor="start" x="25.56" y="-48.6" font-size="12.00">v1</text>
10
11
12<use x="6" y="-35" width="12" height="12" id="" class="icon icon-ERROR" href="#refinery-t1ihtn3yDar9Rl2Fph8SJ-icon-ERROR"/>
13<g><text text-anchor="start" x="21.99" y="-25.2" font-size="12.00" class="label label-ERROR">Vertex</text>
14</g>
15<use x="6" y="-19" width="12" height="12" id="" class="icon icon-ERROR" href="#refinery-t1ihtn3yDar9Rl2Fph8SJ-icon-ERROR"/>
16<g><text text-anchor="start" x="22" y="-9.2" font-size="12.00" class="label label-ERROR">State</text>
17</g>
18<polyline points="0,-41 64,-41" class="node-outline"/><rect fill="none" x="0" y="-64.4" width="64" height="64.4" rx="12" ry="12" class="node-outline"/><clipPath id="refinery-t1ihtn3yDar9Rl2Fph8SJ-clip-0"><rect stroke="none" x="0" y="-64.4" width="64" height="64.4" rx="12" ry="12" class="node-bg"/></clipPath></g>
19</g>
20</svg> \ No newline at end of file
diff --git a/subprojects/docs/src/learn/language/logic/AssertionsError.svg.license b/subprojects/docs/src/learn/language/logic/AssertionsError.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/language/logic/AssertionsError.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/language/logic/AssertionsExample.svg b/subprojects/docs/src/learn/language/logic/AssertionsExample.svg
new file mode 100644
index 00000000..26b3d1ff
--- /dev/null
+++ b/subprojects/docs/src/learn/language/logic/AssertionsExample.svg
@@ -0,0 +1,99 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="250pt" height="157pt" viewBox="-6 -6 262.17999267578125 169.1999969482422" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery-yow0X_ZN3HQDi30KE0Sac"><style>.refinery-yow0X_ZN3HQDi30KE0Sac .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-yow0X_ZN3HQDi30KE0Sac .node .node-outline{stroke:#19202b;}.refinery-yow0X_ZN3HQDi30KE0Sac .node .node-header{fill:rgb(53, 161, 173);}.refinery-yow0X_ZN3HQDi30KE0Sac .node .node-bg{fill:#fff;}.refinery-yow0X_ZN3HQDi30KE0Sac .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery-yow0X_ZN3HQDi30KE0Sac .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery-yow0X_ZN3HQDi30KE0Sac .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-g .node-header{fill:#e5c07b;}.refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-h .node-header{fill:#e06c75;}.refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-i .node-header{fill:#98c379;}.refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-j .node-header{fill:#c678dd;}.refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-k .node-header{fill:#80a7f4;}.refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-m .node-header{fill:#e78b8f;}.refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-n .node-header{fill:#abcc94;}.refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-p .node-header{fill:#92c0e9;}.refinery-yow0X_ZN3HQDi30KE0Sac .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-yow0X_ZN3HQDi30KE0Sac .edge .edge-line{stroke:#19202b;}.refinery-yow0X_ZN3HQDi30KE0Sac .edge .edge-arrow{fill:#19202b;}.refinery-yow0X_ZN3HQDi30KE0Sac .edge-UNKNOWN text{fill:#696c77;}.refinery-yow0X_ZN3HQDi30KE0Sac .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery-yow0X_ZN3HQDi30KE0Sac .edge-UNKNOWN .edge-arrow{fill:none;}.refinery-yow0X_ZN3HQDi30KE0Sac .edge-ERROR text{fill:#ca1243;}.refinery-yow0X_ZN3HQDi30KE0Sac .edge-ERROR .edge-line{stroke:#ca1243;}.refinery-yow0X_ZN3HQDi30KE0Sac .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery-yow0X_ZN3HQDi30KE0Sac .icon-TRUE{fill:#19202b;}.refinery-yow0X_ZN3HQDi30KE0Sac .icon-UNKNOWN{fill:#696c77;}.refinery-yow0X_ZN3HQDi30KE0Sac .icon-ERROR{fill:#ca1243;}.refinery-yow0X_ZN3HQDi30KE0Sac text.label-UNKNOWN{fill:#696c77;}.refinery-yow0X_ZN3HQDi30KE0Sac text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-yow0X_ZN3HQDi30KE0Sac text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-yow0X_ZN3HQDi30KE0Sac-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-yow0X_ZN3HQDi30KE0Sac-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-yow0X_ZN3HQDi30KE0Sac-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="translate(4, 153.1999969482422)">
4<!-- n3 -->
5<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-k"><rect stroke="none" x="6.5" y="-143.5" width="79" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
6
7<rect stroke="none" x="1.07" y="-149.2" width="78.19000000000001" height="48.79999999999998" rx="12" ry="12" class="node-bg"/>
8<rect stroke="none" x="-3" y="-153" width="86" height="27" clip-path="url(#refinery-yow0X_ZN3HQDi30KE0Sac-clip-0)" class="node-header"/>
9<text text-anchor="start" x="6.07" y="-133.4" font-size="12.00">Region::new</text>
10<use x="7.07291" y="-119.6" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-yow0X_ZN3HQDi30KE0Sac-icon-TRUE"/>
11<g><text text-anchor="start" x="23.07" y="-110" font-size="12.00" class="label label-TRUE">Region</text>
12</g>
13<polyline points="1.07,-125.8 79.26,-125.8" class="node-outline"/>
14<rect fill="none" x="1.07" y="-149.2" width="78.19000000000001" height="48.79999999999998" rx="12" ry="12" class="node-outline"/>
15<clipPath id="refinery-yow0X_ZN3HQDi30KE0Sac-clip-0"><rect stroke="none" x="1.07" y="-149.2" width="78.19000000000001" height="48.79999999999998" rx="12" ry="12" class="node-bg"/></clipPath></g>
16<!-- n4 -->
17<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-j"><rect stroke="none" x="14.5" y="-58.5" width="69" height="65" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
18
19<rect stroke="none" x="9.03" y="-64.4" width="68.28" height="64.4" rx="12" ry="12" class="node-bg"/>
20<rect stroke="none" x="5" y="-68" width="76" height="27" clip-path="url(#refinery-yow0X_ZN3HQDi30KE0Sac-clip-1)" class="node-header"/>
21<text text-anchor="start" x="14.03" y="-48.6" font-size="12.00">State::new</text>
22<use x="15.027" y="-35" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-yow0X_ZN3HQDi30KE0Sac-icon-TRUE"/>
23<g><text text-anchor="start" x="31.01" y="-25.2" font-size="12.00" class="label label-TRUE">Vertex</text>
24</g>
25<use x="15.027" y="-19" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-yow0X_ZN3HQDi30KE0Sac-icon-TRUE"/>
26<g><text text-anchor="start" x="31.03" y="-9.2" font-size="12.00" class="label label-TRUE">State</text>
27</g>
28<polyline points="9.03,-41 77.31,-41" class="node-outline"/>
29<rect fill="none" x="9.03" y="-64.4" width="68.28" height="64.4" rx="12" ry="12" class="node-outline"/>
30<clipPath id="refinery-yow0X_ZN3HQDi30KE0Sac-clip-1"><rect stroke="none" x="9.03" y="-64.4" width="68.28" height="64.4" rx="12" ry="12" class="node-bg"/></clipPath></g>
31<!-- n3&#45;&gt;n4 -->
32<g class="edge edge-UNKNOWN">
33
34<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M40.94,-100.47C41.19,-92.98 41.47,-84.45 41.75,-76.02" class="edge-line"/>
35<polygon stroke-width="2" points="44.81,-76.18 42.04,-67.34 38.69,-75.98 44.81,-76.18" class="edge-line edge-arrow"/>
36<text text-anchor="start" x="0" y="-86.89" font-weight="bold" font-size="10.50">vertices</text>
37</g>
38<!-- n8 -->
39<!-- n4 -->
40<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-h">
41
42<rect stroke="none" x="96.17" y="-64.4" width="63.999999999999986" height="64.4" rx="12" ry="12" class="node-bg"/>
43<rect stroke="none" x="92" y="-68" width="71" height="27" clip-path="url(#refinery-yow0X_ZN3HQDi30KE0Sac-clip-2)" class="node-header"/>
44<text text-anchor="start" x="121.73" y="-48.6" font-size="12.00">v1</text>
45<use x="102.169" y="-35" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-yow0X_ZN3HQDi30KE0Sac-icon-TRUE"/>
46<g><text text-anchor="start" x="118.15" y="-25.2" font-size="12.00" class="label label-TRUE">Vertex</text>
47</g>
48<use x="102.169" y="-19" width="12" height="12" id="" class="icon icon-UNKNOWN" href="#refinery-yow0X_ZN3HQDi30KE0Sac-icon-UNKNOWN"/>
49<g><text text-anchor="start" x="118.17" y="-9.2" font-size="12.00" class="label label-UNKNOWN">State</text>
50</g>
51<polyline points="96.17,-41 160.17,-41" class="node-outline"/>
52<rect fill="none" x="96.17" y="-64.4" width="63.999999999999986" height="64.4" rx="12" ry="12" class="node-outline"/>
53<clipPath id="refinery-yow0X_ZN3HQDi30KE0Sac-clip-2"><rect stroke="none" x="96.17" y="-64.4" width="63.999999999999986" height="64.4" rx="12" ry="12" class="node-bg"/></clipPath></g><!-- n0&#45;&gt;n3 -->
54<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-k">
55
56<rect stroke="none" x="96.98" y="-149.2" width="66.38000000000001" height="48.79999999999998" rx="12" ry="12" class="node-bg"/>
57<rect stroke="none" x="92" y="-153" width="74" height="27" clip-path="url(#refinery-yow0X_ZN3HQDi30KE0Sac-clip-3)" class="node-header"/>
58<text text-anchor="start" x="124.29" y="-133.4" font-size="12.00">r1</text>
59<use x="102.982" y="-119.6" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-yow0X_ZN3HQDi30KE0Sac-icon-TRUE"/>
60<g><text text-anchor="start" x="118.98" y="-110" font-size="12.00" class="label label-TRUE">Region</text>
61</g>
62<polyline points="96.98,-125.8 163.36,-125.8" class="node-outline"/>
63<rect fill="none" x="96.98" y="-149.2" width="66.38000000000001" height="48.79999999999998" rx="12" ry="12" class="node-outline"/>
64<clipPath id="refinery-yow0X_ZN3HQDi30KE0Sac-clip-3"><rect stroke="none" x="96.98" y="-149.2" width="66.38000000000001" height="48.79999999999998" rx="12" ry="12" class="node-bg"/></clipPath></g><g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-h">
65
66<rect stroke="none" x="178.15" y="-56.6" width="64.03" height="48.800000000000004" rx="12" ry="12" class="node-bg"/>
67<rect stroke="none" x="174" y="-60" width="72" height="27" clip-path="url(#refinery-yow0X_ZN3HQDi30KE0Sac-clip-4)" class="node-header"/>
68<text text-anchor="start" x="203.73" y="-40.8" font-size="12.00">v2</text>
69<use x="184.154" y="-27" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-yow0X_ZN3HQDi30KE0Sac-icon-TRUE"/>
70<g><text text-anchor="start" x="200.15" y="-17.4" font-size="12.00" class="label label-TRUE">Vertex</text>
71</g>
72
73
74<polyline points="178.15,-33.2 242.18,-33.2" class="node-outline"/><rect fill="none" x="178.15" y="-56.6" width="64.03" height="48.800000000000004" rx="12" ry="12" class="node-outline"/><clipPath id="refinery-yow0X_ZN3HQDi30KE0Sac-clip-4"><rect stroke="none" x="178.15" y="-56.6" width="64.03" height="48.800000000000004" rx="12" ry="12" class="node-bg"/></clipPath></g>
75<g class="edge edge-UNKNOWN">
76
77<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M107.76,-100.47C99.59,-91.95 90.1,-82.07 80.95,-72.55" class="edge-line"/>
78<polygon stroke-width="2" points="83.41,-70.68 75.14,-66.49 78.99,-74.93 83.41,-70.68" class="edge-line edge-arrow"/>
79<text text-anchor="start" x="48.91" y="-86.57" font-weight="bold" font-size="10.50">vertices</text>
80</g>
81<!-- n2&#45;&gt;n0 -->
82
83<!-- n3&#45;&gt;n0 -->
84
85<!-- n3&#45;&gt;n4 -->
86
87<g class="edge edge-TRUE">
88
89<path fill="none" stroke-width="2" d="M129.65,-100.47C129.49,-92.98 129.3,-84.45 129.11,-76.02" class="edge-line"/>
90<polygon stroke-width="2" points="132.18,-76.02 128.92,-67.34 126.05,-76.15 132.18,-76.02" class="edge-line edge-arrow"/>
91<text text-anchor="start" x="129.26" y="-86.89" font-weight="bold" font-size="10.50">vertices</text>
92</g>
93<g class="edge edge-TRUE">
94
95<path fill="none" stroke-width="2" d="M150.77,-100.47C160.29,-89.69 171.74,-76.72 182.04,-65.06" class="edge-line"/>
96<polygon stroke-width="2" points="184.14,-67.31 187.63,-58.72 179.55,-63.25 184.14,-67.31" class="edge-line edge-arrow"/>
97<text text-anchor="start" x="128.85" y="-69.81" font-weight="bold" font-size="10.50">vertices</text>
98</g></g>
99</svg> \ No newline at end of file
diff --git a/subprojects/docs/src/learn/language/logic/AssertionsExample.svg.license b/subprojects/docs/src/learn/language/logic/AssertionsExample.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/language/logic/AssertionsExample.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/language/logic/DefaultAssertions.svg b/subprojects/docs/src/learn/language/logic/DefaultAssertions.svg
new file mode 100644
index 00000000..2ab002bf
--- /dev/null
+++ b/subprojects/docs/src/learn/language/logic/DefaultAssertions.svg
@@ -0,0 +1,129 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="327pt" height="157pt" viewBox="-6 -6 339.3299865722656 169.1999969482422" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery-p_2c2ycZZXd-I3Xg-BBah"><style>.refinery-p_2c2ycZZXd-I3Xg-BBah .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-p_2c2ycZZXd-I3Xg-BBah .node .node-outline{stroke:#19202b;}.refinery-p_2c2ycZZXd-I3Xg-BBah .node .node-header{fill:rgb(53, 161, 173);}.refinery-p_2c2ycZZXd-I3Xg-BBah .node .node-bg{fill:#fff;}.refinery-p_2c2ycZZXd-I3Xg-BBah .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery-p_2c2ycZZXd-I3Xg-BBah .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery-p_2c2ycZZXd-I3Xg-BBah .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-g .node-header{fill:#e5c07b;}.refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-h .node-header{fill:#e06c75;}.refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-i .node-header{fill:#98c379;}.refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-j .node-header{fill:#c678dd;}.refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-k .node-header{fill:#80a7f4;}.refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-m .node-header{fill:#e78b8f;}.refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-n .node-header{fill:#abcc94;}.refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-p .node-header{fill:#92c0e9;}.refinery-p_2c2ycZZXd-I3Xg-BBah .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-p_2c2ycZZXd-I3Xg-BBah .edge .edge-line{stroke:#19202b;}.refinery-p_2c2ycZZXd-I3Xg-BBah .edge .edge-arrow{fill:#19202b;}.refinery-p_2c2ycZZXd-I3Xg-BBah .edge-UNKNOWN text{fill:#696c77;}.refinery-p_2c2ycZZXd-I3Xg-BBah .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery-p_2c2ycZZXd-I3Xg-BBah .edge-UNKNOWN .edge-arrow{fill:none;}.refinery-p_2c2ycZZXd-I3Xg-BBah .edge-ERROR text{fill:#ca1243;}.refinery-p_2c2ycZZXd-I3Xg-BBah .edge-ERROR .edge-line{stroke:#ca1243;}.refinery-p_2c2ycZZXd-I3Xg-BBah .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery-p_2c2ycZZXd-I3Xg-BBah .icon-TRUE{fill:#19202b;}.refinery-p_2c2ycZZXd-I3Xg-BBah .icon-UNKNOWN{fill:#696c77;}.refinery-p_2c2ycZZXd-I3Xg-BBah .icon-ERROR{fill:#ca1243;}.refinery-p_2c2ycZZXd-I3Xg-BBah text.label-UNKNOWN{fill:#696c77;}.refinery-p_2c2ycZZXd-I3Xg-BBah text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-p_2c2ycZZXd-I3Xg-BBah text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-p_2c2ycZZXd-I3Xg-BBah-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-p_2c2ycZZXd-I3Xg-BBah-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-p_2c2ycZZXd-I3Xg-BBah-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="scale(1 1) rotate(0) translate(4 153.2)">
4<!-- n0 -->
5
6<!-- n2 -->
7<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-j"><rect stroke="none" x="5.5" y="-58.5" width="69" height="65" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
8
9<rect stroke="none" x="0" y="-64.4" width="68.28" height="64.4" rx="12" ry="12" class="node-bg"/>
10<rect stroke="none" x="-4" y="-68" width="76" height="27" clip-path="url(#refinery-p_2c2ycZZXd-I3Xg-BBah-clip-0)" class="node-header"/>
11<text text-anchor="start" x="5" y="-48.6" font-size="12.00">State::new</text>
12<use x="6" y="-35" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-p_2c2ycZZXd-I3Xg-BBah-icon-TRUE"/>
13<g><text text-anchor="start" x="21.99" y="-25.2" font-size="12.00" class="label label-TRUE">Vertex</text>
14</g>
15<use x="6" y="-19" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-p_2c2ycZZXd-I3Xg-BBah-icon-TRUE"/>
16<g><text text-anchor="start" x="22" y="-9.2" font-size="12.00" class="label label-TRUE">State</text>
17</g>
18<polyline points="0,-41 68.28,-41" class="node-outline"/>
19<rect fill="none" x="0" y="-64.4" width="68.28" height="64.4" rx="12" ry="12" class="node-outline"/>
20<clipPath id="refinery-p_2c2ycZZXd-I3Xg-BBah-clip-0"><rect stroke="none" x="0" y="-64.4" width="68.28" height="64.4" rx="12" ry="12" class="node-bg"/></clipPath></g>
21<!-- n0&#45;&gt;n2 -->
22
23<!-- n3 -->
24<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-k">
25
26<rect stroke="none" x="84.96" y="-149.2" width="66.37000000000002" height="48.79999999999998" rx="12" ry="12" class="node-bg"/>
27<rect stroke="none" x="80" y="-153" width="74" height="27" clip-path="url(#refinery-p_2c2ycZZXd-I3Xg-BBah-clip-1)" class="node-header"/>
28<text text-anchor="start" x="112.26" y="-133.4" font-size="12.00">r1</text>
29<use x="90.9551" y="-119.6" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-p_2c2ycZZXd-I3Xg-BBah-icon-TRUE"/>
30<g><text text-anchor="start" x="106.96" y="-110" font-size="12.00" class="label label-TRUE">Region</text>
31</g>
32<polyline points="84.96,-125.8 151.33,-125.8" class="node-outline"/>
33<rect fill="none" x="84.96" y="-149.2" width="66.37000000000002" height="48.79999999999998" rx="12" ry="12" class="node-outline"/>
34<clipPath id="refinery-p_2c2ycZZXd-I3Xg-BBah-clip-1"><rect stroke="none" x="84.96" y="-149.2" width="66.37000000000002" height="48.79999999999998" rx="12" ry="12" class="node-bg"/></clipPath></g>
35<!-- n3&#45;&gt;n2 -->
36<g class="edge edge-UNKNOWN">
37
38<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M96.51,-100.47C88.69,-92.04 79.64,-82.27 70.89,-72.83" class="edge-line"/>
39<polygon stroke-width="2" points="73.24,-70.86 65.04,-66.53 68.75,-75.03 73.24,-70.86" class="edge-line edge-arrow"/>
40<text text-anchor="start" x="38.02" y="-86.32" font-weight="bold" font-size="10.50">vertices</text>
41</g>
42<!-- n4 -->
43<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-h">
44
45<rect stroke="none" x="86.14" y="-64.4" width="63.999999999999986" height="64.4" rx="12" ry="12" class="node-bg"/>
46<rect stroke="none" x="82" y="-68" width="71" height="27" clip-path="url(#refinery-p_2c2ycZZXd-I3Xg-BBah-clip-2)" class="node-header"/>
47<text text-anchor="start" x="111.71" y="-48.6" font-size="12.00">v1</text>
48<use x="92.1416" y="-35" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-p_2c2ycZZXd-I3Xg-BBah-icon-TRUE"/>
49<g><text text-anchor="start" x="108.13" y="-25.2" font-size="12.00" class="label label-TRUE">Vertex</text>
50</g>
51<use x="92.1416" y="-19" width="12" height="12" id="" class="icon icon-UNKNOWN" href="#refinery-p_2c2ycZZXd-I3Xg-BBah-icon-UNKNOWN"/>
52<g><text text-anchor="start" x="108.14" y="-9.2" font-size="12.00" class="label label-UNKNOWN">State</text>
53</g>
54<polyline points="86.14,-41 150.14,-41" class="node-outline"/>
55<rect fill="none" x="86.14" y="-64.4" width="63.999999999999986" height="64.4" rx="12" ry="12" class="node-outline"/>
56<clipPath id="refinery-p_2c2ycZZXd-I3Xg-BBah-clip-2"><rect stroke="none" x="86.14" y="-64.4" width="63.999999999999986" height="64.4" rx="12" ry="12" class="node-bg"/></clipPath></g>
57<!-- n3&#45;&gt;n4 -->
58<g class="edge edge-TRUE">
59
60<path fill="none" stroke-width="2" d="M118.14,-100.47C118.14,-92.98 118.14,-84.45 118.14,-76.02" class="edge-line"/>
61<polygon stroke-width="2" points="121.2,-76.09 118.14,-67.34 115.08,-76.09 121.2,-76.09" class="edge-line edge-arrow"/>
62<text text-anchor="start" x="118.14" y="-86.89" font-weight="bold" font-size="10.50">vertices</text>
63</g>
64<!-- n5 -->
65<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-k">
66
67<rect stroke="none" x="168.96" y="-149.2" width="66.37" height="48.79999999999998" rx="12" ry="12" class="node-bg"/>
68<rect stroke="none" x="164" y="-153" width="74" height="27" clip-path="url(#refinery-p_2c2ycZZXd-I3Xg-BBah-clip-3)" class="node-header"/>
69<text text-anchor="start" x="196.26" y="-133.4" font-size="12.00">r2</text>
70<use x="174.955" y="-119.6" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-p_2c2ycZZXd-I3Xg-BBah-icon-TRUE"/>
71<g><text text-anchor="start" x="190.96" y="-110" font-size="12.00" class="label label-TRUE">Region</text>
72</g>
73<polyline points="168.96,-125.8 235.33,-125.8" class="node-outline"/>
74<rect fill="none" x="168.96" y="-149.2" width="66.37" height="48.79999999999998" rx="12" ry="12" class="node-outline"/>
75<clipPath id="refinery-p_2c2ycZZXd-I3Xg-BBah-clip-3"><rect stroke="none" x="168.96" y="-149.2" width="66.37" height="48.79999999999998" rx="12" ry="12" class="node-bg"/></clipPath></g>
76<!-- n6 -->
77<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-h">
78
79<rect stroke="none" x="170.14" y="-64.4" width="64" height="64.4" rx="12" ry="12" class="node-bg"/>
80<rect stroke="none" x="166" y="-68" width="72" height="27" clip-path="url(#refinery-p_2c2ycZZXd-I3Xg-BBah-clip-4)" class="node-header"/>
81<text text-anchor="start" x="195.71" y="-48.6" font-size="12.00">v2</text>
82<use x="176.142" y="-35" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-p_2c2ycZZXd-I3Xg-BBah-icon-TRUE"/>
83<g><text text-anchor="start" x="192.13" y="-25.2" font-size="12.00" class="label label-TRUE">Vertex</text>
84</g>
85<use x="176.142" y="-19" width="12" height="12" id="" class="icon icon-UNKNOWN" href="#refinery-p_2c2ycZZXd-I3Xg-BBah-icon-UNKNOWN"/>
86<g><text text-anchor="start" x="192.14" y="-9.2" font-size="12.00" class="label label-UNKNOWN">State</text>
87</g>
88<polyline points="170.14,-41 234.14,-41" class="node-outline"/>
89<rect fill="none" x="170.14" y="-64.4" width="64" height="64.4" rx="12" ry="12" class="node-outline"/>
90<clipPath id="refinery-p_2c2ycZZXd-I3Xg-BBah-clip-4"><rect stroke="none" x="170.14" y="-64.4" width="64" height="64.4" rx="12" ry="12" class="node-bg"/></clipPath></g>
91<!-- n5&#45;&gt;n6 -->
92<g class="edge edge-TRUE">
93
94<path fill="none" stroke-width="2" d="M202.14,-100.47C202.14,-92.98 202.14,-84.45 202.14,-76.02" class="edge-line"/>
95<polygon stroke-width="2" points="205.2,-76.09 202.14,-67.34 199.08,-76.09 205.2,-76.09" class="edge-line edge-arrow"/>
96<text text-anchor="start" x="160.61" y="-86.89" font-weight="bold" font-size="10.50">vertices</text>
97</g><g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-h">
98
99<rect stroke="none" x="254.14" y="-64.4" width="64" height="64.4" rx="12" ry="12" class="node-bg"/>
100<rect stroke="none" x="250" y="-68" width="72" height="27" clip-path="url(#refinery-p_2c2ycZZXd-I3Xg-BBah-clip-5)" class="node-header"/>
101<text text-anchor="start" x="279.71" y="-48.6" font-size="12.00">v3</text>
102<use x="260.142" y="-35" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-p_2c2ycZZXd-I3Xg-BBah-icon-TRUE"/>
103<g><text text-anchor="start" x="276.13" y="-25.2" font-size="12.00" class="label label-TRUE">Vertex</text>
104</g>
105<use x="260.142" y="-19" width="12" height="12" id="" class="icon icon-UNKNOWN" href="#refinery-p_2c2ycZZXd-I3Xg-BBah-icon-UNKNOWN"/>
106<g><text text-anchor="start" x="276.14" y="-9.2" font-size="12.00" class="label label-UNKNOWN">State</text>
107</g>
108<polyline points="254.14,-41 318.14,-41" class="node-outline"/>
109<rect fill="none" x="254.14" y="-64.4" width="64" height="64.4" rx="12" ry="12" class="node-outline"/>
110<clipPath id="refinery-p_2c2ycZZXd-I3Xg-BBah-clip-5"><rect stroke="none" x="254.14" y="-64.4" width="64" height="64.4" rx="12" ry="12" class="node-bg"/></clipPath></g>
111<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-k">
112
113<rect stroke="none" x="252.96" y="-149.2" width="66.36999999999998" height="48.79999999999998" rx="12" ry="12" class="node-bg"/>
114<rect stroke="none" x="248" y="-153" width="74" height="27" clip-path="url(#refinery-p_2c2ycZZXd-I3Xg-BBah-clip-6)" class="node-header"/>
115<text text-anchor="start" x="280.26" y="-133.4" font-size="12.00">r3</text>
116<use x="258.955" y="-119.6" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-p_2c2ycZZXd-I3Xg-BBah-icon-TRUE"/>
117<g><text text-anchor="start" x="274.96" y="-110" font-size="12.00" class="label label-TRUE">Region</text>
118</g>
119<polyline points="252.96,-125.8 319.33,-125.8" class="node-outline"/>
120<rect fill="none" x="252.96" y="-149.2" width="66.36999999999998" height="48.79999999999998" rx="12" ry="12" class="node-outline"/>
121<clipPath id="refinery-p_2c2ycZZXd-I3Xg-BBah-clip-6"><rect stroke="none" x="252.96" y="-149.2" width="66.36999999999998" height="48.79999999999998" rx="12" ry="12" class="node-bg"/></clipPath></g><!-- n7&#45;&gt;n8 -->
122<g class="edge edge-TRUE">
123
124<path fill="none" stroke-width="2" d="M286.14,-100.47C286.14,-92.98 286.14,-84.45 286.14,-76.02" class="edge-line"/>
125<polygon stroke-width="2" points="289.2,-76.09 286.14,-67.34 283.08,-76.09 289.2,-76.09" class="edge-line edge-arrow"/>
126<text text-anchor="start" x="244.61" y="-86.89" font-weight="bold" font-size="10.50">vertices</text>
127</g>
128</g>
129</svg> \ No newline at end of file
diff --git a/subprojects/docs/src/learn/language/logic/DefaultAssertions.svg.license b/subprojects/docs/src/learn/language/logic/DefaultAssertions.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/language/logic/DefaultAssertions.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/language/logic/MultiObjects.svg b/subprojects/docs/src/learn/language/logic/MultiObjects.svg
new file mode 100644
index 00000000..a5232575
--- /dev/null
+++ b/subprojects/docs/src/learn/language/logic/MultiObjects.svg
@@ -0,0 +1,81 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="508pt" height="57pt" viewBox="-6 -6 519.5700073242188 68.79999923706055" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery-meygjgDtG1kB8-FV4IATS"><style>.refinery-meygjgDtG1kB8-FV4IATS .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-meygjgDtG1kB8-FV4IATS .node .node-outline{stroke:#19202b;}.refinery-meygjgDtG1kB8-FV4IATS .node .node-header{fill:rgb(53, 161, 173);}.refinery-meygjgDtG1kB8-FV4IATS .node .node-bg{fill:#fff;}.refinery-meygjgDtG1kB8-FV4IATS .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery-meygjgDtG1kB8-FV4IATS .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery-meygjgDtG1kB8-FV4IATS .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-g .node-header{fill:#e5c07b;}.refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-h .node-header{fill:#e06c75;}.refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-i .node-header{fill:#98c379;}.refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-j .node-header{fill:#c678dd;}.refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-k .node-header{fill:#80a7f4;}.refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-m .node-header{fill:#e78b8f;}.refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-n .node-header{fill:#abcc94;}.refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-p .node-header{fill:#92c0e9;}.refinery-meygjgDtG1kB8-FV4IATS .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-meygjgDtG1kB8-FV4IATS .edge .edge-line{stroke:#19202b;}.refinery-meygjgDtG1kB8-FV4IATS .edge .edge-arrow{fill:#19202b;}.refinery-meygjgDtG1kB8-FV4IATS .edge-UNKNOWN text{fill:#696c77;}.refinery-meygjgDtG1kB8-FV4IATS .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery-meygjgDtG1kB8-FV4IATS .edge-UNKNOWN .edge-arrow{fill:none;}.refinery-meygjgDtG1kB8-FV4IATS .edge-ERROR text{fill:#ca1243;}.refinery-meygjgDtG1kB8-FV4IATS .edge-ERROR .edge-line{stroke:#ca1243;}.refinery-meygjgDtG1kB8-FV4IATS .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery-meygjgDtG1kB8-FV4IATS .icon-TRUE{fill:#19202b;}.refinery-meygjgDtG1kB8-FV4IATS .icon-UNKNOWN{fill:#696c77;}.refinery-meygjgDtG1kB8-FV4IATS .icon-ERROR{fill:#ca1243;}.refinery-meygjgDtG1kB8-FV4IATS text.label-UNKNOWN{fill:#696c77;}.refinery-meygjgDtG1kB8-FV4IATS text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-meygjgDtG1kB8-FV4IATS text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-meygjgDtG1kB8-FV4IATS-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-meygjgDtG1kB8-FV4IATS-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-meygjgDtG1kB8-FV4IATS-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="translate(4, 52.79999923706055)">
4<!-- n0 -->
5<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE">
6
7<rect stroke="none" x="0" y="-48.8" width="59.74" height="48.8" rx="12" ry="12" class="node-bg"/>
8<rect stroke="none" x="-4" y="-52" width="67" height="27" clip-path="url(#refinery-meygjgDtG1kB8-FV4IATS-clip-0)" class="node-header"/>
9<text text-anchor="start" x="6.58" y="-33" font-size="12.00">node [1]</text>
10
11
12<polyline points="0,-25.4 59.74,-25.4" class="node-outline"/><use x="6" y="-19.2" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-meygjgDtG1kB8-FV4IATS-icon-TRUE"/>
13<rect fill="none" x="0" y="-48.8" width="59.74" height="48.8" rx="12" ry="12" class="node-outline"/><g><text text-anchor="start" x="22" y="-9.6" font-size="12.00" class="label label-TRUE">exists</text>
14</g>
15<clipPath id="refinery-meygjgDtG1kB8-FV4IATS-clip-0"><rect stroke="none" x="0" y="-48.8" width="59.74" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
16<!-- n0&#45;&gt;n0 -->
17<g class="edge edge-TRUE">
18
19<path fill="none" d="M59.32,-33.55C69.51,-33.64 77.74,-30.6 77.74,-24.4 77.74,-20.82 74.99,-18.29 70.7,-16.81" class="edge-line"/>
20<polygon points="71.2,-13.35 60.82,-15.46 70.25,-20.28 71.2,-13.35" class="edge-line edge-arrow"/>
21<text text-anchor="middle" x="75.93" y="-36.7" font-size="10.50">equals</text>
22</g>
23<!-- n1 -->
24<g class="node node-IMPLICIT node-exists-UNKNOWN node-equalsSelf-TRUE">
25
26<rect stroke="none" x="95.38" y="-48.8" width="100.98000000000002" height="48.8" rx="12" ry="12" class="node-bg"/>
27<rect stroke="none" x="91" y="-52" width="108" height="27" clip-path="url(#refinery-meygjgDtG1kB8-FV4IATS-clip-1)" class="node-header"/>
28<text text-anchor="start" x="100.38" y="-33" font-size="12.00">removable [0..1]</text>
29
30
31<use x="101.384" y="-19.2" width="12" height="12" id="" class="icon icon-UNKNOWN" href="#refinery-meygjgDtG1kB8-FV4IATS-icon-UNKNOWN"/>
32<g><text text-anchor="start" x="117.38" y="-9.6" font-size="12.00" class="label label-UNKNOWN">exists</text>
33</g>
34<polyline points="95.38,-25.4 196.36,-25.4" class="node-outline"/><rect fill="none" x="95.38" y="-48.8" width="100.98000000000002" height="48.8" rx="12" ry="12" class="node-outline"/><clipPath id="refinery-meygjgDtG1kB8-FV4IATS-clip-1"><rect stroke="none" x="95.38" y="-48.8" width="100.98000000000002" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
35<!-- n1&#45;&gt;n1 -->
36<g class="edge edge-TRUE">
37
38<path fill="none" d="M196.34,-33.23C206.82,-32.3 214.36,-29.36 214.36,-24.4 214.36,-21.46 211.7,-19.22 207.35,-17.7" class="edge-line"/>
39<polygon points="208.31,-14.32 197.83,-15.86 206.98,-21.2 208.31,-14.32" class="edge-line edge-arrow"/>
40<text text-anchor="middle" x="213.45" y="-36.29" font-size="10.50">equals</text>
41</g>
42<!-- n2 -->
43<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-UNKNOWN"><rect stroke="none" x="237.5" y="-42.5" width="70" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
44
45<rect stroke="none" x="232.01" y="-48.8" width="69.72000000000003" height="48.8" rx="12" ry="12" class="node-bg"/>
46<rect stroke="none" x="228" y="-52" width="77" height="27" clip-path="url(#refinery-meygjgDtG1kB8-FV4IATS-clip-2)" class="node-header"/>
47<text text-anchor="start" x="237.01" y="-33" font-size="12.00">multi [1..*]</text>
48<use x="238.011" y="-19.2" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-meygjgDtG1kB8-FV4IATS-icon-TRUE"/>
49<g><text text-anchor="start" x="254.01" y="-9.6" font-size="12.00" class="label label-TRUE">exists</text>
50</g>
51<polyline points="232.01,-25.4 301.73,-25.4" class="node-outline"/>
52<rect fill="none" x="232.01" y="-48.8" width="69.72000000000003" height="48.8" rx="12" ry="12" class="node-outline"/>
53<clipPath id="refinery-meygjgDtG1kB8-FV4IATS-clip-2"><rect stroke="none" x="232.01" y="-48.8" width="69.72000000000003" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
54<!-- n2&#45;&gt;n2 -->
55<g class="edge edge-UNKNOWN">
56
57<path fill="none" d="M301.69,-33.52C311.86,-33.21 319.73,-30.17 319.73,-24.4 319.73,-21.07 317.1,-18.64 312.91,-17.13" class="edge-line" stroke-dasharray="5,2"/>
58<polygon points="313.62,-13.7 303.19,-15.52 312.48,-20.61 313.62,-13.7" class="edge-line edge-arrow"/>
59<text text-anchor="middle" x="318.3" y="-36.66" font-size="10.50">equals</text>
60</g>
61<!-- n3 -->
62<g class="node node-IMPLICIT node-exists-UNKNOWN node-equalsSelf-UNKNOWN"><rect stroke="none" x="342.5" y="-42.5" width="130" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
63
64<rect stroke="none" x="337.25" y="-48.8" width="129.24" height="48.8" rx="12" ry="12" class="node-bg"/>
65<rect stroke="none" x="333" y="-52" width="137" height="27" clip-path="url(#refinery-meygjgDtG1kB8-FV4IATS-clip-3)" class="node-header"/>
66<text text-anchor="start" x="342.25" y="-33" font-size="12.00">removableMulti [0..*]</text>
67<use x="343.251" y="-19.2" width="12" height="12" id="" class="icon icon-UNKNOWN" href="#refinery-meygjgDtG1kB8-FV4IATS-icon-UNKNOWN"/>
68<g><text text-anchor="start" x="359.25" y="-9.6" font-size="12.00" class="label label-UNKNOWN">exists</text>
69</g>
70<polyline points="337.25,-25.4 466.49,-25.4" class="node-outline"/>
71<rect fill="none" x="337.25" y="-48.8" width="129.24" height="48.8" rx="12" ry="12" class="node-outline"/>
72<clipPath id="refinery-meygjgDtG1kB8-FV4IATS-clip-3"><rect stroke="none" x="337.25" y="-48.8" width="129.24" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
73<!-- n3&#45;&gt;n3 -->
74<g class="edge edge-UNKNOWN">
75
76<path fill="none" stroke-dasharray="5,2" d="M466.3,-32.9C477.06,-31.71 484.49,-28.88 484.49,-24.4 484.49,-21.74 481.87,-19.66 477.49,-18.16" class="edge-line"/>
77<polygon points="478.28,-14.75 467.78,-16.2 476.89,-21.61 478.28,-14.75" class="edge-line edge-arrow"/>
78<text text-anchor="middle" x="483.44" y="-35.94" font-size="10.50">equals</text>
79</g>
80</g>
81</svg> \ No newline at end of file
diff --git a/subprojects/docs/src/learn/language/logic/MultiObjects.svg.license b/subprojects/docs/src/learn/language/logic/MultiObjects.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/language/logic/MultiObjects.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/language/logic/ObjectScopes.svg b/subprojects/docs/src/learn/language/logic/ObjectScopes.svg
new file mode 100644
index 00000000..440dfb19
--- /dev/null
+++ b/subprojects/docs/src/learn/language/logic/ObjectScopes.svg
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="260pt" height="157pt" viewBox="-6 -6 271.9100036621094 169.1999969482422" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery--ID4ju8v8LPQmawWdGqBG"><style>.refinery--ID4ju8v8LPQmawWdGqBG .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery--ID4ju8v8LPQmawWdGqBG .node .node-outline{stroke:#19202b;}.refinery--ID4ju8v8LPQmawWdGqBG .node .node-header{fill:rgb(53, 161, 173);}.refinery--ID4ju8v8LPQmawWdGqBG .node .node-bg{fill:#fff;}.refinery--ID4ju8v8LPQmawWdGqBG .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery--ID4ju8v8LPQmawWdGqBG .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery--ID4ju8v8LPQmawWdGqBG .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-g .node-header{fill:#e5c07b;}.refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-h .node-header{fill:#e06c75;}.refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-i .node-header{fill:#98c379;}.refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-j .node-header{fill:#c678dd;}.refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-k .node-header{fill:#80a7f4;}.refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-m .node-header{fill:#e78b8f;}.refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-n .node-header{fill:#abcc94;}.refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-p .node-header{fill:#92c0e9;}.refinery--ID4ju8v8LPQmawWdGqBG .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery--ID4ju8v8LPQmawWdGqBG .edge .edge-line{stroke:#19202b;}.refinery--ID4ju8v8LPQmawWdGqBG .edge .edge-arrow{fill:#19202b;}.refinery--ID4ju8v8LPQmawWdGqBG .edge-UNKNOWN text{fill:#696c77;}.refinery--ID4ju8v8LPQmawWdGqBG .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery--ID4ju8v8LPQmawWdGqBG .edge-UNKNOWN .edge-arrow{fill:none;}.refinery--ID4ju8v8LPQmawWdGqBG .edge-ERROR text{fill:#ca1243;}.refinery--ID4ju8v8LPQmawWdGqBG .edge-ERROR .edge-line{stroke:#ca1243;}.refinery--ID4ju8v8LPQmawWdGqBG .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery--ID4ju8v8LPQmawWdGqBG .icon-TRUE{fill:#19202b;}.refinery--ID4ju8v8LPQmawWdGqBG .icon-UNKNOWN{fill:#696c77;}.refinery--ID4ju8v8LPQmawWdGqBG .icon-ERROR{fill:#ca1243;}.refinery--ID4ju8v8LPQmawWdGqBG text.label-UNKNOWN{fill:#696c77;}.refinery--ID4ju8v8LPQmawWdGqBG text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery--ID4ju8v8LPQmawWdGqBG text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery--ID4ju8v8LPQmawWdGqBG-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery--ID4ju8v8LPQmawWdGqBG-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery--ID4ju8v8LPQmawWdGqBG-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="scale(1 1) rotate(0) translate(4 153.2)">
4<!-- n0 -->
5<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-k"><rect stroke="none" x="74.5" y="-143.5" width="117" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
6
7<rect stroke="none" x="69.26" y="-149.2" width="116.17999999999999" height="48.79999999999998" rx="12" ry="12" class="node-bg"/>
8<rect stroke="none" x="65" y="-153" width="124" height="27" clip-path="url(#refinery--ID4ju8v8LPQmawWdGqBG-clip-0)" class="node-header"/>
9<text text-anchor="start" x="74.26" y="-133.4" font-size="12.00">Region::new [0..70]</text>
10<use x="75.2588" y="-119.6" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery--ID4ju8v8LPQmawWdGqBG-icon-TRUE"/>
11<g><text text-anchor="start" x="91.26" y="-110" font-size="12.00" class="label label-TRUE">Region</text>
12</g>
13<polyline points="69.26,-125.8 185.44,-125.8" class="node-outline"/>
14<rect fill="none" x="69.26" y="-149.2" width="116.17999999999999" height="48.79999999999998" rx="12" ry="12" class="node-outline"/>
15<clipPath id="refinery--ID4ju8v8LPQmawWdGqBG-clip-0"><rect stroke="none" x="69.26" y="-149.2" width="116.17999999999999" height="48.79999999999998" rx="12" ry="12" class="node-bg"/></clipPath></g>
16<!-- n2 -->
17<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-j"><rect stroke="none" x="143.5" y="-58.5" width="114" height="65" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
18
19<rect stroke="none" x="138.78" y="-64.4" width="113.13" height="64.4" rx="12" ry="12" class="node-bg"/>
20<rect stroke="none" x="134" y="-68" width="121" height="27" clip-path="url(#refinery--ID4ju8v8LPQmawWdGqBG-clip-1)" class="node-header"/>
21<text text-anchor="start" x="143.78" y="-48.6" font-size="12.00">State::new [0..120]</text>
22<use x="144.782" y="-35" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery--ID4ju8v8LPQmawWdGqBG-icon-TRUE"/>
23<g><text text-anchor="start" x="160.77" y="-25.2" font-size="12.00" class="label label-TRUE">Vertex</text>
24</g>
25<use x="144.782" y="-19" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery--ID4ju8v8LPQmawWdGqBG-icon-TRUE"/>
26<g><text text-anchor="start" x="160.78" y="-9.2" font-size="12.00" class="label label-TRUE">State</text>
27</g>
28<polyline points="138.78,-41 251.91,-41" class="node-outline"/>
29<rect fill="none" x="138.78" y="-64.4" width="113.13" height="64.4" rx="12" ry="12" class="node-outline"/>
30<clipPath id="refinery--ID4ju8v8LPQmawWdGqBG-clip-1"><rect stroke="none" x="138.78" y="-64.4" width="113.13" height="64.4" rx="12" ry="12" class="node-bg"/></clipPath></g><g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-h"><rect stroke="none" x="5.5" y="-50.5" width="121" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
31
32<rect stroke="none" x="0" y="-56.6" width="120.7" height="48.800000000000004" rx="12" ry="12" class="node-bg"/>
33<rect stroke="none" x="-4" y="-60" width="128" height="27" clip-path="url(#refinery--ID4ju8v8LPQmawWdGqBG-clip-2)" class="node-header"/>
34<text text-anchor="start" x="5" y="-40.8" font-size="12.00">Vertex::new [0..120]</text>
35<use x="6" y="-27" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery--ID4ju8v8LPQmawWdGqBG-icon-TRUE"/>
36<g><text text-anchor="start" x="22" y="-17.4" font-size="12.00" class="label label-TRUE">Vertex</text>
37</g>
38<polyline points="0,-33.2 120.7,-33.2" class="node-outline"/>
39<rect fill="none" x="0" y="-56.6" width="120.7" height="48.800000000000004" rx="12" ry="12" class="node-outline"/>
40<clipPath id="refinery--ID4ju8v8LPQmawWdGqBG-clip-2"><rect stroke="none" x="0" y="-56.6" width="120.7" height="48.800000000000004" rx="12" ry="12" class="node-bg"/></clipPath></g>
41<!-- n0&#45;&gt;n2 -->
42<g class="edge edge-UNKNOWN">
43
44<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M110.09,-100.47C102.28,-89.9 92.91,-77.23 84.42,-65.75" class="edge-line"/>
45<polygon stroke-width="2" points="87.01,-64.1 79.34,-58.89 82.08,-67.74 87.01,-64.1" class="edge-line edge-arrow"/>
46<text text-anchor="start" x="52.27" y="-82.58" font-weight="bold" font-size="10.50">vertices</text>
47</g>
48<!-- n3 -->
49
50<!-- n3&#45;&gt;n2 -->
51<g class="edge edge-UNKNOWN">
52
53<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M144.86,-100.47C150.99,-92.3 158.07,-82.87 164.95,-73.7" class="edge-line"/>
54<polygon stroke-width="2" points="167.38,-75.57 170.18,-66.73 162.48,-71.89 167.38,-75.57" class="edge-line edge-arrow"/>
55<text text-anchor="start" x="116.95" y="-86.47" font-weight="bold" font-size="10.50">vertices</text>
56</g>
57</g>
58</svg> \ No newline at end of file
diff --git a/subprojects/docs/src/learn/language/logic/ObjectScopes.svg.license b/subprojects/docs/src/learn/language/logic/ObjectScopes.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/language/logic/ObjectScopes.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/language/logic/StrongerObjectScopes.svg b/subprojects/docs/src/learn/language/logic/StrongerObjectScopes.svg
new file mode 100644
index 00000000..6f988065
--- /dev/null
+++ b/subprojects/docs/src/learn/language/logic/StrongerObjectScopes.svg
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="246pt" height="157pt" viewBox="-6 -6 258.2899932861328 169.1999969482422" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery-J5TgkNWMX1Aj-K6cbPdd9"><style>.refinery-J5TgkNWMX1Aj-K6cbPdd9 .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .node .node-outline{stroke:#19202b;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .node .node-header{fill:rgb(53, 161, 173);}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .node .node-bg{fill:#fff;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-g .node-header{fill:#e5c07b;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-h .node-header{fill:#e06c75;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-i .node-header{fill:#98c379;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-j .node-header{fill:#c678dd;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-k .node-header{fill:#80a7f4;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-m .node-header{fill:#e78b8f;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-n .node-header{fill:#abcc94;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-p .node-header{fill:#92c0e9;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .edge .edge-line{stroke:#19202b;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .edge .edge-arrow{fill:#19202b;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .edge-UNKNOWN text{fill:#696c77;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .edge-UNKNOWN .edge-arrow{fill:none;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .edge-ERROR text{fill:#ca1243;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .edge-ERROR .edge-line{stroke:#ca1243;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .icon-TRUE{fill:#19202b;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .icon-UNKNOWN{fill:#696c77;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 .icon-ERROR{fill:#ca1243;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 text.label-UNKNOWN{fill:#696c77;}.refinery-J5TgkNWMX1Aj-K6cbPdd9 text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-J5TgkNWMX1Aj-K6cbPdd9 text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-J5TgkNWMX1Aj-K6cbPdd9-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-J5TgkNWMX1Aj-K6cbPdd9-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-J5TgkNWMX1Aj-K6cbPdd9-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="scale(1 1) rotate(0) translate(4 153.2)">
4<!-- n0 -->
5<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-k"><rect stroke="none" x="74.5" y="-143.5" width="117" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
6
7<rect stroke="none" x="69.69" y="-149.2" width="116.18" height="48.79999999999998" rx="12" ry="12" class="node-bg"/>
8<rect stroke="none" x="65" y="-153" width="124" height="27" clip-path="url(#refinery-J5TgkNWMX1Aj-K6cbPdd9-clip-0)" class="node-header"/>
9<text text-anchor="start" x="74.69" y="-133.4" font-size="12.00">Region::new [0..70]</text>
10<use x="75.6895" y="-119.6" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-J5TgkNWMX1Aj-K6cbPdd9-icon-TRUE"/>
11<g><text text-anchor="start" x="91.69" y="-110" font-size="12.00" class="label label-TRUE">Region</text>
12</g>
13<polyline points="69.69,-125.8 185.87,-125.8" class="node-outline"/>
14<rect fill="none" x="69.69" y="-149.2" width="116.18" height="48.79999999999998" rx="12" ry="12" class="node-outline"/>
15<clipPath id="refinery-J5TgkNWMX1Aj-K6cbPdd9-clip-0"><rect stroke="none" x="69.69" y="-149.2" width="116.18" height="48.79999999999998" rx="12" ry="12" class="node-bg"/></clipPath></g>
16<!-- n2 -->
17<g class="node node-NEW node-exists-TRUE node-equalsSelf-UNKNOWN node-typeHash-j"><rect stroke="none" x="150.5" y="-58.5" width="94" height="65" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
18
19<rect stroke="none" x="145.27" y="-64.4" width="93.01999999999998" height="64.4" rx="12" ry="12" class="node-bg"/>
20<rect stroke="none" x="141" y="-68" width="101" height="27" clip-path="url(#refinery-J5TgkNWMX1Aj-K6cbPdd9-clip-1)" class="node-header"/>
21<text text-anchor="start" x="150.27" y="-48.6" font-size="12.00">State::new [20]</text>
22<use x="151.268" y="-35" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-J5TgkNWMX1Aj-K6cbPdd9-icon-TRUE"/>
23<g><text text-anchor="start" x="167.25" y="-25.2" font-size="12.00" class="label label-TRUE">Vertex</text>
24</g>
25<use x="151.268" y="-19" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-J5TgkNWMX1Aj-K6cbPdd9-icon-TRUE"/>
26<g><text text-anchor="start" x="167.27" y="-9.2" font-size="12.00" class="label label-TRUE">State</text>
27</g>
28<polyline points="145.27,-41 238.29,-41" class="node-outline"/>
29<rect fill="none" x="145.27" y="-64.4" width="93.01999999999998" height="64.4" rx="12" ry="12" class="node-outline"/>
30<clipPath id="refinery-J5TgkNWMX1Aj-K6cbPdd9-clip-1"><rect stroke="none" x="145.27" y="-64.4" width="93.01999999999998" height="64.4" rx="12" ry="12" class="node-bg"/></clipPath></g><g class="node node-NEW node-exists-TRUE node-equalsSelf-UNKNOWN node-typeHash-h"><rect stroke="none" x="5.5" y="-50.5" width="128" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
31
32<rect stroke="none" x="0" y="-56.6" width="127.56" height="48.800000000000004" rx="12" ry="12" class="node-bg"/>
33<rect stroke="none" x="-4" y="-60" width="135" height="27" clip-path="url(#refinery-J5TgkNWMX1Aj-K6cbPdd9-clip-2)" class="node-header"/>
34<text text-anchor="start" x="5" y="-40.8" font-size="12.00">Vertex::new [30..100]</text>
35<use x="6" y="-27" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-J5TgkNWMX1Aj-K6cbPdd9-icon-TRUE"/>
36<g><text text-anchor="start" x="22" y="-17.4" font-size="12.00" class="label label-TRUE">Vertex</text>
37</g>
38<polyline points="0,-33.2 127.56,-33.2" class="node-outline"/>
39<rect fill="none" x="0" y="-56.6" width="127.56" height="48.800000000000004" rx="12" ry="12" class="node-outline"/>
40<clipPath id="refinery-J5TgkNWMX1Aj-K6cbPdd9-clip-2"><rect stroke="none" x="0" y="-56.6" width="127.56" height="48.800000000000004" rx="12" ry="12" class="node-bg"/></clipPath></g>
41<!-- n0&#45;&gt;n2 -->
42<g class="edge edge-UNKNOWN">
43
44<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M111.3,-100.47C103.83,-89.9 94.88,-77.23 86.77,-65.75" class="edge-line"/>
45<polygon stroke-width="2" points="89.5,-64.3 81.95,-58.93 84.5,-67.84 89.5,-64.3" class="edge-line edge-arrow"/>
46<text text-anchor="start" x="54.2" y="-82.58" font-weight="bold" font-size="10.50">vertices</text>
47</g>
48<!-- n3 -->
49
50<!-- n3&#45;&gt;n2 -->
51<g class="edge edge-UNKNOWN">
52
53<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M144.26,-100.47C150.03,-92.3 156.69,-82.87 163.17,-73.7" class="edge-line"/>
54<polygon stroke-width="2" points="165.51,-75.7 168.06,-66.78 160.51,-72.16 165.51,-75.7" class="edge-line edge-arrow"/>
55<text text-anchor="start" x="115.55" y="-86.47" font-weight="bold" font-size="10.50">vertices</text>
56</g>
57</g>
58</svg> \ No newline at end of file
diff --git a/subprojects/docs/src/learn/language/logic/StrongerObjectScopes.svg.license b/subprojects/docs/src/learn/language/logic/StrongerObjectScopes.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/language/logic/StrongerObjectScopes.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/language/logic/index.md b/subprojects/docs/src/learn/language/logic/index.md
new file mode 100644
index 00000000..e366e9b8
--- /dev/null
+++ b/subprojects/docs/src/learn/language/logic/index.md
@@ -0,0 +1,256 @@
1---
2SPDX-FileCopyrightText: 2024 The Refinery Authors
3SPDX-License-Identifier: EPL-2.0
4description: Four-valued logic abstraction
5sidebar_position: 1
6---
7
8# Partial modeling
9
10Refinery allow precisely expressing _unknown,_ _uncertain_ or even _contradictory_ information using [four-valued logic](https://en.wikipedia.org/wiki/Four-valued_logic#Belnap).
11During model generation, unknown aspects of the partial model get _refined_ into concrete (true or false) facts until the generated model is completed, or a contradiction is reached.
12
13The _Belnap--Dunn four-valued logic_ supports the following truth values:
14
15* `true` values correspond to facts known about the model, e.g., that a node is the instance of a given class or there is a reference between two nodes.
16* `false` values correspond to facts that are known not to hold, e.g., that a node is _not_ an instance of a given class or there is _no_ reference between two nodes.
17* `unknown` values express uncertain properties and design decisions yet to be made. During model refinement, `unknown` values are gradually replaced with `true` and `false` values until a consistent and concrete model is derived.
18* `error` values represent contradictions and validation failures in the model. One a model contains an error value, it can't be refined into a consistent model anymore.
19
20## Assertions
21
22_Assertions_ express facts about a partial model. An assertion is formed by a _symbol_ and an _argument list_ of _nodes_ in parentheses.
23Possible symbols include [classes](../classes/#classes), [references](../classes/#references), and [predicates](../predicates).
24Nodes appearing in the argument list are automatically added to the model.
25
26A _negative_ assertion with a `false` truth value is indicated by prefixing it with `!`.
27
28---
29
30Consider the following metamodel:
31
32```refinery
33class Region {
34 contains Vertex[] vertices
35}
36class Vertex.
37class State extends Vertex.
38```
39
40Along with the following set of assertions:
41
42```refinery
43Region(r1).
44Vertex(v1).
45Vertex(v2).
46!State(v2).
47vertices(r1, v1).
48vertices(r1, v2).
49!vertices(Region::new, v1).
50!vertices(Region::new, v2).
51```
52
53import AssertionsExample from './AssertionsExample.svg';
54
55<AssertionsExample />
56
57It is `true` that `r1` is an instance of the class `Region`, while `v1` and `v2` are instances of the class `Vertex`.
58We also assert that `v2` is _not_ an instance of the class `State`, but it is unknown whether `v1` is an instance of the class `State`.
59Types that are `unknown` are shown in a lighter color and with an outlined icon.
60
61It is `true` that there is a `vertices` reference between `r1` and `v1`, as well as `r1` and `v2`, but there is no such reference from `Region::new` to the same vertices.
62As no information is provided, it is `unknown` whether `State::new` is a vertex of any `Region` instance.
63References that are `unknown` are shown in a lighter color and with a dashed line.
64
65### Propagation
66
67Refinery can automatically infer some facts about the partial model based on the provided assertions by information _propagation._
68The set of assertions in the [example above](#assertions) is equivalent to the following:
69
70```refinery
71vertices(r1, v1).
72vertices(r1, v2).
73!State(v2).
74```
75
76By the type constraints of the `vertices` reference, Refinery can infer that `r1` is a `Region` instance and `v1` and `v2` are `Vertex` instances.
77Since `State` is a subclass of `Vertex`, it is still unknown whether `v1` is a `State` instance,
78but `v2` is explicitly forbidden from being such by the negative assertion `!State(v2)`.
79We may omit `!vertices(Region::new, v1)` and `!vertices(Region::new, v2)`, since `v1` and `v2` may be a target of only one [containment](../classes/#containment-hierarchy) reference.
80
81Contradictory assertions lead to `error` values in the partial model:
82
83```refinery
84State(v1).
85!Vertex(v1).
86```
87
88import AssertionsError from './AssertionsError.svg';
89
90<AssertionsError />
91
92### Default assertions
93
94Assertions marked with the `default` keyword have _lower priority_ that other assertions.
95They may contain wildcard arguments `*` to specify information about _all_ nodes in the graph.
96However, they can be overridden by more specific assertions that are not marked with the `default` keyword.
97
98---
99
100To make sure that the reference `vertices` is `false` everywhere except where explicitly asserted, we may add a `default` assertion:
101
102```refinery
103default !vertices(*, *).
104vertices(r1, v1).
105vertices(r2, v2).
106vertices(r3, v3).
107?vertices(r1, State::new).
108```
109
110import DefaultAssertions from './DefaultAssertions.svg';
111
112<DefaultAssertions />
113
114We can prefix an assertion with `?` to explicitly assert that some fact about the partial model is `unknown`.
115This is useful for overriding negative `default` assertions.
116
117## Multi-objects
118
119The special symbols `exists` and `equals` control the _number of graph nodes_ represented by an object in a partial model.
120
121By default, `exists` is `true` for all objects.
122An object `o` with `?exists(o)` (i.e., `exists(o)` explicitly set to `unknown`) may be _removed_ from the partial model.
123Therefore, it represents _at least 0_ graph nodes.
124
125By default, `equals` is `true` for its _diagonal_, i.e., we have `equals(o, o)` for all object `o`.
126For off-diagonal pairs, i.e., `(p, q)` with `p` not equal to `q`, we always have `!equals(p, q)`: distinct objects can never be _merged._
127If we set a _diagonal_ entry to `unknown` by writing `?equals(o, o)`, the object `o` becomes a **multi-object:** it can be freely _split_ into multiple graph nodes.
128Therefore, multi-objects represent _possibly more than 1_ graph nodes.
129
130| `exists(o)` | `equals(o, o)` | Number of nodes | Description |
131|:-:|:-:|-:|:-|
132| `true` | `true` | `1` | graph node |
133| `unknown` | `true` | `0..1` | removable graph node |
134| `true` | `unknown` | `1..*` | multi-object |
135| `unknown` | `unknown` | `0..*` | removable multi-object |
136
137In the Refinery web UI, `?exists(o)` is represented with a _dashed_ border, while `?equals(o, o)`
138
139```refinery
140node(node).
141
142node(removable).
143?exists(removable).
144
145node(multi).
146?equals(multi, multi).
147
148node(removableMulti).
149?exists(removableMulti).
150?equals(removableMulti, removableMulti).
151```
152
153import MultiObjects from './MultiObjects.svg';
154
155<MultiObjects />
156
157import TuneIcon from '@material-icons/svg/svg/tune/baseline.svg';
158import LabelIcon from '@material-icons/svg/svg/label/baseline.svg';
159import LabelOutlineIcon from '@material-icons/svg/svg/label/outline.svg';
160
161:::info
162
163You may use the <TuneIcon style={{ fill: 'currentColor', verticalAlign: 'text-top' }} title="Filter panel icon" />&nbsp;_filter panel_ icon in Refinery to toggle the visibility of special symbols like `exists` and `equals`.
164You may either show <LabelOutlineIcon style={{ fill: 'currentColor', verticalAlign: 'text-top' }} title="Unknown value icon" />&nbsp;_both true and unknown_ values or <LabelIcon style={{ fill: 'currentColor', verticalAlign: 'text-top' }} title="True value icon" />&nbsp;_just true_ values.
165The _object scopes_ toggle will also show the number of graph nodes represented by an object in square brackets after its name, like in the figure above.
166:::
167
168By default, a **new object** `C::new` is added for each non-`abstract` [class](../classes#classes) `C` with `?exists(C::new)` and `?equals(C::new, C::new)`.
169This multi-object represents all potential instances of the class.
170To assert that no new instances of `C` should be added to the generated model, you may write `!exists(C::new)`.
171
172You may use the `multi` keyword to quickly defined a (removable) multi-object:
173
174```refinery
175multi removableMulti.
176% This is equivalent to:
177% ?exists(removableMulti).
178% ?equals(removableMulti, removableMulti).
179```
180
181## Type scopes
182
183_Type scopes_ offer finer-grained control over the number of graph nodes in the generated model (as represented by the multi-objects) that `exists` or `equals` assertions.
184
185A _type scope constraint_ is formed by a unary symbol (a [class](../classes/#classes) or a [predicate](../predicates) with a single parameter) and _scope range._
186Ranges have a form similar to [multiplicity constraints](../classes#multiplicity): a range `n..m` indicates a lower bound of `n` and an upper bound of `m`.
187While an upper bound of `*` indicates a possibly unbounded number of objects, generated models will always be finite.
188Like for multiplicity constraints, the case `n..n` can be abbreviated as `n`.
189
190The number of nodes in the generated model can be controlled using the `node` special symbol.
191For example, we may write the following to generate a model with at least 100 at and most 120 nodes:
192
193```refinery
194scope node = 100..200.
195```
196
197A `scope` declaration may prescribe type scope constraint for any number of symbols, separated by `,`.
198Multiple `scope` declarations are also permitted.
199Multiple ranges provided for the same symbol will be intersected, i.e., they influence the generated model simultaneously.
200
201In other words,
202```
203scope Region = 10, State = 80..120.
204scope State = 100..150.
205% Equivalent to:
206scope Region = 10, State = 100..120.
207```
208
209The _object scopes_ option in the <TuneIcon style={{ fill: 'currentColor', verticalAlign: 'text-top' }} title="Filter panel icon" />&nbsp;_filter panel_ may help in exploring the effects of object scopes.
210
211---
212
213Consider the example
214
215```refinery
216class Region {
217 contains Vertex[] vertices
218}
219class Vertex.
220class State extends Vertex.
221scope node = 100..120, Vertex = 50..*.
222```
223
224import ObjectScopes from './ObjectScopes.svg';
225
226<ObjectScopes />
227
228Notice that Refinery could determine that there can be no more than 70 `Region` instances in the generated model, since at least 50 of the `100..120` nodes in the model must be `Vertex` instances.
229However, since `State` is a subclass of `Vertex` (i.e., `State::new` is also an instance of `Vertex`), the range `50..*` is shared between both `Vertex::new` and `State::new`, resulting in both representing `0..120` nodes.
230Nevertheless, every generated model will obey the scope constraint exactly, i.e., will have between 100 and 120 node, at least 50 of which are `Vertex` instances.
231
232By providing more information, Refinery can determine more precise ranges for multi-objects.
233For example, we may strengthen the scope constraints as follows:
234
235```refinery
236scope node = 100..120, Vertex = 50..*, State = 20.
237```
238
239import StrongerObjectScopes from './StrongerObjectScopes.svg';
240
241<StrongerObjectScopes />
242
243### Incremental scopes
244
245We may specify an _incremental_ object scope with the `+=` operator to determine the number of new instances to be added to the model.
246This is only allowed for symbol that are classes with no subclasses, as it directly influences the number of nodes represented by the corresponding `::new` object.
247
248For example, to ensure that between 5 and 7 `State` instances are added to the model, we may write:
249
250```refinery
251State(s1).
252State(s2).
253scope State += 5..7.
254```
255
256Since `s1` and `s2` are also instances of the `State` class, the generated concrete model will have between 7 and 9 `State` instances altogether.
diff --git a/subprojects/docs/src/learn/language/predicates/DerivedFeature.svg b/subprojects/docs/src/learn/language/predicates/DerivedFeature.svg
new file mode 100644
index 00000000..be9465b8
--- /dev/null
+++ b/subprojects/docs/src/learn/language/predicates/DerivedFeature.svg
@@ -0,0 +1,76 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="216pt" height="226pt" viewBox="-6 -6 227.8699951171875 238.39999389648438" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery-9k5t5y1ScYnYvNXEZbWT4"><style>.refinery-9k5t5y1ScYnYvNXEZbWT4 .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .node .node-outline{stroke:#19202b;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .node .node-header{fill:rgb(53, 161, 173);}.refinery-9k5t5y1ScYnYvNXEZbWT4 .node .node-bg{fill:#fff;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-g .node-header{fill:#e5c07b;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-h .node-header{fill:#e06c75;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-i .node-header{fill:#98c379;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-j .node-header{fill:#c678dd;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-k .node-header{fill:#80a7f4;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-m .node-header{fill:#e78b8f;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-n .node-header{fill:#abcc94;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-p .node-header{fill:#92c0e9;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .edge .edge-line{stroke:#19202b;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .edge .edge-arrow{fill:#19202b;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .edge-UNKNOWN text{fill:#696c77;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .edge-UNKNOWN .edge-arrow{fill:none;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .edge-ERROR text{fill:#ca1243;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .edge-ERROR .edge-line{stroke:#ca1243;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .icon-TRUE{fill:#19202b;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .icon-UNKNOWN{fill:#696c77;}.refinery-9k5t5y1ScYnYvNXEZbWT4 .icon-ERROR{fill:#ca1243;}.refinery-9k5t5y1ScYnYvNXEZbWT4 text.label-UNKNOWN{fill:#696c77;}.refinery-9k5t5y1ScYnYvNXEZbWT4 text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-9k5t5y1ScYnYvNXEZbWT4 text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-9k5t5y1ScYnYvNXEZbWT4-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-9k5t5y1ScYnYvNXEZbWT4-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-9k5t5y1ScYnYvNXEZbWT4-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="translate(4, 222.39999389648438)">
4<!-- n2 -->
5<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-i">
6
7<rect stroke="none" x="64.75" y="-48.8" width="84.22" height="48.8" rx="12" ry="12" class="node-bg"/>
8<rect stroke="none" x="60" y="-52" width="92" height="27" clip-path="url(#refinery-9k5t5y1ScYnYvNXEZbWT4-clip-0)" class="node-header"/>
9<text text-anchor="start" x="76.52" y="-33" font-size="12.00">transition1</text>
10<use x="70.7485" y="-19.2" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-9k5t5y1ScYnYvNXEZbWT4-icon-TRUE"/>
11<g><text text-anchor="start" x="86.75" y="-9.6" font-size="12.00" class="label label-TRUE">Transition</text>
12</g>
13<polyline points="64.75,-25.4 148.97,-25.4" class="node-outline"/>
14<rect fill="none" x="64.75" y="-48.8" width="84.22" height="48.8" rx="12" ry="12" class="node-outline"/>
15<clipPath id="refinery-9k5t5y1ScYnYvNXEZbWT4-clip-0"><rect stroke="none" x="64.75" y="-48.8" width="84.22" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
16<!-- n3 -->
17<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-h">
18
19<rect stroke="none" x="74.84" y="-218.4" width="64.03" height="48.80000000000001" rx="12" ry="12" class="node-bg"/>
20<rect stroke="none" x="70" y="-222" width="72" height="27" clip-path="url(#refinery-9k5t5y1ScYnYvNXEZbWT4-clip-1)" class="node-header"/>
21<text text-anchor="start" x="85.98" y="-202.6" font-size="12.00">vertex1</text>
22<use x="80.8442" y="-188.8" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-9k5t5y1ScYnYvNXEZbWT4-icon-TRUE"/>
23<g><text text-anchor="start" x="96.84" y="-179.2" font-size="12.00" class="label label-TRUE">Vertex</text>
24</g>
25<polyline points="74.84,-195 138.87,-195" class="node-outline"/>
26<rect fill="none" x="74.84" y="-218.4" width="64.03" height="48.80000000000001" rx="12" ry="12" class="node-outline"/>
27<clipPath id="refinery-9k5t5y1ScYnYvNXEZbWT4-clip-1"><rect stroke="none" x="74.84" y="-218.4" width="64.03" height="48.80000000000001" rx="12" ry="12" class="node-bg"/></clipPath></g>
28<!-- n2&#45;&gt;n3 -->
29<g class="edge edge-TRUE">
30
31<path fill="none" d="M111.71,-48.78C113.97,-77.25 114.21,-125.59 112.45,-158.38" class="edge-line"/>
32<polygon points="108.96,-157.98 111.8,-168.19 115.95,-158.44 108.96,-157.98" class="edge-line edge-arrow"/>
33<text text-anchor="middle" x="97.12" y="-99.47" font-size="10.50">source</text>
34</g>
35<!-- n4 -->
36<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-h">
37
38<rect stroke="none" x="143.84" y="-133.6" width="64.03" height="48.8" rx="12" ry="12" class="node-bg"/>
39<rect stroke="none" x="139" y="-137" width="72" height="27" clip-path="url(#refinery-9k5t5y1ScYnYvNXEZbWT4-clip-2)" class="node-header"/>
40<text text-anchor="start" x="154.98" y="-117.8" font-size="12.00">vertex2</text>
41<use x="149.844" y="-104" width="12" height="12" id="" class="icon icon-TRUE" href="#refinery-9k5t5y1ScYnYvNXEZbWT4-icon-TRUE"/>
42<g><text text-anchor="start" x="165.84" y="-94.4" font-size="12.00" class="label label-TRUE">Vertex</text>
43</g>
44<polyline points="143.84,-110.2 207.87,-110.2" class="node-outline"/>
45<rect fill="none" x="143.84" y="-133.6" width="64.03" height="48.8" rx="12" ry="12" class="node-outline"/>
46<clipPath id="refinery-9k5t5y1ScYnYvNXEZbWT4-clip-2"><rect stroke="none" x="143.84" y="-133.6" width="64.03" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
47<!-- n2&#45;&gt;n4 -->
48<g class="edge edge-TRUE">
49
50<path fill="none" d="M132.35,-48.63C140.1,-57.19 148.46,-67.04 155.81,-76.23" class="edge-line"/>
51<polygon points="152.92,-78.21 161.83,-83.94 158.44,-73.91 152.92,-78.21" class="edge-line edge-arrow"/>
52<text text-anchor="middle" x="133.35" y="-57.15" font-size="10.50">target</text>
53</g>
54<!-- n3&#45;&gt;n2 -->
55<g class="edge edge-TRUE">
56
57<path fill="none" stroke-width="2" d="M102.01,-169.7C99.75,-141.26 99.5,-92.92 101.27,-60.1" class="edge-line"/>
58<polygon stroke-width="2" points="104.3,-60.73 101.81,-51.8 98.18,-60.33 104.3,-60.73" class="edge-line edge-arrow"/>
59<text text-anchor="start" x="0" y="-113.73" font-weight="bold" font-size="10.50">outgoingTransition</text>
60</g>
61<!-- n4&#45;&gt;n2 -->
62<!-- n4&#45;&gt;n2 -->
63<g class="edge edge-TRUE">
64
65<path fill="none" d="M150.52,-85.14C142.77,-76.59 134.41,-66.75 127.05,-57.54" class="edge-line"/>
66<polygon points="129.93,-55.54 121.01,-49.82 124.41,-59.86 129.93,-55.54" class="edge-line edge-arrow"/>
67<text text-anchor="middle" x="87.8" y="-70.33" font-size="10.50">incomingTransition</text>
68</g><g class="edge edge-TRUE">
69
70<path fill="none" d="M126.08,-169.94C133.27,-161.31 141.57,-151.34 149.31,-142.06" class="edge-line"/>
71<polygon points="151.82,-144.51 155.53,-134.59 146.44,-140.03 151.82,-144.51" class="edge-line edge-arrow"/>
72<text text-anchor="middle" x="116.57" y="-154.94" font-size="10.50">neighbors</text>
73</g>
74
75</g>
76</svg> \ No newline at end of file
diff --git a/subprojects/docs/src/learn/language/predicates/DerivedFeature.svg.license b/subprojects/docs/src/learn/language/predicates/DerivedFeature.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/language/predicates/DerivedFeature.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/language/predicates/index.md b/subprojects/docs/src/learn/language/predicates/index.md
new file mode 100644
index 00000000..261054c1
--- /dev/null
+++ b/subprojects/docs/src/learn/language/predicates/index.md
@@ -0,0 +1,284 @@
1---
2SPDX-FileCopyrightText: 2024 The Refinery Authors
3SPDX-License-Identifier: EPL-2.0
4description: Model queries and model validation
5sidebar_position: 2
6---
7
8# Graph predicates
9
10Graph predicates are logic expressions that can be used to query for interesting model fragments, as well as for validating the consistency of models. They are evaluated on partial models according to [four-valued logic](../logic) semantics.
11
12Predicates in Refinery are written in [Disjunctive Normal Form](https://en.wikipedia.org/wiki/Disjunctive_normal_form) (DNF) as an _OR_ of _ANDs_, i.e., a _disjunction_ of _clauses_ formed as a _conjunction_ of positive or negated logic _literals._
13This matches the syntax and semantics of logical query languages, such as [Datalog](https://en.wikipedia.org/wiki/Datalog), and logical programming languages, such as [Prolog](https://en.wikipedia.org/wiki/Prolog).
14
15import Link from '@docusaurus/Link';
16
17<details>
18<summary>Example metamodel</summary>
19
20In the examples on this page, we will use the following metamodel as illustration:
21
22```refinery
23abstract class CompositeElement {
24 contains Region[] regions
25}
26
27class Region {
28 contains Vertex[] vertices opposite region
29}
30
31abstract class Vertex {
32 container Region region opposite vertices
33 contains Transition[] outgoingTransition opposite source
34 Transition[] incomingTransition opposite target
35}
36
37class Transition {
38 container Vertex source opposite outgoingTransition
39 Vertex[1] target opposite incomingTransition
40}
41
42abstract class Pseudostate extends Vertex.
43
44abstract class RegularState extends Vertex.
45
46class Entry extends Pseudostate.
47
48class Exit extends Pseudostate.
49
50class Choice extends Pseudostate.
51
52class FinalState extends RegularState.
53
54class State extends RegularState, CompositeElement.
55
56class Statechart extends CompositeElement.
57```
58
59<p>
60 <Link
61 href="https://refinery.services/#/1/KLUv_WAEAiUIAOIKIR5gadMGg1ajk9jLoipJ58vc0vAE5opt1YaDpyOCAAdaCjMohSdgl4rj1yTo8UCgpTDHCIAE-o3Jr28mGO9AEoDcR-tLGh4liE2Z3IOX50z-FksLaNWLpLXd1QiUII2vNjCMBWOVEgTzjhG0eHVMIyIyFOjoxcrBv83FkgftlmJ0K_0eVDQgEBSCrXYvD1Q2wlwGXecz2HjRADQOLMh6iIYIWBPuFBBCI2igVgiHAFH4uclAydd4TFayN-oOpjzxgd0FlTzkN6QZ8CQDXBN4EPjB5VJZCANQlJA3wDd_PVyUA5eA0gaeAcgENsm4YnCogWihMAMkA8-CoB-gm9HJC0AB"
62 className="button button--lg button--primary button--play"
63 >Try in Refinery</Link>
64</p>
65
66</details>
67
68[Assertions](../logic/#assertions) about graph predicates can prescribe where the predicate should (for positive assertions) or should not (for negative assertions) hold.
69When generating consistent models
70
71## Atoms
72
73An _atom_ is formed by a _symbol_ and _argument list_ of variables.
74Possible symbols include [classes](../classes/#classes), [references](../classes/#references), and [predicates](../predicates).
75We may write a basic graph query as a conjunction (AND) of atoms.
76
77The `pred` keyword defines a graph predicate. After the _predicate name_, a _parameter list_ of variables is provided. The atoms of the graph predicate are written after the `<->` operator, and a full stop `.` terminates the predicate definition.
78
79The following predicate `entryInRegion` will match pairs of `Region` instances `r` and `Entry` instances `e` such that `e` is a vertex in `r`.
80
81```refinery
82pred entryInRegion(r, e) <->
83 Region(r),
84 vertices(r, e),
85 Entry(e).
86```
87
88We may write unary symbols that act as _parameter types_ directly in the parameter list. The following definition is equivalent to the previous one:
89
90```refinery
91pred entryInRegion(Region r, Entry e) <->
92 vertices(r, e).
93```
94
95import TableIcon from '@material-icons/svg/svg/table_chart/baseline.svg';
96
97:::info
98
99You may display the result of graph predicate matching in the <TableIcon style={{ fill: 'currentColor', verticalAlign: 'text-top' }} title="Table view icon" />&nbsp;_table view_ of the Refinery web UI.
100
101:::
102
103## Quantification
104
105Variables not appearing in the parameter list are _existentially quantified._
106
107The following predicate matches `Region` instances with two entries:
108
109```refinery
110pred multipleEntriesInRegion(Region r) <->
111 entryInRegion(r, e1),
112 entryInRegion(r, e2),
113 e1 != e2.
114```
115
116Existentially quantified variables that appear only once in the predicate should be prefixed with `_`. This shows that the variable is intentionally used only once (as opposite to the second reference to the variable being omitted by mistake).
117
118```refinery
119pred regionWithEntry(Region r) <->
120 entryInRegion(r, _e).
121```
122
123Alternatively, you may use a single `_` whenever a variable occurring only once is desired. Different occurrences of `_` are considered distinct variables.
124
125```refinery
126pred regionWithEntry(Region r) <->
127 entryInRegion(r, _).
128```
129
130## Negation
131
132Negative literals are written by prefixing the corresponding atom with `!`.
133
134Inside negative literals, quantification is _universal:_ the literal matches if there is no assignment of the variables solely appearing in it that satisfies the corresponding atom.
135
136The following predicate matches `Region` instances that have no `Entry`:
137
138```refinery
139pred regionWithoutEntry(Region r) <->
140 !entryInRegion(r, _).
141```
142
143In a graph predicate, all parameter variables must be _positively bound,_ i.e., appear in at least one positive literal (atom).
144Negative literals may further constrain the predicate match one it has been established by the positive literals.
145
146## Object equality
147
148The operators `a == b` and `a != b` correspond to the literals `equals(a, b)` and `!equals(a, b)`, respectively.
149See the section about [multi-objects](../logic/#multi-objects) for more information about the `equals` symbol.
150
151## Transitive closure
152
153The `+` operator forms the [transitive closure](https://en.wikipedia.org/wiki/Transitive_closure) of symbols with exactly 2 parameters.
154The transitive closure `r+(a, b)` holds if either `r(a, b)` is `true`, or there is a sequence of objects `c1`, `c2`, &hellip;, `cn` such that `r(a, c1)`, `r(c1, c2)`, `r(c2, c3)`, &hellip;, `r(cn, b)`.
155In other words, there is a path labelled with `r` in the graph from `a` to `b`.
156
157Transitive closure may express queries about graph reachability:
158
159```refinery
160pred neighbors(Vertex v1, Vertex v2) <->
161 Transition(t),
162 source(t, v1),
163 target(t, v2).
164
165pred cycle(Vertex v) <->
166 neighbors+(v, v).
167```
168
169## Disjunction
170
171Disjunction (OR) of _clauses_ formed by a conjunction (AND) of literals is denoted by `;`.
172
173```refinery
174pred regionWithInvalidNumberOfEntries(Region r) <->
175 !entryInRegion(r, _)
176;
177 entryInRegion(r, e1),
178 entryInRegion(r, e2),
179 e1 != e2.
180```
181
182Every clause of a disjunction must bind every parameter variable of the graph predicate _positively._
183_Type annotations_ on parameter are applied in all clauses.
184Therefore, the previous graph pattern is equivalent to the following:
185
186```refinery
187pred regionWithInvalidNumberOfEntries(r) <->
188 Region(r),
189 !entryInRegion(r, _)
190;
191 Region(r),
192 entryInRegion(r, e1),
193 entryInRegion(r, e2),
194 e1 != e2.
195```
196
197## Derived features
198
199Graph predicates may act as _derived types_ and _references_ in metamodel.
200
201A graph predicate with exactly 1 parameters can be use as if it was a class: you may use it as a [_parameter type_](#atoms) in other graph patterns, as a _target type_ of a (non-containment) [reference](../classes/#references), or in a [_scope constraint_](../logic#type-scopes).
202
203_Derived references_ are graph predicates with exactly 2 parameters, which correspond the source and target node of the reference.
204
205import TuneIcon from '@material-icons/svg/svg/tune/baseline.svg';
206import LabelIcon from '@material-icons/svg/svg/label/baseline.svg';
207import LabelOutlineIcon from '@material-icons/svg/svg/label/outline.svg';
208
209:::info
210
211You may use the <TuneIcon style={{ fill: 'currentColor', verticalAlign: 'text-top' }} title="Filter panel icon" />&nbsp;_filter panel_ icon in Refinery to toggle the visibility of graph predicates with 1 or 2 parameters.
212You may either show <LabelOutlineIcon style={{ fill: 'currentColor', verticalAlign: 'text-top' }} title="Unknown value icon" />&nbsp;_both true and unknown_ values or <LabelIcon style={{ fill: 'currentColor', verticalAlign: 'text-top' }} title="True value icon" />&nbsp;_just true_ values.
213
214:::
215
216---
217
218For example, we may replace the reference `neighbors` in the class `Vertex`:
219
220```refinery
221class Vertex {
222 Vertex[] neighbors
223}
224```
225
226with the graph predicate `neighbors` as follows:
227
228
229```refinery
230class Vertex {
231 contains Transition[] outgoingTransition opposite source
232 Transition[] incomingTransition opposite target
233}
234
235class Transition {
236 container Vertex source opposite outgoingTransition
237 Vertex[1] target opposite incomingTransition
238}
239
240pred neighbors(Vertex v1, Vertex v2) <->
241 Transition(t),
242 source(t, v1),
243 target(t, v2).
244```
245
246Since `neighbors` is now computed based on the `Transition` instances and their `source` and `target` references present in the model, the assertion
247
248```refinery
249neighbors(vertex1, vertex2).
250```
251
252will only be satisfied if a corresponding node `transition1` is present in the generated model that also satisfies
253
254```refinery
255Transition(transition1).
256source(transition1, vertex1).
257target(transition1, vertex2).
258```
259
260import DerivedFeature from './DerivedFeature.svg';
261
262<DerivedFeature />
263
264## Error predicates
265
266A common use-case for graph predicates is _model validation_, where a predicate highlights _errors_ in the model.
267Such predicates are called _error predicates._
268In a consistent generated model, an error predicates should have no matches.
269
270You can declare error predicates with the `error` keyword:
271
272```refinery
273error regionWithoutEntry(Region r) <->
274 !entryInRegion(r, _).
275```
276
277This is equivalent to asserting that the error predicate is `false` everywhere:
278
279```refinery
280pred regionWithoutEntry(Region r) <->
281 !entryInRegion(r, _).
282
283!regionWithoutEntry(*).
284```
diff --git a/subprojects/docs/src/learn/tutorials/_category_.yml b/subprojects/docs/src/learn/tutorials/_category_.yml
new file mode 100644
index 00000000..adf8293f
--- /dev/null
+++ b/subprojects/docs/src/learn/tutorials/_category_.yml
@@ -0,0 +1,11 @@
1# SPDX-FileCopyrightText: 2024 The Refinery Authors
2#
3# SPDX-License-Identifier: EPL-2.0
4
5position: 1
6label: Tutorials
7link:
8 type: generated-index
9 slug: /tutorials
10 title: Tutorial overview
11 description: Try Refinery in practical partial modeling challenges!
diff --git a/subprojects/docs/src/learn/tutorials/file-system/fig1.svg b/subprojects/docs/src/learn/tutorials/file-system/fig1.svg
new file mode 100644
index 00000000..1e20393a
--- /dev/null
+++ b/subprojects/docs/src/learn/tutorials/file-system/fig1.svg
@@ -0,0 +1,72 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="157pt" height="242pt" viewBox="-6 -6 169.47000122070312 254" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery-_27O8Mh6OPBYQczvSCWrX"><style>.refinery-_27O8Mh6OPBYQczvSCWrX{}.refinery-_27O8Mh6OPBYQczvSCWrX .node{}.refinery-_27O8Mh6OPBYQczvSCWrX .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-_27O8Mh6OPBYQczvSCWrX .node .node-outline{stroke:#19202b;}.refinery-_27O8Mh6OPBYQczvSCWrX .node .node-header{fill:rgb(53, 161, 173);}.refinery-_27O8Mh6OPBYQczvSCWrX .node .node-bg{fill:#fff;}.refinery-_27O8Mh6OPBYQczvSCWrX .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery-_27O8Mh6OPBYQczvSCWrX .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery-_27O8Mh6OPBYQczvSCWrX .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-g .node-header{fill:#e5c07b;}.refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-h .node-header{fill:#e06c75;}.refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-i .node-header{fill:#98c379;}.refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-j .node-header{fill:#c678dd;}.refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-k .node-header{fill:#80a7f4;}.refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-m .node-header{fill:#e78b8f;}.refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-n .node-header{fill:#abcc94;}.refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-p .node-header{fill:#92c0e9;}.refinery-_27O8Mh6OPBYQczvSCWrX .edge{}.refinery-_27O8Mh6OPBYQczvSCWrX .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-_27O8Mh6OPBYQczvSCWrX .edge .edge-line{stroke:#19202b;}.refinery-_27O8Mh6OPBYQczvSCWrX .edge .edge-arrow{fill:#19202b;}.refinery-_27O8Mh6OPBYQczvSCWrX .edge-UNKNOWN{}.refinery-_27O8Mh6OPBYQczvSCWrX .edge-UNKNOWN text{fill:#696c77;}.refinery-_27O8Mh6OPBYQczvSCWrX .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery-_27O8Mh6OPBYQczvSCWrX .edge-UNKNOWN .edge-arrow{fill:none;}.refinery-_27O8Mh6OPBYQczvSCWrX .edge-ERROR{}.refinery-_27O8Mh6OPBYQczvSCWrX .edge-ERROR text{fill:#ca1243;}.refinery-_27O8Mh6OPBYQczvSCWrX .edge-ERROR .edge-line{stroke:#ca1243;}.refinery-_27O8Mh6OPBYQczvSCWrX .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery-_27O8Mh6OPBYQczvSCWrX .icon-TRUE{fill:#19202b;}.refinery-_27O8Mh6OPBYQczvSCWrX .icon-UNKNOWN{fill:#696c77;}.refinery-_27O8Mh6OPBYQczvSCWrX .icon-ERROR{fill:#ca1243;}.refinery-_27O8Mh6OPBYQczvSCWrX text.label-UNKNOWN{fill:#696c77;}.refinery-_27O8Mh6OPBYQczvSCWrX text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX{}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .node{}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .edge{}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .edge-UNKNOWN{}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .edge-ERROR{}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-_27O8Mh6OPBYQczvSCWrX text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-_27O8Mh6OPBYQczvSCWrX-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-_27O8Mh6OPBYQczvSCWrX-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-_27O8Mh6OPBYQczvSCWrX-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="translate(4, 238)">
4<!-- n0 -->
5<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-j"><rect stroke="none" x="5.5" y="-228.5" width="100" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
6
7<rect stroke="none" x="0" y="-234" width="99.3" height="48.80000000000001" rx="12" ry="12" class="node-bg"/>
8<rect stroke="none" x="-4" y="-238" width="107" height="27" clip-path="url(#refinery-_27O8Mh6OPBYQczvSCWrX-clip-0)" class="node-header"/>
9<text text-anchor="start" x="5" y="-218.2" font-size="12.00">FileSystem::new</text>
10<use x="6" y="-204.4" width="12" height="12" class="icon icon-TRUE" href="#refinery-_27O8Mh6OPBYQczvSCWrX-icon-TRUE"/>
11<g><text text-anchor="start" x="22" y="-194.8" font-size="12.00" class="label label-TRUE">FileSystem</text>
12</g>
13<polyline points="0,-210.6 99.3,-210.6" class="node-outline"/>
14<rect fill="none" x="0" y="-234" width="99.3" height="48.80000000000001" rx="12" ry="12" class="node-outline"/>
15<clipPath id="refinery-_27O8Mh6OPBYQczvSCWrX-clip-0"><rect stroke="none" x="0" y="-234" width="99.3" height="48.80000000000001" rx="12" ry="12" class="node-bg"/></clipPath></g>
16<!-- n1 -->
17<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-i"><rect stroke="none" x="25.5" y="-42.5" width="59" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
18
19<rect stroke="none" x="20.24" y="-48.8" width="58.82000000000001" height="48.8" rx="12" ry="12" class="node-bg"/>
20<rect stroke="none" x="16" y="-52" width="66" height="27" clip-path="url(#refinery-_27O8Mh6OPBYQczvSCWrX-clip-1)" class="node-header"/>
21<text text-anchor="start" x="25.24" y="-33" font-size="12.00">File::new</text>
22<use x="26.2441" y="-19.2" width="12" height="12" class="icon icon-TRUE" href="#refinery-_27O8Mh6OPBYQczvSCWrX-icon-TRUE"/>
23<g><text text-anchor="start" x="42.24" y="-9.6" font-size="12.00" class="label label-TRUE">File</text>
24</g>
25<polyline points="20.24,-25.4 79.06,-25.4" class="node-outline"/>
26<rect fill="none" x="20.24" y="-48.8" width="58.82000000000001" height="48.8" rx="12" ry="12" class="node-outline"/>
27<clipPath id="refinery-_27O8Mh6OPBYQczvSCWrX-clip-1"><rect stroke="none" x="20.24" y="-48.8" width="58.82000000000001" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
28<!-- n0&#45;&gt;n1 -->
29<g class="edge edge-UNKNOWN">
30
31<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M45.29,-185.28C43.46,-174.36 41.55,-161.16 40.65,-149.2 38.5,-120.66 38.5,-113.34 40.65,-84.8 41.26,-76.76 42.32,-68.17 43.5,-60.08" class="edge-line"/>
32<polygon stroke-width="2" points="46.48,-60.83 44.82,-51.71 40.43,-59.88 46.48,-60.83" class="edge-line edge-arrow"/>
33<text text-anchor="start" x="16.71" y="-121.15" font-weight="bold" font-size="10.50">root</text>
34</g>
35<!-- n2 -->
36<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-k"><rect stroke="none" x="54.5" y="-143.5" width="57" height="65" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
37
38<rect stroke="none" x="49.4" y="-149.2" width="56.50000000000001" height="64.39999999999999" rx="12" ry="12" class="node-bg"/>
39<rect stroke="none" x="45" y="-153" width="64" height="27" clip-path="url(#refinery-_27O8Mh6OPBYQczvSCWrX-clip-2)" class="node-header"/>
40<text text-anchor="start" x="54.4" y="-133.4" font-size="12.00">Dir::new</text>
41<use x="55.4014" y="-119.8" width="12" height="12" class="icon icon-TRUE" href="#refinery-_27O8Mh6OPBYQczvSCWrX-icon-TRUE"/>
42<g><text text-anchor="start" x="70.9" y="-110" font-size="12.00" class="label label-TRUE">File</text>
43</g>
44<use x="55.4014" y="-103.8" width="12" height="12" class="icon icon-TRUE" href="#refinery-_27O8Mh6OPBYQczvSCWrX-icon-TRUE"/>
45<g><text text-anchor="start" x="71.4" y="-94" font-size="12.00" class="label label-TRUE">Dir</text>
46</g>
47<polyline points="49.4,-125.8 105.9,-125.8" class="node-outline"/>
48<rect fill="none" x="49.4" y="-149.2" width="56.50000000000001" height="64.39999999999999" rx="12" ry="12" class="node-outline"/>
49<clipPath id="refinery-_27O8Mh6OPBYQczvSCWrX-clip-2"><rect stroke="none" x="49.4" y="-149.2" width="56.50000000000001" height="64.39999999999999" rx="12" ry="12" class="node-bg"/></clipPath></g>
50<!-- n0&#45;&gt;n2 -->
51<g class="edge edge-UNKNOWN">
52
53<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M56.86,-185.27C59.23,-177.61 61.94,-168.85 64.6,-160.24" class="edge-line"/>
54<polygon stroke-width="2" points="67.49,-161.27 67.14,-152 61.63,-159.46 67.49,-161.27" class="edge-line edge-arrow"/>
55<text text-anchor="start" x="40.15" y="-171.26" font-weight="bold" font-size="10.50">root</text>
56</g>
57<!-- n2&#45;&gt;n1 -->
58<g class="edge edge-UNKNOWN">
59
60<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M68.02,-84.82C65.52,-76.75 62.82,-68.01 60.28,-59.79" class="edge-line"/>
61<polygon stroke-width="2" points="63.23,-58.97 57.72,-51.51 57.38,-60.78 63.23,-58.97" class="edge-line edge-arrow"/>
62<text text-anchor="start" x="18.87" y="-70.97" font-weight="bold" font-size="10.50">element</text>
63</g>
64<!-- n2&#45;&gt;n2 -->
65<g class="edge edge-UNKNOWN">
66
67<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M105.65,-134.35C115.7,-134.72 123.9,-128.94 123.9,-117 123.9,-110.1 121.16,-105.26 116.91,-102.47" class="edge-line"/>
68<polygon stroke-width="2" points="117.82,-99.54 108.59,-100.39 116.33,-105.48 117.82,-99.54" class="edge-line edge-arrow"/>
69<text text-anchor="start" x="105.88" y="-138.5" font-weight="bold" font-size="10.50">element</text>
70</g>
71</g>
72</svg>
diff --git a/subprojects/docs/src/learn/tutorials/file-system/fig1.svg.license b/subprojects/docs/src/learn/tutorials/file-system/fig1.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/tutorials/file-system/fig1.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/tutorials/file-system/fig2.svg b/subprojects/docs/src/learn/tutorials/file-system/fig2.svg
new file mode 100644
index 00000000..6375bfd6
--- /dev/null
+++ b/subprojects/docs/src/learn/tutorials/file-system/fig2.svg
@@ -0,0 +1,145 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="178pt" height="443pt" viewBox="-6 -6 190.0399932861328 454.79998779296875" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery-qAo8dBdD08mqlzpuHY9q_"><style>.refinery-qAo8dBdD08mqlzpuHY9q_{}.refinery-qAo8dBdD08mqlzpuHY9q_ .node{}.refinery-qAo8dBdD08mqlzpuHY9q_ .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-qAo8dBdD08mqlzpuHY9q_ .node .node-outline{stroke:#19202b;}.refinery-qAo8dBdD08mqlzpuHY9q_ .node .node-header{fill:rgb(53, 161, 173);}.refinery-qAo8dBdD08mqlzpuHY9q_ .node .node-bg{fill:#fff;}.refinery-qAo8dBdD08mqlzpuHY9q_ .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery-qAo8dBdD08mqlzpuHY9q_ .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery-qAo8dBdD08mqlzpuHY9q_ .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-g .node-header{fill:#e5c07b;}.refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-h .node-header{fill:#e06c75;}.refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-i .node-header{fill:#98c379;}.refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-j .node-header{fill:#c678dd;}.refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-k .node-header{fill:#80a7f4;}.refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-m .node-header{fill:#e78b8f;}.refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-n .node-header{fill:#abcc94;}.refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-p .node-header{fill:#92c0e9;}.refinery-qAo8dBdD08mqlzpuHY9q_ .edge{}.refinery-qAo8dBdD08mqlzpuHY9q_ .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-qAo8dBdD08mqlzpuHY9q_ .edge .edge-line{stroke:#19202b;}.refinery-qAo8dBdD08mqlzpuHY9q_ .edge .edge-arrow{fill:#19202b;}.refinery-qAo8dBdD08mqlzpuHY9q_ .edge-UNKNOWN{}.refinery-qAo8dBdD08mqlzpuHY9q_ .edge-UNKNOWN text{fill:#696c77;}.refinery-qAo8dBdD08mqlzpuHY9q_ .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery-qAo8dBdD08mqlzpuHY9q_ .edge-UNKNOWN .edge-arrow{fill:none;}.refinery-qAo8dBdD08mqlzpuHY9q_ .edge-ERROR{}.refinery-qAo8dBdD08mqlzpuHY9q_ .edge-ERROR text{fill:#ca1243;}.refinery-qAo8dBdD08mqlzpuHY9q_ .edge-ERROR .edge-line{stroke:#ca1243;}.refinery-qAo8dBdD08mqlzpuHY9q_ .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery-qAo8dBdD08mqlzpuHY9q_ .icon-TRUE{fill:#19202b;}.refinery-qAo8dBdD08mqlzpuHY9q_ .icon-UNKNOWN{fill:#696c77;}.refinery-qAo8dBdD08mqlzpuHY9q_ .icon-ERROR{fill:#ca1243;}.refinery-qAo8dBdD08mqlzpuHY9q_ text.label-UNKNOWN{fill:#696c77;}.refinery-qAo8dBdD08mqlzpuHY9q_ text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_{}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .node{}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .edge{}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .edge-UNKNOWN{}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .edge-ERROR{}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-qAo8dBdD08mqlzpuHY9q_ text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-qAo8dBdD08mqlzpuHY9q_-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-qAo8dBdD08mqlzpuHY9q_-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-qAo8dBdD08mqlzpuHY9q_-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="translate(4, 438.79998779296875)">
4<!-- n0 -->
5<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-j"><rect stroke="none" x="26.5" y="-428.5" width="100" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
6
7<rect stroke="none" x="21.89" y="-434.8" width="99.3" height="48.80000000000001" rx="12" ry="12" class="node-bg"/>
8<rect stroke="none" x="17" y="-438" width="107" height="27" clip-path="url(#refinery-qAo8dBdD08mqlzpuHY9q_-clip-0)" class="node-header"/>
9<text text-anchor="start" x="26.89" y="-419" font-size="12.00">FileSystem::new</text>
10<use x="27.891" y="-405.2" width="12" height="12" class="icon icon-TRUE" href="#refinery-qAo8dBdD08mqlzpuHY9q_-icon-TRUE"/>
11<g><text text-anchor="start" x="43.89" y="-395.6" font-size="12.00" class="label label-TRUE">FileSystem</text>
12</g>
13<polyline points="21.89,-411.4 121.19,-411.4" class="node-outline"/>
14<rect fill="none" x="21.89" y="-434.8" width="99.3" height="48.80000000000001" rx="12" ry="12" class="node-outline"/>
15<clipPath id="refinery-qAo8dBdD08mqlzpuHY9q_-clip-0"><rect stroke="none" x="21.89" y="-434.8" width="99.3" height="48.80000000000001" rx="12" ry="12" class="node-bg"/></clipPath></g>
16<!-- n1 -->
17<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-i"><rect stroke="none" x="34.5" y="-42.5" width="59" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
18
19<rect stroke="none" x="29.14" y="-48.8" width="58.81" height="48.8" rx="12" ry="12" class="node-bg"/>
20<rect stroke="none" x="25" y="-52" width="66" height="27" clip-path="url(#refinery-qAo8dBdD08mqlzpuHY9q_-clip-1)" class="node-header"/>
21<text text-anchor="start" x="34.14" y="-33" font-size="12.00">File::new</text>
22<use x="35.1351" y="-19.2" width="12" height="12" class="icon icon-TRUE" href="#refinery-qAo8dBdD08mqlzpuHY9q_-icon-TRUE"/>
23<g><text text-anchor="start" x="51.14" y="-9.6" font-size="12.00" class="label label-TRUE">File</text>
24</g>
25<polyline points="29.14,-25.4 87.95,-25.4" class="node-outline"/>
26<rect fill="none" x="29.14" y="-48.8" width="58.81" height="48.8" rx="12" ry="12" class="node-outline"/>
27<clipPath id="refinery-qAo8dBdD08mqlzpuHY9q_-clip-1"><rect stroke="none" x="29.14" y="-48.8" width="58.81" height="48.8" rx="12" ry="12" class="node-bg"/></clipPath></g>
28<!-- n0&#45;&gt;n1 -->
29<g class="edge edge-UNKNOWN">
30
31<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M52.75,-386.01C45.57,-375.62 38.22,-362.85 34.54,-350 5.26,-247.62 32.09,-120.09 48.29,-59.9" class="edge-line"/>
32<polygon stroke-width="2" points="51.18,-60.96 50.56,-51.71 45.27,-59.32 51.18,-60.96" class="edge-line edge-arrow"/>
33<text text-anchor="start" x="0" y="-219.98" font-weight="bold" font-size="10.50">root</text>
34</g>
35<!-- n2 -->
36<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-k"><rect stroke="none" x="48.5" y="-344.5" width="57" height="65" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
37
38<rect stroke="none" x="43.29" y="-350" width="56.50000000000001" height="64.39999999999998" rx="12" ry="12" class="node-bg"/>
39<rect stroke="none" x="39" y="-354" width="64" height="27" clip-path="url(#refinery-qAo8dBdD08mqlzpuHY9q_-clip-2)" class="node-header"/>
40<text text-anchor="start" x="48.29" y="-334.2" font-size="12.00">Dir::new</text>
41<use x="49.2923" y="-320.6" width="12" height="12" class="icon icon-TRUE" href="#refinery-qAo8dBdD08mqlzpuHY9q_-icon-TRUE"/>
42<g><text text-anchor="start" x="64.79" y="-310.8" font-size="12.00" class="label label-TRUE">File</text>
43</g>
44<use x="49.2923" y="-304.6" width="12" height="12" class="icon icon-TRUE" href="#refinery-qAo8dBdD08mqlzpuHY9q_-icon-TRUE"/>
45<g><text text-anchor="start" x="65.29" y="-294.8" font-size="12.00" class="label label-TRUE">Dir</text>
46</g>
47<polyline points="43.29,-326.6 99.79,-326.6" class="node-outline"/>
48<rect fill="none" x="43.29" y="-350" width="56.50000000000001" height="64.39999999999998" rx="12" ry="12" class="node-outline"/>
49<clipPath id="refinery-qAo8dBdD08mqlzpuHY9q_-clip-2"><rect stroke="none" x="43.29" y="-350" width="56.50000000000001" height="64.39999999999998" rx="12" ry="12" class="node-bg"/></clipPath></g>
50<!-- n0&#45;&gt;n2 -->
51<g class="edge edge-UNKNOWN">
52
53<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M71.54,-386.07C71.54,-378.58 71.54,-370.05 71.54,-361.62" class="edge-line"/>
54<polygon stroke-width="2" points="74.6,-361.69 71.54,-352.94 68.48,-361.69 74.6,-361.69" class="edge-line edge-arrow"/>
55<text text-anchor="start" x="49.21" y="-372.49" font-weight="bold" font-size="10.50">root</text>
56</g>
57<!-- n2&#45;&gt;n1 -->
58<!-- n2&#45;&gt;n1 -->
59<g class="edge edge-UNKNOWN">
60
61<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M66.95,-285.69C62.24,-252.11 55.24,-197 52.54,-149.2 50.93,-120.62 51.1,-113.39 52.54,-84.8 52.94,-76.89 53.64,-68.42 54.41,-60.42" class="edge-line"/>
62<polygon stroke-width="2" points="57.45,-60.81 55.32,-51.79 51.36,-60.17 57.45,-60.81" class="edge-line edge-arrow"/>
63<text text-anchor="start" x="8.96" y="-153.34" font-weight="bold" font-size="10.50">element</text>
64</g><g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-k">
65
66<rect stroke="none" x="100.02" y="-249.6" width="65.04" height="64.4" rx="12" ry="12" class="node-bg"/>
67<rect stroke="none" x="96" y="-253" width="73" height="27" clip-path="url(#refinery-qAo8dBdD08mqlzpuHY9q_-clip-3)" class="node-header"/>
68<text text-anchor="start" x="105.02" y="-233.8" font-size="12.00">resources</text>
69<use x="106.024" y="-220.2" width="12" height="12" class="icon icon-TRUE" href="#refinery-qAo8dBdD08mqlzpuHY9q_-icon-TRUE"/>
70<g><text text-anchor="start" x="121.53" y="-210.4" font-size="12.00" class="label label-TRUE">File</text>
71</g>
72<use x="106.024" y="-204.2" width="12" height="12" class="icon icon-TRUE" href="#refinery-qAo8dBdD08mqlzpuHY9q_-icon-TRUE"/>
73<g><text text-anchor="start" x="122.02" y="-194.4" font-size="12.00" class="label label-TRUE">Dir</text>
74</g>
75<polyline points="100.02,-226.2 165.06,-226.2" class="node-outline"/>
76<rect fill="none" x="100.02" y="-249.6" width="65.04" height="64.4" rx="12" ry="12" class="node-outline"/>
77<clipPath id="refinery-qAo8dBdD08mqlzpuHY9q_-clip-3"><rect stroke="none" x="100.02" y="-249.6" width="65.04" height="64.4" rx="12" ry="12" class="node-bg"/></clipPath></g>
78<!-- n2&#45;&gt;n2 -->
79
80<!-- n2&#45;&gt;n2 -->
81<g class="edge edge-UNKNOWN">
82
83<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M99.54,-335.15C109.59,-335.52 117.79,-329.74 117.79,-317.8 117.79,-310.9 115.05,-306.06 110.8,-303.27" class="edge-line"/>
84<polygon stroke-width="2" points="111.71,-300.34 102.48,-301.19 110.22,-306.28 111.71,-300.34" class="edge-line edge-arrow"/>
85<text text-anchor="start" x="99.78" y="-339.3" font-weight="bold" font-size="10.50">element</text>
86</g><g class="edge edge-UNKNOWN">
87
88<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M100.14,-386.27C110.37,-376.29 120.79,-363.74 126.54,-350 138.25,-322.01 139.44,-287.68 137.86,-261.1" class="edge-line"/>
89<polygon stroke-width="2" points="140.92,-261 137.2,-252.51 134.82,-261.47 140.92,-261" class="edge-line edge-arrow"/>
90<text text-anchor="start" x="112.62" y="-325.05" font-weight="bold" font-size="10.50">root</text>
91</g>
92
93<!-- n2&#45;&gt;n3 -->
94<g class="edge edge-UNKNOWN">
95
96<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M96.92,-275.87C100.36,-270.32 103.89,-264.63 107.32,-259.08" class="edge-line"/>
97<polygon stroke-width="2" points="94.45,-274.04 92.44,-283.09 99.65,-277.27 94.45,-274.04" class="edge-line edge-arrow"/>
98<polygon stroke-width="2" points="109.76,-260.96 111.77,-251.9 104.56,-257.73 109.76,-260.96" class="edge-line edge-arrow"/>
99<text text-anchor="start" x="58.37" y="-271.89" font-weight="bold" font-size="10.50">element</text>
100</g>
101<!-- n3&#45;&gt;n1 -->
102<g class="edge edge-UNKNOWN">
103
104<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M134.25,-185.32C134.53,-157.62 131.82,-116.65 116.54,-84.8 111.59,-74.48 104.13,-64.85 96.2,-56.47" class="edge-line"/>
105<polygon stroke-width="2" points="98.37,-54.31 89.99,-50.34 94.06,-58.67 98.37,-54.31" class="edge-line edge-arrow"/>
106<text text-anchor="start" x="126.45" y="-116.67" font-weight="bold" font-size="10.50">element</text>
107</g>
108<!-- n4 -->
109<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-i">
110
111<rect stroke="none" x="61.54" y="-149.2" width="46.00000000000001" height="64.39999999999999" rx="12" ry="12" class="node-bg"/>
112<rect stroke="none" x="57" y="-153" width="54" height="27" clip-path="url(#refinery-qAo8dBdD08mqlzpuHY9q_-clip-4)" class="node-header"/>
113<text text-anchor="start" x="74.16" y="-133.4" font-size="12.00">img</text>
114<use x="67.5423" y="-119.8" width="12" height="12" class="icon icon-TRUE" href="#refinery-qAo8dBdD08mqlzpuHY9q_-icon-TRUE"/>
115<g><text text-anchor="start" x="83.04" y="-110" font-size="12.00" class="label label-TRUE">File</text>
116</g>
117<use x="67.5423" y="-103.8" width="12" height="12" class="icon icon-UNKNOWN" href="#refinery-qAo8dBdD08mqlzpuHY9q_-icon-UNKNOWN"/>
118<g><text text-anchor="start" x="83.54" y="-94" font-size="12.00" class="label label-UNKNOWN">Dir</text>
119</g>
120<polyline points="61.54,-125.8 107.54,-125.8" class="node-outline"/>
121<rect fill="none" x="61.54" y="-149.2" width="46.00000000000001" height="64.39999999999999" rx="12" ry="12" class="node-outline"/>
122<clipPath id="refinery-qAo8dBdD08mqlzpuHY9q_-clip-4"><rect stroke="none" x="61.54" y="-149.2" width="46.00000000000001" height="64.39999999999999" rx="12" ry="12" class="node-bg"/></clipPath></g>
123<!-- n3&#45;&gt;n4 -->
124<g class="edge edge-TRUE">
125
126<path fill="none" stroke-width="2" d="M117.35,-185.27C113.33,-177.02 108.93,-167.99 104.69,-159.29" class="edge-line"/>
127<polygon stroke-width="2" points="107.55,-158.17 100.96,-151.65 102.04,-160.86 107.55,-158.17" class="edge-line edge-arrow"/>
128<text text-anchor="start" x="64.91" y="-171.25" font-weight="bold" font-size="10.50">element</text>
129</g>
130<!-- n4&#45;&gt;n1 -->
131<g class="edge edge-UNKNOWN">
132
133<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M75.59,-84.82C73.28,-76.75 70.77,-68.01 68.41,-59.79" class="edge-line"/>
134<polygon stroke-width="2" points="71.4,-59.1 66.04,-51.53 65.51,-60.79 71.4,-59.1" class="edge-line edge-arrow"/>
135<text text-anchor="start" x="26.85" y="-70.97" font-weight="bold" font-size="10.50">element</text>
136</g>
137<!-- n4&#45;&gt;n2 -->
138<g class="edge edge-UNKNOWN">
139
140<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M82.5,-149.17C80.3,-182.82 76.79,-236.62 74.33,-274.16" class="edge-line"/>
141<polygon stroke-width="2" points="71.29,-273.79 73.77,-282.72 77.4,-274.19 71.29,-273.79" class="edge-line edge-arrow"/>
142<text text-anchor="start" x="34.45" y="-221.7" font-weight="bold" font-size="10.50">element</text>
143</g>
144</g>
145</svg>
diff --git a/subprojects/docs/src/learn/tutorials/file-system/fig2.svg.license b/subprojects/docs/src/learn/tutorials/file-system/fig2.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/tutorials/file-system/fig2.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/tutorials/file-system/fig3.svg b/subprojects/docs/src/learn/tutorials/file-system/fig3.svg
new file mode 100644
index 00000000..0d020a71
--- /dev/null
+++ b/subprojects/docs/src/learn/tutorials/file-system/fig3.svg
@@ -0,0 +1,124 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="526pt" height="88pt" viewBox="-6 -6 537.6199951171875 100.4000015258789" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery-KGyg4OhNwvGOkw-tAzU-g"><style>.refinery-KGyg4OhNwvGOkw-tAzU-g{}.refinery-KGyg4OhNwvGOkw-tAzU-g .node{}.refinery-KGyg4OhNwvGOkw-tAzU-g .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-KGyg4OhNwvGOkw-tAzU-g .node .node-outline{stroke:#19202b;}.refinery-KGyg4OhNwvGOkw-tAzU-g .node .node-header{fill:rgb(53, 161, 173);}.refinery-KGyg4OhNwvGOkw-tAzU-g .node .node-bg{fill:#fff;}.refinery-KGyg4OhNwvGOkw-tAzU-g .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery-KGyg4OhNwvGOkw-tAzU-g .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery-KGyg4OhNwvGOkw-tAzU-g .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-g .node-header{fill:#e5c07b;}.refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-h .node-header{fill:#e06c75;}.refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-i .node-header{fill:#98c379;}.refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-j .node-header{fill:#c678dd;}.refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-k .node-header{fill:#80a7f4;}.refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-m .node-header{fill:#e78b8f;}.refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-n .node-header{fill:#abcc94;}.refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-p .node-header{fill:#92c0e9;}.refinery-KGyg4OhNwvGOkw-tAzU-g .edge{}.refinery-KGyg4OhNwvGOkw-tAzU-g .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-KGyg4OhNwvGOkw-tAzU-g .edge .edge-line{stroke:#19202b;}.refinery-KGyg4OhNwvGOkw-tAzU-g .edge .edge-arrow{fill:#19202b;}.refinery-KGyg4OhNwvGOkw-tAzU-g .edge-UNKNOWN{}.refinery-KGyg4OhNwvGOkw-tAzU-g .edge-UNKNOWN text{fill:#696c77;}.refinery-KGyg4OhNwvGOkw-tAzU-g .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery-KGyg4OhNwvGOkw-tAzU-g .edge-UNKNOWN .edge-arrow{fill:none;}.refinery-KGyg4OhNwvGOkw-tAzU-g .edge-ERROR{}.refinery-KGyg4OhNwvGOkw-tAzU-g .edge-ERROR text{fill:#ca1243;}.refinery-KGyg4OhNwvGOkw-tAzU-g .edge-ERROR .edge-line{stroke:#ca1243;}.refinery-KGyg4OhNwvGOkw-tAzU-g .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery-KGyg4OhNwvGOkw-tAzU-g .icon-TRUE{fill:#19202b;}.refinery-KGyg4OhNwvGOkw-tAzU-g .icon-UNKNOWN{fill:#696c77;}.refinery-KGyg4OhNwvGOkw-tAzU-g .icon-ERROR{fill:#ca1243;}.refinery-KGyg4OhNwvGOkw-tAzU-g text.label-UNKNOWN{fill:#696c77;}.refinery-KGyg4OhNwvGOkw-tAzU-g text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g{}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .node{}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .edge{}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .edge-UNKNOWN{}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .edge-ERROR{}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-KGyg4OhNwvGOkw-tAzU-g text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-KGyg4OhNwvGOkw-tAzU-g-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-KGyg4OhNwvGOkw-tAzU-g-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-KGyg4OhNwvGOkw-tAzU-g-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="translate(4, 84.4000015258789)">
4<!-- n0 -->
5<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-j"><rect stroke="none" x="5.5" y="-66.5" width="100" height="65" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
6
7<rect stroke="none" x="0" y="-72.4" width="99.3" height="64.4" rx="12" ry="12" class="node-bg"/>
8<rect stroke="none" x="-4" y="-76" width="107" height="27" clip-path="url(#refinery-KGyg4OhNwvGOkw-tAzU-g-clip-0)" class="node-header"/>
9<text text-anchor="start" x="5" y="-56.6" font-size="12.00">FileSystem::new</text>
10<use x="6" y="-27" width="12" height="12" class="icon icon-TRUE" href="#refinery-KGyg4OhNwvGOkw-tAzU-g-icon-TRUE"/><use x="6" y="-43" width="12" height="12" class="icon icon-UNKNOWN" href="#refinery-KGyg4OhNwvGOkw-tAzU-g-icon-UNKNOWN"/>
11<g><text text-anchor="start" x="21.76" y="-17.2" font-size="12.00" class="label label-TRUE">FileSystem</text>
12</g><g><text text-anchor="start" x="22" y="-33.2" font-size="12.00" class="label label-UNKNOWN">exists</text>
13</g>
14<polyline points="0,-49 99.3,-49" class="node-outline"/>
15
16<rect fill="none" x="0" y="-72.4" width="99.3" height="64.4" rx="12" ry="12" class="node-outline"/>
17
18<clipPath id="refinery-KGyg4OhNwvGOkw-tAzU-g-clip-0"><rect stroke="none" x="0" y="-72.4" width="99.3" height="64.4" rx="12" ry="12" class="node-bg"/></clipPath></g>
19<!-- n1 -->
20<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-i"><rect stroke="none" x="140.5" y="-66.5" width="60" height="65" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
21
22<rect stroke="none" x="135.15" y="-72.4" width="59" height="64.4" rx="12" ry="12" class="node-bg"/>
23<rect stroke="none" x="131" y="-76" width="67" height="27" clip-path="url(#refinery-KGyg4OhNwvGOkw-tAzU-g-clip-1)" class="node-header"/>
24<text text-anchor="start" x="140.24" y="-56.6" font-size="12.00">File::new</text>
25<use x="141.151" y="-27" width="12" height="12" class="icon icon-TRUE" href="#refinery-KGyg4OhNwvGOkw-tAzU-g-icon-TRUE"/><use x="141.151" y="-43" width="12" height="12" class="icon icon-UNKNOWN" href="#refinery-KGyg4OhNwvGOkw-tAzU-g-icon-UNKNOWN"/>
26<g><text text-anchor="start" x="157.15" y="-17.2" font-size="12.00" class="label label-TRUE">File</text>
27</g><g><text text-anchor="start" x="156.78" y="-33.2" font-size="12.00" class="label label-UNKNOWN">exists</text>
28</g>
29<polyline points="135.15,-49 194.15,-49" class="node-outline"/>
30
31<rect fill="none" x="135.15" y="-72.4" width="59" height="64.4" rx="12" ry="12" class="node-outline"/>
32
33<clipPath id="refinery-KGyg4OhNwvGOkw-tAzU-g-clip-1"><rect stroke="none" x="135.15" y="-72.4" width="59" height="64.4" rx="12" ry="12" class="node-bg"/></clipPath></g><g class="edge edge-UNKNOWN">
34
35<path fill="none" stroke-dasharray="5,2" d="M99.21,-51.89C109.72,-50.7 117.3,-46.8 117.3,-40.2 117.3,-36.28 114.63,-33.31 110.26,-31.3" class="edge-line"/>
36<polygon points="111.23,-27.94 100.68,-28.89 109.52,-34.73 111.23,-27.94" class="edge-line edge-arrow"/>
37<text text-anchor="middle" x="116.8" y="-54.85" font-size="10.50">equals</text>
38</g>
39<!-- n2 -->
40<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-k"><rect stroke="none" x="235.5" y="-74.5" width="59" height="81" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
41
42<rect stroke="none" x="230.15" y="-80.4" width="58.99999999999997" height="80.4" rx="12" ry="12" class="node-bg"/>
43<rect stroke="none" x="226" y="-84" width="66" height="27" clip-path="url(#refinery-KGyg4OhNwvGOkw-tAzU-g-clip-2)" class="node-header"/>
44<text text-anchor="start" x="236.4" y="-64.6" font-size="12.00">Dir::new</text>
45<use x="236.151" y="-35" width="12" height="12" class="icon icon-TRUE" href="#refinery-KGyg4OhNwvGOkw-tAzU-g-icon-TRUE"/><use x="236.151" y="-51" width="12" height="12" class="icon icon-UNKNOWN" href="#refinery-KGyg4OhNwvGOkw-tAzU-g-icon-UNKNOWN"/>
46<g><text text-anchor="start" x="252.15" y="-25.2" font-size="12.00" class="label label-TRUE">File</text>
47</g><g><text text-anchor="start" x="251.78" y="-41.2" font-size="12.00" class="label label-UNKNOWN">exists</text>
48</g>
49<polyline points="230.15,-57 289.15,-57" class="node-outline"/><use x="236.151" y="-19" width="12" height="12" class="icon icon-TRUE" href="#refinery-KGyg4OhNwvGOkw-tAzU-g-icon-TRUE"/>
50
51
52<rect fill="none" x="230.15" y="-80.4" width="58.99999999999997" height="80.4" rx="12" ry="12" class="node-outline"/><g><text text-anchor="start" x="252.15" y="-9.2" font-size="12.00" class="label label-TRUE">Dir</text>
53</g>
54
55
56<clipPath id="refinery-KGyg4OhNwvGOkw-tAzU-g-clip-2"><rect stroke="none" x="230.15" y="-80.4" width="58.99999999999997" height="80.4" rx="12" ry="12" class="node-bg"/></clipPath></g>
57<!-- n3 -->
58<!-- n2&#45;&gt;n2 -->
59<g class="edge edge-UNKNOWN">
60
61<path fill="none" stroke-dasharray="5,2" d="M288.87,-55.27C298.99,-55.43 307.15,-50.41 307.15,-40.2 307.15,-34.14 304.27,-29.91 299.82,-27.5" class="edge-line"/>
62<polygon points="300.87,-24.15 290.35,-25.45 299.38,-30.99 300.87,-24.15" class="edge-line edge-arrow"/>
63<text text-anchor="middle" x="305.48" y="-58.42" font-size="10.50">equals</text>
64</g>
65<!-- n3 -->
66<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-k">
67
68<rect stroke="none" x="325.13" y="-80.4" width="65.04000000000002" height="80.4" rx="12" ry="12" class="node-bg"/>
69<rect stroke="none" x="321" y="-84" width="73" height="27" clip-path="url(#refinery-KGyg4OhNwvGOkw-tAzU-g-clip-3)" class="node-header"/>
70<text text-anchor="start" x="330.13" y="-64.6" font-size="12.00">resources</text>
71<use x="331.133" y="-35" width="12" height="12" class="icon icon-TRUE" href="#refinery-KGyg4OhNwvGOkw-tAzU-g-icon-TRUE"/><use x="331.133" y="-51" width="12" height="12" class="icon icon-TRUE" href="#refinery-KGyg4OhNwvGOkw-tAzU-g-icon-TRUE"/>
72<g><text text-anchor="start" x="347.13" y="-25.2" font-size="12.00" class="label label-TRUE">File</text>
73</g><g><text text-anchor="start" x="346.76" y="-41.2" font-size="12.00" class="label label-TRUE">exists</text>
74</g>
75<polyline points="325.13,-57 390.17,-57" class="node-outline"/><use x="331.133" y="-19" width="12" height="12" class="icon icon-TRUE" href="#refinery-KGyg4OhNwvGOkw-tAzU-g-icon-TRUE"/>
76
77
78<rect fill="none" x="325.13" y="-80.4" width="65.04000000000002" height="80.4" rx="12" ry="12" class="node-outline"/><g><text text-anchor="start" x="347.13" y="-9.2" font-size="12.00" class="label label-TRUE">Dir</text>
79</g>
80
81
82<clipPath id="refinery-KGyg4OhNwvGOkw-tAzU-g-clip-3"><rect stroke="none" x="325.13" y="-80.4" width="65.04000000000002" height="80.4" rx="12" ry="12" class="node-bg"/></clipPath></g><g class="edge edge-UNKNOWN">
83
84<path fill="none" stroke-dasharray="5,2" d="M193.87,-52.27C203.99,-52.4 212.15,-48.38 212.15,-40.2 212.15,-35.47 209.42,-32.13 205.17,-30.18" class="edge-line"/>
85<polygon points="205.83,-26.75 195.36,-28.4 204.57,-33.63 205.83,-26.75" class="edge-line edge-arrow"/>
86<text text-anchor="middle" x="210.48" y="-55.42" font-size="10.50">equals</text>
87</g>
88<!-- n4 -->
89
90<!-- n3&#45;&gt;n3 -->
91<g class="edge edge-TRUE">
92
93<path fill="none" d="M389.72,-55.27C400.01,-55.12 408.17,-50.09 408.17,-40.2 408.17,-34.33 405.29,-30.17 400.8,-27.73" class="edge-line"/>
94<polygon points="401.73,-24.35 391.19,-25.47 400.13,-31.16 401.73,-24.35" class="edge-line edge-arrow"/>
95<text text-anchor="middle" x="406.34" y="-58.41" font-size="10.50">equals</text>
96</g>
97<!-- n4 -->
98<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-i">
99
100<rect stroke="none" x="426.15" y="-80.4" width="59" height="80.4" rx="12" ry="12" class="node-bg"/>
101<rect stroke="none" x="422" y="-84" width="67" height="27" clip-path="url(#refinery-KGyg4OhNwvGOkw-tAzU-g-clip-4)" class="node-header"/>
102<text text-anchor="start" x="445.27" y="-64.6" font-size="12.00">img</text>
103<use x="432.151" y="-35" width="12" height="12" class="icon icon-TRUE" href="#refinery-KGyg4OhNwvGOkw-tAzU-g-icon-TRUE"/><use x="432.151" y="-51" width="12" height="12" class="icon icon-TRUE" href="#refinery-KGyg4OhNwvGOkw-tAzU-g-icon-TRUE"/>
104<g><text text-anchor="start" x="448.15" y="-25.2" font-size="12.00" class="label label-TRUE">File</text>
105</g><g><text text-anchor="start" x="447.78" y="-41.2" font-size="12.00" class="label label-TRUE">exists</text>
106</g>
107<polyline points="426.15,-57 485.15,-57" class="node-outline"/><use x="432.151" y="-19" width="12" height="12" class="icon icon-UNKNOWN" href="#refinery-KGyg4OhNwvGOkw-tAzU-g-icon-UNKNOWN"/>
108
109
110<rect fill="none" x="426.15" y="-80.4" width="59" height="80.4" rx="12" ry="12" class="node-outline"/><g><text text-anchor="start" x="448.15" y="-9.2" font-size="12.00" class="label label-UNKNOWN">Dir</text>
111</g>
112
113
114<clipPath id="refinery-KGyg4OhNwvGOkw-tAzU-g-clip-4"><rect stroke="none" x="426.15" y="-80.4" width="59" height="80.4" rx="12" ry="12" class="node-bg"/></clipPath></g>
115
116<!-- n4&#45;&gt;n4 -->
117<g class="edge edge-TRUE">
118
119<path fill="none" d="M484.87,-55.27C494.99,-55.43 503.15,-50.41 503.15,-40.2 503.15,-34.14 500.27,-29.91 495.82,-27.5" class="edge-line"/>
120<polygon points="496.87,-24.15 486.35,-25.45 495.38,-30.99 496.87,-24.15" class="edge-line edge-arrow"/>
121<text text-anchor="middle" x="501.48" y="-58.42" font-size="10.50">equals</text>
122</g>
123</g>
124</svg>
diff --git a/subprojects/docs/src/learn/tutorials/file-system/fig3.svg.license b/subprojects/docs/src/learn/tutorials/file-system/fig3.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/tutorials/file-system/fig3.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/tutorials/file-system/fig4.svg b/subprojects/docs/src/learn/tutorials/file-system/fig4.svg
new file mode 100644
index 00000000..d6701bdd
--- /dev/null
+++ b/subprojects/docs/src/learn/tutorials/file-system/fig4.svg
@@ -0,0 +1,131 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="204pt" height="358pt" viewBox="-6 -6 215.91000366210938 370" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="refinery-D5mYxKifz-hFmWmmvYTA9"><style>.refinery-D5mYxKifz-hFmWmmvYTA9{}.refinery-D5mYxKifz-hFmWmmvYTA9 .node{}.refinery-D5mYxKifz-hFmWmmvYTA9 .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-D5mYxKifz-hFmWmmvYTA9 .node .node-outline{stroke:#19202b;}.refinery-D5mYxKifz-hFmWmmvYTA9 .node .node-header{fill:rgb(53, 161, 173);}.refinery-D5mYxKifz-hFmWmmvYTA9 .node .node-bg{fill:#fff;}.refinery-D5mYxKifz-hFmWmmvYTA9 .node-INDIVIDUAL .node-outline{stroke-width:2;}.refinery-D5mYxKifz-hFmWmmvYTA9 .node-shadow.node-bg{fill:#19202b;opacity:0.24;}.refinery-D5mYxKifz-hFmWmmvYTA9 .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}.refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-g .node-header{fill:#e5c07b;}.refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-h .node-header{fill:#e06c75;}.refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-i .node-header{fill:#98c379;}.refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-j .node-header{fill:#c678dd;}.refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-k .node-header{fill:#80a7f4;}.refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-l .node-header{fill:#e3d1b2;}.refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-m .node-header{fill:#e78b8f;}.refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-n .node-header{fill:#abcc94;}.refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-o .node-header{fill:#dbb2e8;}.refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-p .node-header{fill:#92c0e9;}.refinery-D5mYxKifz-hFmWmmvYTA9 .edge{}.refinery-D5mYxKifz-hFmWmmvYTA9 .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#19202b;}.refinery-D5mYxKifz-hFmWmmvYTA9 .edge .edge-line{stroke:#19202b;}.refinery-D5mYxKifz-hFmWmmvYTA9 .edge .edge-arrow{fill:#19202b;}.refinery-D5mYxKifz-hFmWmmvYTA9 .edge-UNKNOWN{}.refinery-D5mYxKifz-hFmWmmvYTA9 .edge-UNKNOWN text{fill:#696c77;}.refinery-D5mYxKifz-hFmWmmvYTA9 .edge-UNKNOWN .edge-line{stroke:#696c77;}.refinery-D5mYxKifz-hFmWmmvYTA9 .edge-UNKNOWN .edge-arrow{fill:none;}.refinery-D5mYxKifz-hFmWmmvYTA9 .edge-ERROR{}.refinery-D5mYxKifz-hFmWmmvYTA9 .edge-ERROR text{fill:#ca1243;}.refinery-D5mYxKifz-hFmWmmvYTA9 .edge-ERROR .edge-line{stroke:#ca1243;}.refinery-D5mYxKifz-hFmWmmvYTA9 .edge-ERROR .edge-arrow{fill:#ca1243;}.refinery-D5mYxKifz-hFmWmmvYTA9 .icon-TRUE{fill:#19202b;}.refinery-D5mYxKifz-hFmWmmvYTA9 .icon-UNKNOWN{fill:#696c77;}.refinery-D5mYxKifz-hFmWmmvYTA9 .icon-ERROR{fill:#ca1243;}.refinery-D5mYxKifz-hFmWmmvYTA9 text.label-UNKNOWN{fill:#696c77;}.refinery-D5mYxKifz-hFmWmmvYTA9 text.label-ERROR{fill:#ca1243;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9{}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .node{}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .node text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .node .node-outline{stroke:#ebebff;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .node .node-header{fill:rgb(60, 127, 135);}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .node .node-bg{fill:#282c34;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .node-INDIVIDUAL .node-outline{stroke-width:2;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .node-shadow.node-bg{fill:#ebebff;opacity:0.32;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .node-exists-UNKNOWN .node-outline{stroke-dasharray:5 2;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-g .node-header{fill:#ae8003;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-h .node-header{fill:#a23b47;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-i .node-header{fill:#428141;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-j .node-header{fill:#854797;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-k .node-header{fill:#3982bb;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-l .node-header{fill:#827662;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-m .node-header{fill:#904f53;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-n .node-header{fill:#647e63;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-o .node-header{fill:#805f89;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .node-typeHash-p .node-header{fill:#4f7799;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .edge{}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .edge text{font-family:"Open Sans Variable","Open Sans","Roboto","Helvetica","Arial",sans-serif;fill:#ebebff;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .edge .edge-line{stroke:#ebebff;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .edge .edge-arrow{fill:#ebebff;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .edge-UNKNOWN{}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .edge-UNKNOWN text{fill:#abb2bf;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .edge-UNKNOWN .edge-line{stroke:#abb2bf;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .edge-UNKNOWN .edge-arrow{fill:none;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .edge-ERROR{}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .edge-ERROR text{fill:#e06c75;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .edge-ERROR .edge-line{stroke:#e06c75;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .edge-ERROR .edge-arrow{fill:#e06c75;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .icon-TRUE{fill:#ebebff;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .icon-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 .icon-ERROR{fill:#e06c75;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 text.label-UNKNOWN{fill:#abb2bf;}[data-theme="dark"] .refinery-D5mYxKifz-hFmWmmvYTA9 text.label-ERROR{fill:#e06c75;}</style><defs><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-D5mYxKifz-hFmWmmvYTA9-icon-TRUE" class="icon-TRUE"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-D5mYxKifz-hFmWmmvYTA9-icon-UNKNOWN" class="icon-UNKNOWN"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z"/></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" id="refinery-D5mYxKifz-hFmWmmvYTA9-icon-ERROR" class="icon-ERROR"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17L12 13.41L8.41 17L7 15.59L10.59 12L7 8.41L8.41 7L12 10.59L15.59 7L17 8.41L13.41 12L17 15.59z"/></svg></defs>
3<g class="graph" transform="translate(4, 354)">
4<!-- n0 -->
5<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-j"><rect stroke="none" x="40.5" y="-344.5" width="100" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
6
7<rect stroke="none" x="35.76" y="-350" width="99.30000000000001" height="48.80000000000001" rx="12" ry="12" class="node-bg"/>
8<rect stroke="none" x="31" y="-354" width="107" height="27" clip-path="url(#refinery-D5mYxKifz-hFmWmmvYTA9-clip-0)" class="node-header"/>
9<text text-anchor="start" x="40.76" y="-334.2" font-size="12.00">FileSystem::new</text>
10<use x="41.7559" y="-320.40000000000003" width="12" height="12" class="icon icon-TRUE" href="#refinery-D5mYxKifz-hFmWmmvYTA9-icon-TRUE"/>
11<g><text text-anchor="start" x="57.76" y="-310.8" font-size="12.00" class="label label-TRUE">FileSystem</text>
12</g>
13<polyline points="35.76,-326.6 135.06,-326.6" class="node-outline"/>
14<rect fill="none" x="35.76" y="-350" width="99.30000000000001" height="48.80000000000001" rx="12" ry="12" class="node-outline"/>
15<clipPath id="refinery-D5mYxKifz-hFmWmmvYTA9-clip-0"><rect stroke="none" x="35.76" y="-350" width="99.30000000000001" height="48.80000000000001" rx="12" ry="12" class="node-bg"/></clipPath></g>
16<!-- n1 -->
17<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-i"><rect stroke="none" x="5.5" y="-50.5" width="59" height="49" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
18
19<rect stroke="none" x="0" y="-56.6" width="58.81" height="48.800000000000004" rx="12" ry="12" class="node-bg"/>
20<rect stroke="none" x="-4" y="-60" width="66" height="27" clip-path="url(#refinery-D5mYxKifz-hFmWmmvYTA9-clip-1)" class="node-header"/>
21<text text-anchor="start" x="5" y="-40.8" font-size="12.00">File::new</text>
22<use x="6" y="-27" width="12" height="12" class="icon icon-TRUE" href="#refinery-D5mYxKifz-hFmWmmvYTA9-icon-TRUE"/>
23<g><text text-anchor="start" x="22" y="-17.4" font-size="12.00" class="label label-TRUE">File</text>
24</g>
25<polyline points="0,-33.2 58.81,-33.2" class="node-outline"/>
26<rect fill="none" x="0" y="-56.6" width="58.81" height="48.800000000000004" rx="12" ry="12" class="node-outline"/>
27<clipPath id="refinery-D5mYxKifz-hFmWmmvYTA9-clip-1"><rect stroke="none" x="0" y="-56.6" width="58.81" height="48.800000000000004" rx="12" ry="12" class="node-bg"/></clipPath></g>
28<!-- n2 -->
29<g class="node node-NEW node-exists-UNKNOWN node-equalsSelf-UNKNOWN node-typeHash-k"><rect stroke="none" x="62.5" y="-259.5" width="57" height="65" rx="12.5" ry="12.5" class="node-shadow node-bg"/>
30
31<rect stroke="none" x="57.16" y="-265.2" width="56.5" height="64.39999999999998" rx="12" ry="12" class="node-bg"/>
32<rect stroke="none" x="53" y="-269" width="64" height="27" clip-path="url(#refinery-D5mYxKifz-hFmWmmvYTA9-clip-2)" class="node-header"/>
33<text text-anchor="start" x="62.16" y="-249.4" font-size="12.00">Dir::new</text>
34<use x="63.1572" y="-235.8" width="12" height="12" class="icon icon-TRUE" href="#refinery-D5mYxKifz-hFmWmmvYTA9-icon-TRUE"/>
35<g><text text-anchor="start" x="78.66" y="-226" font-size="12.00" class="label label-TRUE">File</text>
36</g>
37<polyline points="57.16,-241.8 113.66,-241.8" class="node-outline"/><use x="63.1572" y="-219.8" width="12" height="12" class="icon icon-TRUE" href="#refinery-D5mYxKifz-hFmWmmvYTA9-icon-TRUE"/>
38
39<rect fill="none" x="57.16" y="-265.2" width="56.5" height="64.39999999999998" rx="12" ry="12" class="node-outline"/><g><text text-anchor="start" x="79.16" y="-210" font-size="12.00" class="label label-TRUE">Dir</text>
40</g>
41
42<clipPath id="refinery-D5mYxKifz-hFmWmmvYTA9-clip-2"><rect stroke="none" x="57.16" y="-265.2" width="56.5" height="64.39999999999998" rx="12" ry="12" class="node-bg"/></clipPath></g><g class="edge edge-UNKNOWN">
43
44<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M67.32,-301.34C60.16,-290.87 52.64,-278 48.41,-265.2 26.21,-198.07 25.48,-114.34 27.24,-68.05" class="edge-line"/>
45<polygon stroke-width="2" points="30.3,-68.21 27.64,-59.33 24.18,-67.93 30.3,-68.21" class="edge-line edge-arrow"/>
46<text text-anchor="start" x="8.62" y="-185.04" font-weight="bold" font-size="10.50">root</text>
47</g>
48<!-- n3 -->
49<!-- n2&#45;&gt;n2 -->
50
51<!-- n3 -->
52<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-k">
53
54<rect stroke="none" x="101.89" y="-164.8" width="65.04" height="64.4" rx="12" ry="12" class="node-bg"/>
55<rect stroke="none" x="97" y="-168" width="73" height="27" clip-path="url(#refinery-D5mYxKifz-hFmWmmvYTA9-clip-3)" class="node-header"/>
56<text text-anchor="start" x="106.89" y="-149" font-size="12.00">resources</text>
57<use x="107.889" y="-135.4" width="12" height="12" class="icon icon-TRUE" href="#refinery-D5mYxKifz-hFmWmmvYTA9-icon-TRUE"/>
58<g><text text-anchor="start" x="123.39" y="-125.6" font-size="12.00" class="label label-TRUE">File</text>
59</g>
60<polyline points="101.89,-141.4 166.93,-141.4" class="node-outline"/><use x="107.889" y="-119.4" width="12" height="12" class="icon icon-TRUE" href="#refinery-D5mYxKifz-hFmWmmvYTA9-icon-TRUE"/>
61
62<rect fill="none" x="101.89" y="-164.8" width="65.04" height="64.4" rx="12" ry="12" class="node-outline"/><g><text text-anchor="start" x="123.89" y="-109.6" font-size="12.00" class="label label-TRUE">Dir</text>
63</g>
64
65<clipPath id="refinery-D5mYxKifz-hFmWmmvYTA9-clip-3"><rect stroke="none" x="101.89" y="-164.8" width="65.04" height="64.4" rx="12" ry="12" class="node-bg"/></clipPath></g>
66<!-- n4 -->
67<g class="edge edge-UNKNOWN">
68
69<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M114.62,-301.32C124.8,-291.4 135.02,-278.94 140.41,-265.2 151.53,-236.82 149.44,-202.32 144.89,-175.77" class="edge-line"/>
70<polygon stroke-width="2" points="147.96,-175.54 143.31,-167.52 141.95,-176.69 147.96,-175.54" class="edge-line edge-arrow"/>
71<text text-anchor="start" x="125.22" y="-239.21" font-weight="bold" font-size="10.50">root</text>
72</g>
73<!-- n3&#45;&gt;n3 -->
74<g class="edge edge-UNKNOWN">
75
76<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M76.66,-200.94C66.45,-164.72 49.64,-105.03 39.06,-67.48" class="edge-line"/>
77<polygon stroke-width="2" points="42.14,-67.1 36.82,-59.5 36.24,-68.76 42.14,-67.1" class="edge-line edge-arrow"/>
78<text text-anchor="start" x="12.66" y="-132.63" font-weight="bold" font-size="10.50">element</text>
79</g>
80<!-- n4 -->
81<!-- n3&#45;&gt;n1 -->
82<g class="edge edge-UNKNOWN">
83
84<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M102.05,-101.27C89.51,-89.53 75.18,-76.09 62.57,-64.28" class="edge-line"/>
85<polygon stroke-width="2" points="64.85,-62.21 56.37,-58.46 60.66,-66.68 64.85,-62.21" class="edge-line edge-arrow"/>
86<text text-anchor="start" x="34.34" y="-82.82" font-weight="bold" font-size="10.50">element</text>
87</g>
88<!-- n4 -->
89<g class="node node-IMPLICIT node-exists-TRUE node-equalsSelf-TRUE node-typeHash-i">
90
91<rect stroke="none" x="76.91" y="-64.4" width="119" height="64.4" rx="12" ry="12" class="node-bg"/>
92<rect stroke="none" x="72" y="-68" width="127" height="27" clip-path="url(#refinery-D5mYxKifz-hFmWmmvYTA9-clip-4)" class="node-header"/>
93<text text-anchor="start" x="126.02" y="-48.6" font-size="12.00">img</text>
94<use x="82.9072" y="-19" width="12" height="12" class="icon icon-TRUE" href="#refinery-D5mYxKifz-hFmWmmvYTA9-icon-TRUE"/><use x="82.9072" y="-35" width="12" height="12" class="icon icon-ERROR" href="#refinery-D5mYxKifz-hFmWmmvYTA9-icon-ERROR"/>
95<g><text text-anchor="start" x="98.91" y="-9.2" font-size="12.00" class="label label-TRUE">File</text>
96</g><g><text text-anchor="start" x="98.59" y="-25.2" font-size="12.00" class="label label-ERROR">invalidContainer</text>
97</g>
98<polyline points="76.91,-41 195.91,-41" class="node-outline"/>
99
100<rect fill="none" x="76.91" y="-64.4" width="119" height="64.4" rx="12" ry="12" class="node-outline"/>
101
102<clipPath id="refinery-D5mYxKifz-hFmWmmvYTA9-clip-4"><rect stroke="none" x="76.91" y="-64.4" width="119" height="64.4" rx="12" ry="12" class="node-bg"/></clipPath></g><g class="edge edge-UNKNOWN">
103
104<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M85.41,-301.27C85.41,-293.78 85.41,-285.25 85.41,-276.82" class="edge-line"/>
105<polygon stroke-width="2" points="88.47,-276.89 85.41,-268.14 82.34,-276.89 88.47,-276.89" class="edge-line edge-arrow"/>
106<text text-anchor="start" x="63.08" y="-287.69" font-weight="bold" font-size="10.50">root</text>
107</g>
108<g class="edge edge-UNKNOWN">
109
110<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M113.4,-250.35C123.46,-250.72 131.66,-244.94 131.66,-233 131.66,-226.1 128.92,-221.26 124.66,-218.47" class="edge-line"/>
111<polygon stroke-width="2" points="125.57,-215.54 116.34,-216.39 124.09,-221.48 125.57,-215.54" class="edge-line edge-arrow"/>
112<text text-anchor="start" x="113.64" y="-254.5" font-weight="bold" font-size="10.50">element</text>
113</g>
114<!-- n4&#45;&gt;n4 -->
115<g class="edge edge-UNKNOWN">
116
117<path fill="none" stroke-width="2" stroke-dasharray="5,2" d="M106.08,-190.49C108.65,-185.33 111.28,-180.05 113.85,-174.88" class="edge-line"/>
118<polygon stroke-width="2" points="103.42,-188.96 102.26,-198.16 108.9,-191.69 103.42,-188.96" class="edge-line edge-arrow"/>
119<polygon stroke-width="2" points="116.5,-176.44 117.65,-167.24 111.01,-173.71 116.5,-176.44" class="edge-line edge-arrow"/>
120<text text-anchor="start" x="66.38" y="-186.84" font-weight="bold" font-size="10.50">element</text>
121</g>
122
123<!-- n3&#45;&gt;n4 -->
124<g class="edge edge-ERROR">
125
126<path fill="none" stroke-width="2" d="M135.04,-100.47C135.2,-92.58 135.38,-83.98 135.54,-75.64" class="edge-line"/>
127<polygon stroke-width="2" points="138.6,-75.97 135.72,-67.16 132.48,-75.84 138.6,-75.97" class="edge-line edge-arrow"/>
128<text text-anchor="start" x="91.82" y="-86.47" font-weight="bold" font-size="10.50">element</text>
129</g>
130</g>
131</svg>
diff --git a/subprojects/docs/src/learn/tutorials/file-system/fig4.svg.license b/subprojects/docs/src/learn/tutorials/file-system/fig4.svg.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/src/learn/tutorials/file-system/fig4.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/src/learn/tutorials/file-system/index.md b/subprojects/docs/src/learn/tutorials/file-system/index.md
new file mode 100644
index 00000000..365d0fba
--- /dev/null
+++ b/subprojects/docs/src/learn/tutorials/file-system/index.md
@@ -0,0 +1,209 @@
1---
2SPDX-FileCopyrightText: 2023-2024 The Refinery Authors
3SPDX-License-Identifier: EPL-2.0
4description: Introduction to classes, references, and error predicates
5sidebar_position: 0
6sidebar_label: File system
7---
8
9# File system tutorial
10
11The goal of this tutorial is to give a brief overview of the partial modeling and model generation features of the Refinery framework. The running example will be the modeling of files, directories, and repositories.
12
13## Partial models
14
15### Types and relations
16
17- First, let us introduce some basic types: `Dir`, `File`, and `FileSystem`, along with the relations between them: `element` and `root`. There is a `scope` expression at the end, which we will ignore for now.
18
19```refinery
20class FileSystem {
21 contains File[1] root
22}
23
24class File.
25
26class Dir extends File {
27 contains File[] element
28}
29
30scope node = 10.
31```
32
33import Link from '@docusaurus/Link';
34
35<p>
36 <Link
37 href="https://refinery.services/#/1/KLUv_SDT_QMAQkcXGnBL2-ikxOa10ZNeN1bwnxijfsojpwHQAxAE5pzBk5uCd8F5EjAGJrUNQBWIbdRU7tkRB-VsG_aVuMlSEWzzTShXE8h-eBHzK_cK11NoD9P_2_GFrS61RRmuipYUCwA046ljtvEqgDAGQyDQwsIqKACEt2LiANXAaUxBAQ=="
38 className="button button--lg button--primary button--play"
39 >Try in Refinery</Link>
40</p>
41
42- Notice that the syntax is essentially identical to [Xcore](https://wiki.eclipse.org/Xcore).
43- Review the partial model visualization. You should get something like this:
44
45import Fig1 from './fig1.svg';
46
47<Fig1 title="Initial model" />
48
49- Add some statements about a partial model:
50
51```refinery
52class FileSystem {
53 contains File[1] root
54}
55
56class File.
57
58class Dir extends File {
59 contains File[] element
60}
61
62Dir(resources).
63element(resources, img).
64File(img).
65
66scope node = 10.
67```
68
69import Fig2 from './fig2.svg';
70
71<Fig2 title="Partial model extended with new facts" />
72
73### Partial models
74
75- Notice that the instance model elements are coexisting with ```<type>::new``` nodes representing the prototypes of newly created objects.
76
77- Check the disabled `equals` and `exist` predicates. check the visual annotation of those predicates in the visualization (dashed line, shadow).
78
79import Fig3 from './fig3.svg';
80
81<Fig3 title="Object existence and equality" />
82
83### Information merging
84
85- For the object `img`, we didn't specify if it is a directory or not. Therefore, it will typically be a folder.
86
87- If we want to state that img is not a directory, we need to a negative statement:
88
89```refinery
90!Dir(img).
91```
92
93- Statements are merged with respect to the refinement relation of 4-valued logic.
94
95- If we add, a statement both negatively and positively, it will create an inconsistency:
96
97```refinery
98element(resources, img).
99!element(resources, img).
100```
101
102- Inconsistent models parts in a partial model typically make the problem trivially unsatisfiable.
103
104import Fig4 from './fig4.svg';
105
106<Fig4 title="Inconsistent partial model" />
107
108- However, the model can be saved if the inconsistent part may not exist...
109
110```refinery
111!File(File::new).
112```
113
114### Default values
115
116- A large amount of statements can be expressed by using `*`.
117- The `default` keyword defines lower priority statements that need to be considered unless other statement specifies otherwise. No information merging is happening.
118
119## Constraints
120
121Let's extend the metamodel with a new class `SymLink`:
122
123```refinery
124class FileSystem {
125 contains File[1] root
126}
127
128class File.
129
130class Dir extends File {
131 contains File[0..10] element
132}
133
134class SymLink extends File {
135 File[1] target
136}
137
138Dir(resources).
139element(resources, img).
140element(resources, link).
141target(link, img).
142
143scope node = 10.
144```
145
146- Add some simple constraints:
147
148```refinery
149% Simple constraints:
150pred hasReference(f) <-> target(_, f).
151error pred selfLoop(s) <-> target(s, s).
152target(x,x).
153```
154
155- There are no empty directories in a git repository, so let's forbid them!
156
157```refinery
158error pred emptyDir(d) <-> Dir(d), !element(d,_).
159```
160
161- End result:
162
163```refinery
164class FileSystem {
165 contains File[1] root
166}
167
168class File.
169
170class Dir extends File {
171 contains File[0..10] element
172}
173
174class SymLink extends File {
175 File[1] target
176}
177
178Dir(resources).
179element(resources, img).
180!Dir(img).
181element(resources, link).
182target(link,img).
183
184% Simple constraints:
185pred hasReference(f) <-> target(_, f).
186error pred selfLoop(s) <-> target(s, s).
187
188% Object equality with ==:
189error pred emptyDir(d) <-> Dir(d), !element(d, _).
190pred importantFile(f) <-> target(l1, f), target(l2, f), l1 != l2.
191
192% Transitive closure, and
193pred containsFile(fs, file) <->
194 FileSystem(fs),
195 root(fs, file)
196;
197 FileSystem(fs),
198 root(fs, rootDir),
199 element+(rootDir, file).
200
201% Predicate reuse
202error conflictBetweenTwoFileSystem(fs1, fs2, l, t) <->
203 containsFile(fs1, l),
204 containsFile(fs2, t),
205 fs1 != fs2,
206 target(l, t).
207
208scope node = 40..50, FileSystem = 2, importantFile = 1..*.
209```
diff --git a/subprojects/docs/src/pages/index.module.css b/subprojects/docs/src/pages/index.module.css
new file mode 100644
index 00000000..367b78ed
--- /dev/null
+++ b/subprojects/docs/src/pages/index.module.css
@@ -0,0 +1,41 @@
1/*
2 * SPDX-FileCopyrightText: 2024 The Refinery Authors
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7.page {
8 margin-bottom: 2rem;
9}
10
11.buttons {
12 display: flex;
13 flex-direction: row;
14 flex-wrap: wrap;
15 gap: 1rem;
16}
17
18.section {
19 padding: 2rem 0;
20}
21
22@media (max-width: 576px) {
23 .hero, .section {
24 padding-top: 2rem;
25 padding-bottom: 2rem;
26 }
27
28 .button {
29 flex-grow: 1;
30 }
31}
32
33.section__title {
34 text-align: center;
35 margin-bottom: var(--ifm-leading);
36}
37
38.section--video {
39 padding: 4rem 0;
40 background: var(--ifm-background-surface-color);
41}
diff --git a/subprojects/docs/src/pages/index.tsx b/subprojects/docs/src/pages/index.tsx
new file mode 100644
index 00000000..cb0bfeb8
--- /dev/null
+++ b/subprojects/docs/src/pages/index.tsx
@@ -0,0 +1,243 @@
1/*
2 * SPDX-FileCopyrightText: 2024 The Refinery Authors
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7import Link from '@docusaurus/Link';
8import Layout from '@theme/Layout';
9import clsx from 'clsx';
10
11import styles from './index.module.css';
12
13import Features from '@site/src/components/Features';
14import UseCases from '@site/src/components/UseCases';
15import Video from '@site/src/components/Video';
16
17function Hero() {
18 return (
19 <header className={clsx('hero', 'hero--dark', styles['hero'])}>
20 <div className="container">
21 <h1 className="hero__title">Refinery</h1>
22 <p className="hero__subtitle">
23 An efficient graph solver for generating well-formed models
24 </p>
25 <div className={styles['buttons']}>
26 <Link
27 href="https://refinery.services/"
28 className={clsx(
29 'button',
30 'button--lg',
31 'button--primary',
32 styles['button'],
33 )}
34 >
35 Try online
36 </Link>
37 <Link
38 to="/learn/docker"
39 className={clsx(
40 'button',
41 'button--lg',
42 'button--secondary',
43 styles['button'],
44 )}
45 >
46 Try in Docker
47 </Link>
48 <Link
49 to="/learn/tutorials/file-system"
50 className={clsx(
51 'button',
52 'button--lg',
53 'button--secondary',
54 styles['button'],
55 )}
56 >
57 Tutorial
58 </Link>
59 </div>
60 </div>
61 </header>
62 );
63}
64
65function Publication({
66 doi,
67 pdf,
68 video,
69 children,
70}: {
71 doi?: string;
72 pdf?: string;
73 video?: string;
74 children?: React.ReactNode;
75}) {
76 return (
77 <li>
78 {children}
79 {doi && (
80 <>
81 {' '}
82 [<Link href={`https://doi.org/${doi}`}>doi</Link>]
83 </>
84 )}
85 {pdf && (
86 <>
87 {' '}
88 [<Link href={pdf}>pdf</Link>]
89 </>
90 )}
91 {video && (
92 <>
93 {' '}
94 [<Link href={video}>video</Link>]
95 </>
96 )}
97 </li>
98 );
99}
100
101Publication.defaultProps = {
102 doi: undefined,
103 pdf: undefined,
104 video: undefined,
105 children: undefined,
106};
107
108function Publications() {
109 return (
110 <div className="row">
111 <div className="col col--6">
112 <h3>Tool demonstration</h3>
113 <ul>
114 <Publication
115 doi="10.1145/3639478.3640045"
116 pdf="pathname:///papers/icse24-demo.pdf"
117 video="https://youtu.be/Qy_3udNsWsM"
118 >
119 K. Marussy, A. Ficsor, O. Semeráth, D. Varró: &ldquo;Refinery: Graph
120 Solver as a Service&rdquo; <em>ICSE 2024 Demonstrations</em>
121 </Publication>
122 </ul>
123 <h3>Partial model specification language</h3>
124 <ul>
125 <Publication
126 doi="10.5381/jot.2020.19.3.a12"
127 pdf="https://www.jot.fm/issues/issue_2020_03/article12.pdf"
128 video="https://www.youtube.com/watch?v=ggTbv_s5t2A"
129 >
130 K. Marussy, O. Semeráth, A. Babikian, D. Varró:{' '}
131 <em>
132 A Specification Language for Consistent Model Generation based on
133 Partial Models.
134 </em>{' '}
135 J. Object Technol. <b>19</b>(3): 3:1-22 (2020)
136 </Publication>
137 </ul>
138 <h3>Diverse and realistic graph generation</h3>
139 <ul>
140 <Publication
141 doi="10.1007/s10009-019-00530-6"
142 pdf="https://link.springer.com/content/pdf/10.1007/s10009-019-00530-6.pdf?pdf=button"
143 >
144 O. Semeráth, R. Farkas, G. Bergmann, D. Varró:{' '}
145 <em>
146 Diversity of graph models and graph generators in mutation
147 testing.
148 </em>{' '}
149 Int. J. Softw. Tools Technol. Transf. <b>22</b>(1): 57-78 (2020)
150 </Publication>
151 <Publication
152 doi="10.1007/s10270-021-00884-z"
153 pdf="https://link.springer.com/content/pdf/10.1007/s10270-021-00884-z.pdf?pdf=button"
154 >
155 O. Semeráth, A. Babikian, B. Chen, C. Li, K. Marussy, G. Szárnyas,
156 D. Varró:{' '}
157 <em>
158 Automated generation of consistent, diverse and structurally
159 realistic graph models.
160 </em>{' '}
161 Softw. Syst. Model. <b>20</b>(5): 1713-1734 (2021)
162 </Publication>
163 </ul>
164 </div>
165 <div className="col col--6">
166 <h3>Consistent graph generation techniques</h3>
167 <ul>
168 <Publication
169 doi="10.1145/3180155.3180186"
170 pdf="https://dl.acm.org/doi/pdf/10.1145/3180155.3180186"
171 >
172 O. Semeráth, A. Nagy, D. Varró: &ldquo;A graph solver for the
173 automated generation of consistent domain-specific models.&rdquo;{' '}
174 <em>ICSE 2018:</em> 969-980
175 </Publication>
176 <Publication
177 doi="10.1109/TSE.2020.3025732"
178 pdf="https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9201551"
179 >
180 K. Marussy, O. Semeráth, D. Varró:{' '}
181 <em>
182 Automated Generation of Consistent Graph Models With Multiplicity
183 Reasoning.
184 </em>{' '}
185 IEEE Trans. Softw. Eng. <b>48</b>(5): 1610-1629 (2022)
186 </Publication>
187 <Publication
188 doi="10.1007/s10270-021-00918-6"
189 pdf="https://link.springer.com/content/pdf/10.1007/s10270-021-00918-6.pdf?pdf=button"
190 >
191 A. Babikian, O. Semeráth, A. Li, K. Marussy, D. Varró:{' '}
192 <em>
193 Automated generation of consistent models using qualitative
194 abstractions and exploration strategies.
195 </em>{' '}
196 Softw. Syst. Model. <b>21</b>(5): 1763-1787 (2022)
197 </Publication>
198 </ul>
199 <h3>Correctness proofs</h3>
200 <ul>
201 <Publication
202 doi="10.1007/978-3-319-75396-6_16"
203 pdf="https://inf.mit.bme.hu/sites/default/files/publications/fmhe-model-generation.pdf"
204 >
205 D. Varró, O. Semeráth, G. Szárnyas, Á. Horváth: &ldquo;Towards the
206 Automated Generation of Consistent, Diverse, Scalable and Realistic
207 Graph Models.&rdquo;{' '}
208 <em>Graph Transformation, Specifications, and Nets</em> 2018:
209 285-312
210 </Publication>
211 </ul>
212 </div>
213 </div>
214 );
215}
216
217export default function Home() {
218 return (
219 <Layout>
220 <div className={styles['page']}>
221 <Hero />
222 <section className={styles['section']}>
223 <Features />
224 </section>
225 <section className={clsx(styles['section'], styles['section--video'])}>
226 <Video />
227 </section>
228 <section className={styles['section']}>
229 <div className="container">
230 <h2 className={styles['section__title']}>Explore use-cases</h2>
231 <UseCases />
232 </div>
233 </section>
234 <section className={styles['section']}>
235 <div className="container">
236 <h2 className={styles['section__title']}>Related publications</h2>
237 <Publications />
238 </div>
239 </section>
240 </div>
241 </Layout>
242 );
243}
diff --git a/subprojects/docs/src/pages/license.md b/subprojects/docs/src/pages/license.md
new file mode 100644
index 00000000..3ce07e47
--- /dev/null
+++ b/subprojects/docs/src/pages/license.md
@@ -0,0 +1,100 @@
1---
2SPDX-FileCopyrightText: 2017, Eclipse.org Foundation, Inc.
3SPDX-License-Identifier: LicenseRef-EPL-Steward
4title: License
5---
6
7# Eclipse Public License - v 2.0
8
9THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (“AGREEMENT”). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
10
11## 1. DEFINITIONS
12
13“Contribution” means:
14
15 * a) in the case of the initial Contributor, the initial content Distributed under this Agreement, and
16 * b) in the case of each subsequent Contributor:
17 * i) changes to the Program, and
18 * ii) additions to the Program;
19 where such changes and/or additions to the Program originate from and are Distributed by that particular Contributor. A Contribution “originates” from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include changes or additions to the Program that are not Modified Works.
20
21“Contributor” means any person or entity that Distributes the Program.
22
23“Licensed Patents” mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
24
25“Program” means the Contributions Distributed in accordance with this Agreement.
26
27“Recipient” means anyone who receives the Program under this Agreement or any Secondary License (as applicable), including Contributors.
28
29“Derivative Works” shall mean any work, whether in Source Code or other form, that is based on (or derived from) the Program and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship.
30
31“Modified Works” shall mean any work in Source Code or other form that results from an addition to, deletion from, or modification of the contents of the Program, including, for purposes of clarity any new file in Source Code form that contains any contents of the Program. Modified Works shall not include works that contain only declarations, interfaces, types, classes, structures, or files of the Program solely in each case in order to link to, bind by name, or subclass the Program or Modified Works thereof.
32
33“Distribute” means the acts of a) distributing or b) making available in any manner that enables the transfer of a copy.
34
35“Source Code” means the form of a Program preferred for making modifications, including but not limited to software source code, documentation source, and configuration files.
36
37“Secondary License” means either the GNU General Public License, Version 2.0, or any later versions of that license, including any exceptions or additional permissions as identified by the initial Contributor.
38
39## 2. GRANT OF RIGHTS
40
41 * a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, Distribute and sublicense the Contribution of such Contributor, if any, and such Derivative Works.
42 * b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in Source Code or other form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
43 * c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to Distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
44 * d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
45 * e) Notwithstanding the terms of any Secondary License, no Contributor makes additional grants to any Recipient (other than those set forth in this Agreement) as a result of such Recipient's receipt of the Program under the terms of a Secondary License (if permitted under the terms of Section 3).
46
47## 3. REQUIREMENTS
48
493.1 If a Contributor Distributes the Program in any form, then:
50
51 * a) the Program must also be made available as Source Code, in accordance with section 3.2, and the Contributor must accompany the Program with a statement that the Source Code for the Program is available under this Agreement, and informs Recipients how to obtain it in a reasonable manner on or through a medium customarily used for software exchange; and
52 * b) the Contributor may Distribute the Program under a license different than this Agreement, provided that such license:
53 * i) effectively disclaims on behalf of all other Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
54 * ii) effectively excludes on behalf of all other Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
55 * iii) does not attempt to limit or alter the recipients' rights in the Source Code under section 3.2; and
56 * iv) requires any subsequent distribution of the Program by any party to be under a license that satisfies the requirements of this section 3.
57
583.2 When the Program is Distributed as Source Code:
59
60 * a) it must be made available under this Agreement, or if the Program (i) is combined with other material in a separate file or files made available under a Secondary License, and (ii) the initial Contributor attached to the Source Code the notice described in Exhibit A of this Agreement, then the Program may be made available under the terms of such Secondary Licenses, and
61 * b) a copy of this Agreement must be included with each copy of the Program.
62
633.3 Contributors may not remove or alter any copyright, patent, trademark, attribution notices, disclaimers of warranty, or limitations of liability (‘notices’) contained within the Program from any copy of the Program which they Distribute, provided that Contributors may add their own appropriate notices.
64
65## 4. COMMERCIAL DISTRIBUTION
66
67Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor (“Commercial Contributor”) hereby agrees to defend and indemnify every other Contributor (“Indemnified Contributor”) against any losses, damages and costs (collectively “Losses”) arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
68
69For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
70
71## 5. NO WARRANTY
72
73EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
74
75## 6. DISCLAIMER OF LIABILITY
76
77EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
78
79## 7. GENERAL
80
81If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
82
83If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
84
85All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
86
87Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be Distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to Distribute the Program (including its Contributions) under the new version.
88
89Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. Nothing in this Agreement is intended to be enforceable by any entity that is not a Contributor or Recipient. No third-party beneficiary rights are created under this Agreement.
90
91## Exhibit A – Form of Secondary Licenses Notice
92
93“This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: \{name license(s), version(s), and exceptions or additional permissions here\}.”
94
95> Simply including a copy of this Agreement, including this Exhibit A is not sufficient to license the Source Code under Secondary Licenses.
96>
97> If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice.
98>
99> You may add additional accurate notices of copyright ownership.
100
diff --git a/subprojects/docs/src/plugins/loadersPlugin.ts b/subprojects/docs/src/plugins/loadersPlugin.ts
new file mode 100644
index 00000000..8b52667c
--- /dev/null
+++ b/subprojects/docs/src/plugins/loadersPlugin.ts
@@ -0,0 +1,117 @@
1/*
2 * Copyright (c) 2016, Jeremy Stucki
3 * Copyright (c) Facebook, Inc. and its affiliates.
4 * Copyright (c) 2024 The Refinery Authors
5 *
6 * SPDX-License-Identifier: BSD-3-Clause AND MIT AND EPL-2.0
7 */
8
9import type { Plugin } from '@docusaurus/types';
10// @ts-expect-error No typings available for `responsive-loader`.
11import sharp from 'responsive-loader/sharp';
12
13export default function loadersPlugin(): Plugin {
14 return {
15 name: 'refinery-loaders-plugin',
16 configureWebpack(config, isServer) {
17 let svgoDisabled = false;
18 const rules = [...(config.module?.rules ?? [])];
19 rules.forEach((rule) => {
20 // Compare with
21 // https://github.com/facebook/docusaurus/blob/73016d4936164ba38d4b86ec2aa8c168b5904a21/packages/docusaurus-utils/src/webpackUtils.ts#L128-L166
22 if (
23 typeof rule !== 'object' ||
24 rule === null ||
25 !('test' in rule) ||
26 !(rule.test instanceof RegExp) ||
27 !rule.test.test('.svg') ||
28 !('oneOf' in rule)
29 ) {
30 return;
31 }
32 const {
33 oneOf: [svgLoader],
34 } = rule;
35 if (
36 typeof svgLoader !== 'object' ||
37 svgLoader === null ||
38 !('use' in svgLoader) ||
39 typeof svgLoader.use !== 'object' ||
40 svgLoader.use === null ||
41 !(0 in svgLoader.use)
42 ) {
43 return;
44 }
45 // Skip SVGR when importing SVG files with ?url.
46 svgLoader.resourceQuery = { not: /[?&]url$/ };
47 const {
48 use: [loader],
49 } = svgLoader;
50 if (
51 typeof loader !== 'object' ||
52 loader === null ||
53 !('options' in loader)
54 ) {
55 return;
56 }
57
58 loader.options = {
59 ...(typeof loader.options === 'object' ? loader.options : {}),
60 svgo: true,
61 svgoConfig: {
62 plugins: [
63 {
64 name: 'preset-default',
65 params: {
66 overrides: {
67 removeTitle: false,
68 removeViewBox: false,
69 // Disable SVGO, because it interferes styling figures exported from Refinery with CSS.
70 inlineStyles: false,
71 cleanupIds: false,
72 },
73 },
74 },
75 ],
76 },
77 };
78 svgoDisabled = true;
79 });
80 if (!svgoDisabled) {
81 throw new Error('Failed to disable SVGO.');
82 }
83 return {
84 mergeStrategy: {
85 'module.rules': 'replace',
86 },
87 module: {
88 rules: [
89 // Configuration based on
90 // https://github.com/dazuaz/responsive-loader/blob/ef2c806fcd36f06f6be8a0b97e09f40c3d86d3ac/README.md
91 {
92 test: /\.(png|jpe?g)$/,
93 resourceQuery: /[?&]rl$/,
94 use: [
95 {
96 loader: 'responsive-loader',
97 options: {
98 /* eslint-disable-next-line @typescript-eslint/no-unsafe-assignment --
99 * No typings available for `responsive-loader`.
100 */
101 adapter: sharp,
102 format: 'webp',
103 // See
104 // https://github.com/facebook/docusaurus/blob/c745021b01a8b88d34e1d772278d7171ad8acdf5/packages/docusaurus-plugin-ideal-image/src/index.ts#L62-L66
105 emitFile: !isServer,
106 name: 'assets/images/[name].[hash:hex:7].[width].[ext]',
107 },
108 },
109 ],
110 },
111 ...rules,
112 ],
113 },
114 };
115 },
116 };
117}
diff --git a/subprojects/docs/src/plugins/remarkPosix2Windows.ts b/subprojects/docs/src/plugins/remarkPosix2Windows.ts
new file mode 100644
index 00000000..784802f2
--- /dev/null
+++ b/subprojects/docs/src/plugins/remarkPosix2Windows.ts
@@ -0,0 +1,169 @@
1/*
2 * Copyright (c) Facebook, Inc. and its affiliates.
3 * Copyright (c) 2024 The Refinery Authors
4 *
5 * SPDX-License-Identifier: EPL-2.0
6 *
7 * This file is based on
8 * https://github.com/facebook/docusaurus/blob/e4ecffe41878728acff55a8370bd7440706c02f7/packages/docusaurus-remark-plugin-npm2yarn/src/index.ts
9 * but was changed to conver shell commands to POSIX to Windows syntax.
10 */
11
12import type { Code, Literal } from 'mdast';
13import type { MdxjsEsm, MdxJsxFlowElement } from 'mdast-util-mdx';
14import type { Transformer } from 'unified';
15import type { Node, Parent } from 'unist';
16import { visit } from 'unist-util-visit';
17
18function isLiteral(node: Node): node is Literal {
19 return node.type === 'mdxjsEsm';
20}
21
22function isTabImport(node: Node): boolean {
23 return isLiteral(node) && node.value.includes('@theme/Tabs');
24}
25
26function isParent(node: Node): node is Parent {
27 return 'children' in node && Array.isArray(node.children);
28}
29
30function isCode(node: Node): node is Code {
31 return node.type === 'code';
32}
33
34function isPosix2Windows(node: Node): node is Code {
35 return isCode(node) && node.meta === 'posix2windows';
36}
37
38function createTabItem(
39 code: string,
40 node: Code,
41 value: string,
42 label: string,
43): MdxJsxFlowElement {
44 return {
45 type: 'mdxJsxFlowElement',
46 name: 'TabItem',
47 attributes: [
48 {
49 type: 'mdxJsxAttribute',
50 name: 'value',
51 value,
52 },
53 {
54 type: 'mdxJsxAttribute',
55 name: 'label',
56 value: label,
57 },
58 ],
59 children: [
60 {
61 type: node.type,
62 lang: node.lang,
63 value: code,
64 },
65 ],
66 };
67}
68
69function transformNode(node: Code): MdxJsxFlowElement[] {
70 const posixCode = node.value;
71 const windowsCode = posixCode.replaceAll(
72 /(^\w*)\.\//gm,
73 (_substring, prefix: string) => `${prefix}.\\`,
74 );
75 return [
76 {
77 type: 'mdxJsxFlowElement',
78 name: 'Tabs',
79 attributes: [
80 {
81 type: 'mdxJsxAttribute',
82 name: 'groupId',
83 value: 'posix2windows',
84 },
85 ],
86 children: [
87 createTabItem(posixCode, node, 'posix', 'Linux or macOS'),
88 createTabItem(windowsCode, node, 'windows', 'Windows (PowerShell)'),
89 ],
90 },
91 ];
92}
93
94function createImportNode(): MdxjsEsm {
95 return {
96 type: 'mdxjsEsm',
97 value:
98 "import Tabs from '@theme/Tabs'\nimport TabItem from '@theme/TabItem'",
99 data: {
100 estree: {
101 type: 'Program',
102 body: [
103 {
104 type: 'ImportDeclaration',
105 specifiers: [
106 {
107 type: 'ImportDefaultSpecifier',
108 local: { type: 'Identifier', name: 'Tabs' },
109 },
110 ],
111 source: {
112 type: 'Literal',
113 value: '@theme/Tabs',
114 raw: "'@theme/Tabs'",
115 },
116 },
117 {
118 type: 'ImportDeclaration',
119 specifiers: [
120 {
121 type: 'ImportDefaultSpecifier',
122 local: { type: 'Identifier', name: 'TabItem' },
123 },
124 ],
125 source: {
126 type: 'Literal',
127 value: '@theme/TabItem',
128 raw: "'@theme/TabItem'",
129 },
130 },
131 ],
132 sourceType: 'module',
133 },
134 },
135 };
136}
137
138export default function remarkPosix2Windows(): Transformer {
139 return (root) => {
140 let transformed = false;
141 let alreadyImported = false;
142 visit(root, (node) => {
143 if (isTabImport(node)) {
144 alreadyImported = true;
145 }
146 if (isParent(node)) {
147 let index = 0;
148 while (index < node.children.length) {
149 const child = node.children[index];
150 if (child !== undefined && isPosix2Windows(child)) {
151 const result = transformNode(child);
152 node.children.splice(index, 1, ...result);
153 index += result.length;
154 transformed = true;
155 } else {
156 index += 1;
157 }
158 }
159 }
160 });
161 if (transformed && !alreadyImported) {
162 if (isParent(root)) {
163 root.children.unshift(createImportNode());
164 } else {
165 throw new Error("Cannot import '@theme/Tabs'");
166 }
167 }
168 };
169}
diff --git a/subprojects/docs/src/plugins/swcMinifyPlugin.ts b/subprojects/docs/src/plugins/swcMinifyPlugin.ts
new file mode 100644
index 00000000..ecac654b
--- /dev/null
+++ b/subprojects/docs/src/plugins/swcMinifyPlugin.ts
@@ -0,0 +1,41 @@
1/*
2 * SPDX-FileCopyrightText: 2024 The Refinery Authors
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7import type { Plugin } from '@docusaurus/types';
8import TerserPlugin from 'terser-webpack-plugin';
9
10/**
11 * A Docusarus plugin that replaces the built-in Javascript minifier with swc.
12 *
13 * See
14 * https://github.com/facebook/docusaurus/issues/4765#issuecomment-1679863984
15 * but we use swc instead of esbuild.
16 *
17 * @returns The Docusarus plugin.
18 */
19export default function swcMinifyPlugin(): Plugin {
20 return {
21 name: 'refinery-swc-minify-plugin',
22 configureWebpack: (config) => ({
23 mergeStrategy: {
24 'optimization.minimizer': 'replace',
25 },
26 optimization: {
27 minimizer:
28 config.optimization?.minimizer?.map((plugin) => {
29 // `instanceof` seems to be broken, because a different version of
30 // `TerserPlguin` is coming from Docusaurus than the one we import.
31 if (plugin?.constructor.name === TerserPlugin.name) {
32 return new TerserPlugin({
33 minify: TerserPlugin.swcMinify,
34 });
35 }
36 return plugin;
37 }) ?? [],
38 },
39 }),
40 };
41}
diff --git a/subprojects/docs/src/types.d.ts b/subprojects/docs/src/types.d.ts
new file mode 100644
index 00000000..658763e7
--- /dev/null
+++ b/subprojects/docs/src/types.d.ts
@@ -0,0 +1,39 @@
1/*
2 * Copyright (c) 2016, Jeremy Stucki
3 * Copyright (c) 2024 The Refinery Authors
4 *
5 * SPDX-License-Identifier: BSD-3-Clause AND EPL-2.0
6 *
7 * Typings for `ResponsiveImageOutput` copied from
8 * https://github.com/dazuaz/responsive-loader/blob/ef2c806fcd36f06f6be8a0b97e09f40c3d86d3ac/README.md
9 */
10
11declare module '*?url' {
12 const url: string;
13 export default url;
14}
15
16declare module '*&url' {
17 const url: string;
18 export default url;
19}
20
21interface ResponsiveImageOutput {
22 src: string;
23 srcSet: string;
24 placeholder: string | undefined;
25 images: { path: string; width: number; height: number }[];
26 width: number;
27 height: number;
28 toString: () => string;
29}
30
31declare module '*?rl' {
32 const src: ResponsiveImageOutput;
33 export default src;
34}
35
36declare module '*&rl' {
37 const src: ResponsiveImageOutput;
38 export default src;
39}
diff --git a/subprojects/docs/static/.nojekyll b/subprojects/docs/static/.nojekyll
new file mode 100644
index 00000000..cfd3d41b
--- /dev/null
+++ b/subprojects/docs/static/.nojekyll
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors
2
3SPDX-License-Identifier: CC0-1.0
diff --git a/subprojects/docs/static/CNAME b/subprojects/docs/static/CNAME
new file mode 100644
index 00000000..4e43c2cd
--- /dev/null
+++ b/subprojects/docs/static/CNAME
@@ -0,0 +1 @@
refinery.tools \ No newline at end of file
diff --git a/subprojects/docs/static/CNAME.license b/subprojects/docs/static/CNAME.license
new file mode 100644
index 00000000..f1dad64a
--- /dev/null
+++ b/subprojects/docs/static/CNAME.license
@@ -0,0 +1,4 @@
1SPDX-FileCopyrightText: 2021 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: CC0-1.0
4
diff --git a/subprojects/docs/static/apple-touch-icon.png b/subprojects/docs/static/apple-touch-icon.png
new file mode 100644
index 00000000..de8549e7
--- /dev/null
+++ b/subprojects/docs/static/apple-touch-icon.png
Binary files differ
diff --git a/subprojects/docs/static/apple-touch-icon.png.license b/subprojects/docs/static/apple-touch-icon.png.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/docs/static/apple-touch-icon.png.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/static/favicon-96x96.png b/subprojects/docs/static/favicon-96x96.png
new file mode 100644
index 00000000..353fe18a
--- /dev/null
+++ b/subprojects/docs/static/favicon-96x96.png
Binary files differ
diff --git a/subprojects/docs/static/favicon-96x96.png.license b/subprojects/docs/static/favicon-96x96.png.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/docs/static/favicon-96x96.png.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/static/favicon.png b/subprojects/docs/static/favicon.png
new file mode 100644
index 00000000..18e67636
--- /dev/null
+++ b/subprojects/docs/static/favicon.png
Binary files differ
diff --git a/subprojects/docs/static/favicon.png.license b/subprojects/docs/static/favicon.png.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/docs/static/favicon.png.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/static/favicon.svg b/subprojects/docs/static/favicon.svg
new file mode 100644
index 00000000..b5d1d217
--- /dev/null
+++ b/subprojects/docs/static/favicon.svg
@@ -0,0 +1 @@
<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg"><style>@media(prefers-color-scheme:dark){#a{fill:#ebebff}#b{fill:#56b6c2}}</style><path d="M447.98 179.335c-139.95-9.583-301.272-50.91-384-147.336v46.117C98.45 129.623 209.442 178.137 294.243 199.1c-84.796 20.963-195.791 69.476-230.265 120.985v46.117c82.73-96.422 244.053-137.752 384.002-147.334z" fill="#35373e" id="a"/><path d="M447.98 296.729c-113.755 4.192-287.485 40.727-384 136.557v46.716c95.14-103.612 279.898-137.754 384-143.745z" fill="#038a99" id="b"/></svg>
diff --git a/subprojects/docs/static/favicon.svg.license b/subprojects/docs/static/favicon.svg.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/docs/static/favicon.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/static/icon-192x192.png b/subprojects/docs/static/icon-192x192.png
new file mode 100644
index 00000000..2417b8df
--- /dev/null
+++ b/subprojects/docs/static/icon-192x192.png
Binary files differ
diff --git a/subprojects/docs/static/icon-192x192.png.license b/subprojects/docs/static/icon-192x192.png.license
new file mode 100644
index 00000000..a73a3364
--- /dev/null
+++ b/subprojects/docs/static/icon-192x192.png.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/static/icon-512x512.png b/subprojects/docs/static/icon-512x512.png
new file mode 100644
index 00000000..22f553c6
--- /dev/null
+++ b/subprojects/docs/static/icon-512x512.png
Binary files differ
diff --git a/subprojects/docs/static/icon-512x512.png.license b/subprojects/docs/static/icon-512x512.png.license
new file mode 100644
index 00000000..a73a3364
--- /dev/null
+++ b/subprojects/docs/static/icon-512x512.png.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/static/icon-any.svg b/subprojects/docs/static/icon-any.svg
new file mode 100644
index 00000000..9b51b758
--- /dev/null
+++ b/subprojects/docs/static/icon-any.svg
@@ -0,0 +1 @@
<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h512v512H0z" fill="#282c34"/><path d="M387.985 218.608c-96.215-6.674-207.125-35.454-264-102.609v32.118c23.698 35.87 100.005 69.657 158.306 84.257-58.297 14.599-134.606 48.385-158.307 84.258v32.117c56.876-67.153 167.786-95.936 264-102.609zm0 81.752c-78.207 2.92-197.646 28.364-264 95.103v32.535c65.409-72.159 192.43-95.936 264-100.108z" fill="#181a1f"/><path d="M387.985 202.606c-96.215-6.674-207.125-35.455-264-102.609v32.117c23.698 35.871 100.005 69.658 158.306 84.258-58.297 14.599-134.606 48.384-158.307 84.257v32.117c56.876-67.152 167.786-95.935 264-102.608z" fill="#ebebff"/><path d="M387.985 284.362c-78.207 2.92-197.646 28.364-264 95.103v32.534c65.409-72.158 192.43-95.936 264-100.108z" fill="#56b6c2"/></svg>
diff --git a/subprojects/docs/static/icon-any.svg.license b/subprojects/docs/static/icon-any.svg.license
new file mode 100644
index 00000000..a73a3364
--- /dev/null
+++ b/subprojects/docs/static/icon-any.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/static/logo-dark.svg b/subprojects/docs/static/logo-dark.svg
new file mode 100644
index 00000000..8f9af60d
--- /dev/null
+++ b/subprojects/docs/static/logo-dark.svg
@@ -0,0 +1 @@
<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg"><path d="M447.98 179.335c-139.95-9.583-301.272-50.91-384-147.336v46.117C98.45 129.623 209.442 178.137 294.243 199.1c-84.796 20.963-195.791 69.476-230.265 120.985v46.117c82.73-96.422 244.053-137.752 384.002-147.334z" fill="#ebebff" id="a"/><path d="M447.98 296.729c-113.755 4.192-287.485 40.727-384 136.557v46.716c95.14-103.612 279.898-137.754 384-143.745z" fill="#56b6c2" id="b"/></svg>
diff --git a/subprojects/docs/static/logo-dark.svg.license b/subprojects/docs/static/logo-dark.svg.license
new file mode 100644
index 00000000..a73a3364
--- /dev/null
+++ b/subprojects/docs/static/logo-dark.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/static/logo.svg b/subprojects/docs/static/logo.svg
new file mode 100644
index 00000000..43d302e3
--- /dev/null
+++ b/subprojects/docs/static/logo.svg
@@ -0,0 +1 @@
<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg"><path d="M447.98 179.335c-139.95-9.583-301.272-50.91-384-147.336v46.117C98.45 129.623 209.442 178.137 294.243 199.1c-84.796 20.963-195.791 69.476-230.265 120.985v46.117c82.73-96.422 244.053-137.752 384.002-147.334z" fill="#35373e" id="a"/><path d="M447.98 296.729c-113.755 4.192-287.485 40.727-384 136.557v46.716c95.14-103.612 279.898-137.754 384-143.745z" fill="#038a99" id="b"/></svg>
diff --git a/subprojects/docs/static/logo.svg.license b/subprojects/docs/static/logo.svg.license
new file mode 100644
index 00000000..a73a3364
--- /dev/null
+++ b/subprojects/docs/static/logo.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/static/manifest.webmanifest b/subprojects/docs/static/manifest.webmanifest
new file mode 100644
index 00000000..52e608a3
--- /dev/null
+++ b/subprojects/docs/static/manifest.webmanifest
@@ -0,0 +1,35 @@
1{
2 "name": "Refinery Documentation",
3 "short_name": "Refinery Docs",
4 "description": "An efficient graph solver for generating well-formed models",
5 "theme_color": "#f5f5f5",
6 "start_url": ".",
7 "display": "standalone",
8 "background_color": "#282c34",
9 "icons": [
10 {
11 "src": "icon-192x192.png",
12 "sizes": "192x192",
13 "type": "image/png",
14 "purpose": "any maskable"
15 },
16 {
17 "src": "icon-512x512.png",
18 "sizes": "512x512",
19 "type": "image/png",
20 "purpose": "any maskable"
21 },
22 {
23 "src": "icon-any.svg",
24 "sizes": "any",
25 "type": "image/svg+xml",
26 "purpose": "any maskable"
27 },
28 {
29 "src": "mask-icon.svg",
30 "sizes": "any",
31 "type": "image/svg+xml",
32 "purpose": "monochrome"
33 }
34 ]
35}
diff --git a/subprojects/docs/static/manifest.webmanifest.license b/subprojects/docs/static/manifest.webmanifest.license
new file mode 100644
index 00000000..b80566a0
--- /dev/null
+++ b/subprojects/docs/static/manifest.webmanifest.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/static/mask-icon.svg b/subprojects/docs/static/mask-icon.svg
new file mode 100644
index 00000000..86052c6e
--- /dev/null
+++ b/subprojects/docs/static/mask-icon.svg
@@ -0,0 +1 @@
<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg"><path d="M64 32v46.117c34.47 51.508 145.46 100.02 230.26 120.98C209.463 220.06 98.47 268.573 64 320.077v46.117c82.729-96.428 244.05-137.75 384-147.34v-39.531c-139.95-9.583-301.27-50.908-384-147.34zm384 264.73c-113.75 4.192-287.48 40.728-384 136.56v46.717c95.138-103.61 279.9-137.75 384-143.74v-39.529z"/></svg>
diff --git a/subprojects/docs/static/mask-icon.svg.license b/subprojects/docs/static/mask-icon.svg.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/docs/static/mask-icon.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/static/papers/icse24-demo.pdf b/subprojects/docs/static/papers/icse24-demo.pdf
new file mode 100644
index 00000000..7b092e85
--- /dev/null
+++ b/subprojects/docs/static/papers/icse24-demo.pdf
Binary files differ
diff --git a/subprojects/docs/static/papers/icse24-demo.pdf.license b/subprojects/docs/static/papers/icse24-demo.pdf.license
new file mode 100644
index 00000000..93208f90
--- /dev/null
+++ b/subprojects/docs/static/papers/icse24-demo.pdf.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2024 Kristóf Marussy, Attila Ficsor, Oszkár Semeráth, Dániel Varró
2
3SPDX-License-Identifier: CC-BY-4.0
diff --git a/subprojects/docs/static/robots.txt b/subprojects/docs/static/robots.txt
new file mode 100644
index 00000000..1cf41da7
--- /dev/null
+++ b/subprojects/docs/static/robots.txt
@@ -0,0 +1,8 @@
1# SPDX-FileCopyrightText: 2024 The Refinery Authors
2#
3# SPDX-License-Identifier: CC0-1.0
4
5Sitemap: https://refinery.tools/sitemap.xml
6
7User-agent: *
8Allow: /
diff --git a/subprojects/docs/static/screenshot.png b/subprojects/docs/static/screenshot.png
new file mode 100644
index 00000000..5dfd1241
--- /dev/null
+++ b/subprojects/docs/static/screenshot.png
Binary files differ
diff --git a/subprojects/docs/static/screenshot.png.license b/subprojects/docs/static/screenshot.png.license
new file mode 100644
index 00000000..ff75bc7c
--- /dev/null
+++ b/subprojects/docs/static/screenshot.png.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/docs/tsconfig.json b/subprojects/docs/tsconfig.json
new file mode 100644
index 00000000..5b32bb0e
--- /dev/null
+++ b/subprojects/docs/tsconfig.json
@@ -0,0 +1,34 @@
1/*
2 * Copyright (c) Facebook, Inc. and its affiliates.
3 * Copyright (c) 2024 The Refinery Authors <https://refinery.tools/>
4 *
5 * SPDX-License-Identifier: MIT AND EPL-2.0
6 *
7 * FIle based on
8 * https://github.com/facebook/docusaurus/blob/73016d4936164ba38d4b86ec2aa8c168b5904a21/packages/docusaurus-tsconfig/tsconfig.json
9 * but copied instead of adding an `extends` declaration to let SonarQube see its contents.
10 */
11{
12 "extends": "../../tsconfig.base.json",
13 "compilerOptions": {
14 "jsx": "preserve",
15 "module": "esnext",
16 "moduleResolution": "bundler",
17 "lib": ["DOM", "DOM.Iterable", "ES2022"],
18 "types": [
19 "node",
20 "@docusaurus/module-type-aliases",
21 "@docusaurus/theme-classic"
22 ],
23 "baseUrl": ".",
24 "paths": {
25 "@site/*": ["./*"]
26 }
27 },
28 "include": ["."],
29 "exclude": [
30 ".docusaurus",
31 ".yarn",
32 "build"
33 ]
34}
diff --git a/subprojects/frontend/.gitignore b/subprojects/frontend/.gitignore
new file mode 100644
index 00000000..52a177c5
--- /dev/null
+++ b/subprojects/frontend/.gitignore
@@ -0,0 +1,6 @@
1# SPDX-FileCopyrightText: 2021-2023 The Refinery Authors
2#
3# SPDX-License-Identifier: CC0-1.0
4
5dev-dist/
6*.typegen.ts
diff --git a/subprojects/frontend/build.gradle.kts b/subprojects/frontend/build.gradle.kts
index ac2c1817..10a138b1 100644
--- a/subprojects/frontend/build.gradle.kts
+++ b/subprojects/frontend/build.gradle.kts
@@ -1,5 +1,5 @@
1/* 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/> 2 * SPDX-FileCopyrightText: 2021-2024 The Refinery Authors <https://refinery.tools/>
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
@@ -25,40 +25,34 @@ val productionAssets: Configuration by configurations.creating {
25 isCanBeResolved = false 25 isCanBeResolved = false
26} 26}
27 27
28val sourcesWithoutTypes = fileTree("src") { 28val sourcesWithoutTypes: FileCollection = fileTree("src") {
29 exclude("**/*.typegen.ts") 29 exclude("**/*.typegen.ts")
30} 30}
31 31
32val sourcesWithTypes: FileCollection = fileTree("src") + fileTree("types") 32val sourcesWithTypes: FileCollection = fileTree("src") + fileTree("types")
33 33
34val buildScripts: FileCollection = fileTree("config") + files( 34val installationState: FileCollection = files(
35 rootProject.file(".eslintrc.cjs"), 35 rootProject.file("yarn.lock"),
36 rootProject.file("prettier.config.cjs"), 36 rootProject.file("package.json"),
37 "vite.config.ts", 37 "package.json",
38) 38)
39 39
40val installationState = files( 40val assembleConfigFiles: FileCollection = installationState + files(
41 rootProject.file("yarn.lock"), 41 rootProject.file("tsconfig.base.json"),
42 rootProject.file("package.json"), 42 "tsconfig.json",
43 "package.json", 43 "tsconfig.node.json",
44) 44 "tsconfig.shared.json",
45 45 "vite.config.ts",
46val sharedConfigFiles: FileCollection = installationState + files( 46) + fileTree("config")
47 rootProject.file("tsconfig.base.json"),
48 "tsconfig.json",
49 "tsconfig.node.json",
50 "tsconfig.shared.json",
51)
52 47
53val assembleConfigFiles = sharedConfigFiles + file("vite.config.ts") + fileTree("config") { 48val assembleSources: FileCollection = sourcesWithTypes + fileTree("public") + files("index.html")
54 include("**/*.ts")
55}
56
57val assembleSources = sourcesWithTypes + fileTree("public") + file("index.html")
58 49
59val assembleFiles = assembleSources + assembleConfigFiles 50val assembleFiles: FileCollection = assembleSources + assembleConfigFiles
60 51
61val lintingFiles: FileCollection = sourcesWithTypes + buildScripts + sharedConfigFiles 52val lintingFiles: FileCollection = sourcesWithTypes + assembleConfigFiles + files(
53 rootProject.file(".eslintrc.cjs"),
54 rootProject.file("prettier.config.cjs"),
55)
62 56
63tasks { 57tasks {
64 val generateXStateTypes by registering(RunYarn::class) { 58 val generateXStateTypes by registering(RunYarn::class) {
@@ -112,16 +106,6 @@ tasks {
112 dependsOn(lintFrontend) 106 dependsOn(lintFrontend)
113 } 107 }
114 108
115 register<RunYarn>("serveFrontend") {
116 dependsOn(installFrontend)
117 dependsOn(generateXStateTypes)
118 inputs.files(assembleFiles)
119 outputs.dir(viteOutputDir.map { it.dir("development") })
120 script.set("run serve")
121 group = "run"
122 description = "Start a Vite dev server with hot module replacement."
123 }
124
125 clean { 109 clean {
126 delete("dev-dist") 110 delete("dev-dist")
127 delete(fileTree("src") { 111 delete(fileTree("src") {
diff --git a/subprojects/frontend/index.html b/subprojects/frontend/index.html
index 8992d538..e4271aad 100644
--- a/subprojects/frontend/index.html
+++ b/subprojects/frontend/index.html
@@ -14,7 +14,6 @@
14 <link rel="icon" href="/favicon.png" type="image/png" sizes="32x32"> 14 <link rel="icon" href="/favicon.png" type="image/png" sizes="32x32">
15 <link rel="icon" href="/favicon-96x96.png" type="image/png" sizes="96x96"> 15 <link rel="icon" href="/favicon-96x96.png" type="image/png" sizes="96x96">
16 <link rel="apple-touch-icon" href="/apple-touch-icon.png" type="image/png" sizes="180x180"> 16 <link rel="apple-touch-icon" href="/apple-touch-icon.png" type="image/png" sizes="180x180">
17 <link rel="mask-icon" href="/mask-icon.svg" type="image/svg+xml" color="#038a99">
18 <meta name="theme-color" media="(prefers-color-scheme:light)" content="#f5f5f5"> 17 <meta name="theme-color" media="(prefers-color-scheme:light)" content="#f5f5f5">
19 <meta name="theme-color" media="(prefers-color-scheme:dark)" content="#21252b"> 18 <meta name="theme-color" media="(prefers-color-scheme:dark)" content="#21252b">
20 <style> 19 <style>
diff --git a/subprojects/frontend/package.json b/subprojects/frontend/package.json
index b133e762..a499aeec 100644
--- a/subprojects/frontend/package.json
+++ b/subprojects/frontend/package.json
@@ -11,7 +11,7 @@
11 "private": true, 11 "private": true,
12 "scripts": { 12 "scripts": {
13 "build": "MODE=production vite build", 13 "build": "MODE=production vite build",
14 "serve": "MODE=development vite serve", 14 "dev": "MODE=development vite serve",
15 "typegen": "xstate typegen \"src/**/*.ts?(x)\"", 15 "typegen": "xstate typegen \"src/**/*.ts?(x)\"",
16 "typecheck": "yarn run g:tsc -p subprojects/frontend/tsconfig.shared.json && yarn run g:tsc -p subprojects/frontend/tsconfig.node.json && yarn run g:tsc -p subprojects/frontend/tsconfig.json", 16 "typecheck": "yarn run g:tsc -p subprojects/frontend/tsconfig.shared.json && yarn run g:tsc -p subprojects/frontend/tsconfig.node.json && yarn run g:tsc -p subprojects/frontend/tsconfig.json",
17 "lint": "yarn run g:lint subprojects/frontend", 17 "lint": "yarn run g:lint subprojects/frontend",
@@ -28,21 +28,21 @@
28 }, 28 },
29 "homepage": "https://refinery.tools", 29 "homepage": "https://refinery.tools",
30 "dependencies": { 30 "dependencies": {
31 "@codemirror/autocomplete": "^6.15.0", 31 "@codemirror/autocomplete": "^6.16.0",
32 "@codemirror/commands": "^6.3.3", 32 "@codemirror/commands": "^6.5.0",
33 "@codemirror/language": "^6.10.1", 33 "@codemirror/language": "^6.10.1",
34 "@codemirror/lint": "^6.5.0", 34 "@codemirror/lint": "^6.5.0",
35 "@codemirror/search": "^6.5.6", 35 "@codemirror/search": "^6.5.6",
36 "@codemirror/state": "^6.4.1", 36 "@codemirror/state": "^6.4.1",
37 "@codemirror/view": "^6.26.1", 37 "@codemirror/view": "^6.26.3",
38 "@emotion/cache": "^11.11.0", 38 "@emotion/cache": "^11.11.0",
39 "@emotion/react": "^11.11.4", 39 "@emotion/react": "^11.11.4",
40 "@emotion/serialize": "^1.1.4", 40 "@emotion/serialize": "^1.1.4",
41 "@emotion/styled": "^11.11.5", 41 "@emotion/styled": "^11.11.5",
42 "@emotion/utils": "^1.2.1", 42 "@emotion/utils": "^1.2.1",
43 "@fontsource-variable/jetbrains-mono": "^5.0.20", 43 "@fontsource-variable/jetbrains-mono": "^5.0.21",
44 "@fontsource-variable/open-sans": "^5.0.28", 44 "@fontsource-variable/open-sans": "^5.0.29",
45 "@fontsource/open-sans": "^5.0.27", 45 "@fontsource/open-sans": "^5.0.28",
46 "@hpcc-js/wasm": "^2.16.1", 46 "@hpcc-js/wasm": "^2.16.1",
47 "@lezer/common": "^1.2.1", 47 "@lezer/common": "^1.2.1",
48 "@lezer/highlight": "^1.2.0", 48 "@lezer/highlight": "^1.2.0",
@@ -51,7 +51,7 @@
51 "@mui/icons-material": "^5.15.15", 51 "@mui/icons-material": "^5.15.15",
52 "@mui/material": "^5.15.15", 52 "@mui/material": "^5.15.15",
53 "@mui/system": "^5.15.15", 53 "@mui/system": "^5.15.15",
54 "@mui/x-data-grid": "^7.1.1", 54 "@mui/x-data-grid": "^7.3.1",
55 "ansi-styles": "^6.2.1", 55 "ansi-styles": "^6.2.1",
56 "csstype": "^3.1.3", 56 "csstype": "^3.1.3",
57 "d3": "^7.9.0", 57 "d3": "^7.9.0",
@@ -67,14 +67,14 @@
67 "mobx": "^6.12.3", 67 "mobx": "^6.12.3",
68 "mobx-react-lite": "^4.0.7", 68 "mobx-react-lite": "^4.0.7",
69 "ms": "^2.1.3", 69 "ms": "^2.1.3",
70 "nanoid": "^5.0.6", 70 "nanoid": "^5.0.7",
71 "notistack": "^3.0.1", 71 "notistack": "^3.0.1",
72 "react": "^18.2.0", 72 "react": "^18.3.1",
73 "react-dom": "^18.2.0", 73 "react-dom": "^18.3.1",
74 "react-resize-detector": "^10.0.1", 74 "react-resize-detector": "^10.0.1",
75 "svg2pdf.js": "^2.2.3", 75 "svg2pdf.js": "^2.2.3",
76 "xstate": "^4.38.3", 76 "xstate": "^4.38.3",
77 "zod": "^3.22.4" 77 "zod": "^3.23.4"
78 }, 78 },
79 "devDependencies": { 79 "devDependencies": {
80 "@lezer/generator": "^1.7.0", 80 "@lezer/generator": "^1.7.0",
@@ -86,20 +86,20 @@
86 "@types/html-minifier-terser": "^7.0.2", 86 "@types/html-minifier-terser": "^7.0.2",
87 "@types/jspdf": "^2.0.0", 87 "@types/jspdf": "^2.0.0",
88 "@types/lodash-es": "^4.17.12", 88 "@types/lodash-es": "^4.17.12",
89 "@types/micromatch": "^4.0.6", 89 "@types/micromatch": "^4.0.7",
90 "@types/ms": "^0.7.34", 90 "@types/ms": "^0.7.34",
91 "@types/node": "^20.12.5", 91 "@types/node": "^20.12.7",
92 "@types/pnpapi": "^0.0.5", 92 "@types/pnpapi": "^0.0.5",
93 "@types/react": "^18.2.74", 93 "@types/react": "^18.3.0",
94 "@types/react-dom": "^18.2.24", 94 "@types/react-dom": "^18.3.0",
95 "@vitejs/plugin-react-swc": "^3.6.0", 95 "@vitejs/plugin-react-swc": "^3.6.0",
96 "@xstate/cli": "^0.5.17", 96 "@xstate/cli": "^0.5.17",
97 "html-minifier-terser": "^7.2.0", 97 "html-minifier-terser": "^7.2.0",
98 "micromatch": "^4.0.5", 98 "micromatch": "^4.0.5",
99 "pnpapi": "^0.0.0", 99 "pnpapi": "^0.0.0",
100 "typescript": "5.4.4", 100 "typescript": "5.4.5",
101 "vite": "^5.2.8", 101 "vite": "^5.2.10",
102 "vite-plugin-pwa": "^0.19.8", 102 "vite-plugin-pwa": "^0.19.8",
103 "workbox-window": "^7.0.0" 103 "workbox-window": "^7.1.0"
104 } 104 }
105} 105}
diff --git a/subprojects/frontend/src/ToggleDarkModeButton.tsx b/subprojects/frontend/src/ToggleDarkModeButton.tsx
index 7a835e61..58238cab 100644
--- a/subprojects/frontend/src/ToggleDarkModeButton.tsx
+++ b/subprojects/frontend/src/ToggleDarkModeButton.tsx
@@ -7,6 +7,7 @@
7import DarkModeIcon from '@mui/icons-material/DarkMode'; 7import DarkModeIcon from '@mui/icons-material/DarkMode';
8import LightModeIcon from '@mui/icons-material/LightMode'; 8import LightModeIcon from '@mui/icons-material/LightMode';
9import IconButton from '@mui/material/IconButton'; 9import IconButton from '@mui/material/IconButton';
10import Tooltip from '@mui/material/Tooltip';
10import { observer } from 'mobx-react-lite'; 11import { observer } from 'mobx-react-lite';
11 12
12import { useRootStore } from './RootStoreProvider'; 13import { useRootStore } from './RootStoreProvider';
@@ -16,12 +17,10 @@ export default observer(function ToggleDarkModeButton(): JSX.Element {
16 const { darkMode } = themeStore; 17 const { darkMode } = themeStore;
17 18
18 return ( 19 return (
19 <IconButton 20 <Tooltip title={darkMode ? 'Switch to light mode' : 'Switch to dark mode'}>
20 color="inherit" 21 <IconButton color="inherit" onClick={() => themeStore.toggleDarkMode()}>
21 onClick={() => themeStore.toggleDarkMode()} 22 {darkMode ? <LightModeIcon /> : <DarkModeIcon />}
22 aria-label={darkMode ? 'Switch to light mode' : 'Switch to dark mode'} 23 </IconButton>
23 > 24 </Tooltip>
24 {darkMode ? <LightModeIcon /> : <DarkModeIcon />}
25 </IconButton>
26 ); 25 );
27}); 26});
diff --git a/subprojects/frontend/src/TopBar.tsx b/subprojects/frontend/src/TopBar.tsx
index 6c9c4f7e..5c9bfc0a 100644
--- a/subprojects/frontend/src/TopBar.tsx
+++ b/subprojects/frontend/src/TopBar.tsx
@@ -4,11 +4,14 @@
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6 6
7import BookIcon from '@mui/icons-material/Book';
7import GitHubIcon from '@mui/icons-material/GitHub'; 8import GitHubIcon from '@mui/icons-material/GitHub';
9import HomeIcon from '@mui/icons-material/Home';
8import AppBar from '@mui/material/AppBar'; 10import AppBar from '@mui/material/AppBar';
9import IconButton from '@mui/material/IconButton'; 11import IconButton from '@mui/material/IconButton';
10import Stack from '@mui/material/Stack'; 12import Stack from '@mui/material/Stack';
11import Toolbar from '@mui/material/Toolbar'; 13import Toolbar from '@mui/material/Toolbar';
14import Tooltip from '@mui/material/Tooltip';
12import Typography from '@mui/material/Typography'; 15import Typography from '@mui/material/Typography';
13import { styled, useTheme } from '@mui/material/styles'; 16import { styled, useTheme } from '@mui/material/styles';
14import useMediaQuery from '@mui/material/useMediaQuery'; 17import useMediaQuery from '@mui/material/useMediaQuery';
@@ -134,7 +137,7 @@ export default observer(function TopBar(): JSX.Element {
134 py: 0.5, 137 py: 0.5,
135 }} 138 }}
136 > 139 >
137 <RefineryIcon size={24} /> 140 <RefineryIcon size={32} />
138 <Typography variant="h6" component="h1" pl={1}> 141 <Typography variant="h6" component="h1" pl={1}>
139 Refinery {import.meta.env.DEV && <DevModeBadge>Dev</DevModeBadge>} 142 Refinery {import.meta.env.DEV && <DevModeBadge>Dev</DevModeBadge>}
140 </Typography> 143 </Typography>
@@ -163,26 +166,41 @@ export default observer(function TopBar(): JSX.Element {
163 <PaneButtons themeStore={themeStore} /> 166 <PaneButtons themeStore={themeStore} />
164 </Stack> 167 </Stack>
165 )} 168 )}
166 <Stack 169 <Stack direction="row" marginLeft={1} gap={1} alignItems="center">
167 direction="row"
168 marginLeft={1}
169 marginRight={1}
170 gap={1}
171 alignItems="center"
172 >
173 <GenerateButton editorStore={editorStore} hideWarnings={!veryLarge} />
174 {large && ( 170 {large && (
175 <IconButton 171 <Stack direction="row" alignItems="center">
176 aria-label="GitHub" 172 <Tooltip title="Refinery home page">
177 href="https://github.com/graphs4value/refinery" 173 <IconButton
178 target="_blank" 174 href="https://refinery.tools/"
179 color="inherit" 175 target="_blank"
180 > 176 color="inherit"
181 <GitHubIcon /> 177 >
182 </IconButton> 178 <HomeIcon />
179 </IconButton>
180 </Tooltip>
181 <Tooltip title="Refinery documentation">
182 <IconButton
183 href="https://refinery.tools/learn/"
184 target="_blank"
185 color="inherit"
186 >
187 <BookIcon />
188 </IconButton>
189 </Tooltip>
190 <Tooltip title="Check us out at GitHub">
191 <IconButton
192 href="https://github.com/graphs4value/refinery"
193 target="_blank"
194 color="inherit"
195 >
196 <GitHubIcon />
197 </IconButton>
198 </Tooltip>
199 </Stack>
183 )} 200 )}
201 <GenerateButton editorStore={editorStore} hideWarnings={!veryLarge} />
202 <ToggleDarkModeButton />
184 </Stack> 203 </Stack>
185 <ToggleDarkModeButton />
186 </Toolbar> 204 </Toolbar>
187 </AppBar> 205 </AppBar>
188 ); 206 );
diff --git a/subprojects/frontend/src/editor/ConnectButton.tsx b/subprojects/frontend/src/editor/ConnectButton.tsx
index eed6fbc7..d08fbb4d 100644
--- a/subprojects/frontend/src/editor/ConnectButton.tsx
+++ b/subprojects/frontend/src/editor/ConnectButton.tsx
@@ -9,6 +9,7 @@ import CloudOffIcon from '@mui/icons-material/CloudOff';
9import SyncIcon from '@mui/icons-material/Sync'; 9import SyncIcon from '@mui/icons-material/Sync';
10import SyncProblemIcon from '@mui/icons-material/SyncProblem'; 10import SyncProblemIcon from '@mui/icons-material/SyncProblem';
11import IconButton from '@mui/material/IconButton'; 11import IconButton from '@mui/material/IconButton';
12import Tooltip from '@mui/material/Tooltip';
12import { keyframes, styled } from '@mui/material/styles'; 13import { keyframes, styled } from '@mui/material/styles';
13import { observer } from 'mobx-react-lite'; 14import { observer } from 'mobx-react-lite';
14 15
@@ -37,37 +38,51 @@ export default observer(function ConnectButton({
37 (editorStore.opening || editorStore.opened) 38 (editorStore.opening || editorStore.opened)
38 ) { 39 ) {
39 return ( 40 return (
40 <IconButton 41 <Tooltip
41 onClick={() => editorStore.disconnect()} 42 title={
42 aria-label="Disconnect" 43 editorStore.opening
43 color="inherit" 44 ? 'Connecting (click to cancel)'
45 : 'Connected (click to disconnect)'
46 }
44 > 47 >
45 {editorStore.opening ? ( 48 <IconButton
46 <AnimatedSyncIcon fontSize="small" /> 49 onClick={() => editorStore.disconnect()}
47 ) : ( 50 aria-label="Disconnect"
48 <CloudIcon fontSize="small" /> 51 color="inherit"
49 )} 52 >
50 </IconButton> 53 {editorStore.opening ? (
54 <AnimatedSyncIcon fontSize="small" />
55 ) : (
56 <CloudIcon fontSize="small" />
57 )}
58 </IconButton>
59 </Tooltip>
51 ); 60 );
52 } 61 }
53 62
63 let title: string;
54 let disconnectedIcon: JSX.Element; 64 let disconnectedIcon: JSX.Element;
55 if (editorStore === undefined) { 65 if (editorStore === undefined) {
66 title = 'Connecting';
56 disconnectedIcon = <SyncIcon fontSize="small" />; 67 disconnectedIcon = <SyncIcon fontSize="small" />;
57 } else if (editorStore.connectionErrors.length > 0) { 68 } else if (editorStore.connectionErrors.length > 0) {
69 title = 'Connection error (click to retry)';
58 disconnectedIcon = <SyncProblemIcon fontSize="small" />; 70 disconnectedIcon = <SyncProblemIcon fontSize="small" />;
59 } else { 71 } else {
72 title = 'Disconnected (click to connect)';
60 disconnectedIcon = <CloudOffIcon fontSize="small" />; 73 disconnectedIcon = <CloudOffIcon fontSize="small" />;
61 } 74 }
62 75
63 return ( 76 return (
64 <IconButton 77 <Tooltip title={title}>
65 disabled={editorStore === undefined} 78 <IconButton
66 onClick={() => editorStore?.connect()} 79 disabled={editorStore === undefined}
67 aria-label="Connect" 80 onClick={() => editorStore?.connect()}
68 color="inherit" 81 aria-label="Connect"
69 > 82 color="inherit"
70 {disconnectedIcon} 83 >
71 </IconButton> 84 {disconnectedIcon}
85 </IconButton>
86 </Tooltip>
72 ); 87 );
73}); 88});
diff --git a/subprojects/frontend/src/editor/EditorButtons.tsx b/subprojects/frontend/src/editor/EditorButtons.tsx
index 4afba607..50cd51dc 100644
--- a/subprojects/frontend/src/editor/EditorButtons.tsx
+++ b/subprojects/frontend/src/editor/EditorButtons.tsx
@@ -22,6 +22,7 @@ import IconButton from '@mui/material/IconButton';
22import Stack from '@mui/material/Stack'; 22import Stack from '@mui/material/Stack';
23import ToggleButton from '@mui/material/ToggleButton'; 23import ToggleButton from '@mui/material/ToggleButton';
24import ToggleButtonGroup from '@mui/material/ToggleButtonGroup'; 24import ToggleButtonGroup from '@mui/material/ToggleButtonGroup';
25import Tooltip from '@mui/material/Tooltip';
25import { observer } from 'mobx-react-lite'; 26import { observer } from 'mobx-react-lite';
26 27
27import ConnectButton from './ConnectButton'; 28import ConnectButton from './ConnectButton';
@@ -49,103 +50,113 @@ export default observer(function EditorButtons({
49}): JSX.Element { 50}): JSX.Element {
50 return ( 51 return (
51 <Stack direction="row" flexGrow={1}> 52 <Stack direction="row" flexGrow={1}>
52 <IconButton 53 <Tooltip title="Open">
53 disabled={editorStore === undefined}
54 onClick={() => editorStore?.openFile()}
55 aria-label="Open"
56 color="inherit"
57 >
58 <FileOpenIcon fontSize="small" />
59 </IconButton>
60 <IconButton
61 disabled={editorStore === undefined || !editorStore.unsavedChanges}
62 onClick={() => editorStore?.saveFile()}
63 aria-label="Save"
64 color="inherit"
65 >
66 <SaveIcon fontSize="small" />
67 </IconButton>
68 {'showSaveFilePicker' in window && (
69 <IconButton 54 <IconButton
70 disabled={editorStore === undefined} 55 disabled={editorStore === undefined}
71 onClick={() => editorStore?.saveFileAs()} 56 onClick={() => editorStore?.openFile()}
72 aria-label="Save as"
73 color="inherit" 57 color="inherit"
74 > 58 >
75 <SaveAsIcon fontSize="small" /> 59 <FileOpenIcon fontSize="small" />
76 </IconButton> 60 </IconButton>
77 )} 61 </Tooltip>
78 <IconButton 62 <Tooltip title="Save">
79 disabled={editorStore === undefined || !editorStore.canUndo} 63 <IconButton
80 onClick={() => editorStore?.undo()} 64 disabled={editorStore === undefined || !editorStore.unsavedChanges}
81 aria-label="Undo" 65 onClick={() => editorStore?.saveFile()}
82 color="inherit" 66 color="inherit"
83 sx={{ ml: 1 }}
84 >
85 <UndoIcon fontSize="small" />
86 </IconButton>
87 <IconButton
88 disabled={editorStore === undefined || !editorStore.canRedo}
89 onClick={() => editorStore?.redo()}
90 aria-label="Redo"
91 color="inherit"
92 >
93 <RedoIcon fontSize="small" />
94 </IconButton>
95 <ToggleButtonGroup size="small" className="rounded" sx={{ mx: 1 }}>
96 <ToggleButton
97 selected={editorStore?.showLineNumbers ?? false}
98 disabled={editorStore === undefined}
99 onClick={() => editorStore?.toggleLineNumbers()}
100 aria-label="Show line numbers"
101 value="show-line-numbers"
102 >
103 <FormatListNumberedIcon fontSize="small" />
104 </ToggleButton>
105 <ToggleButton
106 selected={editorStore?.colorIdentifiers ?? false}
107 disabled={editorStore === undefined}
108 onClick={() => editorStore?.toggleColorIdentifiers()}
109 aria-label="Color identifiers"
110 value="color-identifiers"
111 > 67 >
112 <LooksIcon fontSize="small" /> 68 <SaveIcon fontSize="small" />
113 </ToggleButton> 69 </IconButton>
114 <ToggleButton 70 </Tooltip>
115 selected={editorStore?.searchPanel?.state ?? false} 71 {'showSaveFilePicker' in window && (
116 disabled={editorStore === undefined} 72 <Tooltip title={`Save as\u2026`}>
117 onClick={() => editorStore?.searchPanel?.toggle()} 73 <IconButton
118 aria-label="Show find/replace" 74 disabled={editorStore === undefined}
119 {...(editorStore !== undefined && 75 onClick={() => editorStore?.saveFileAs()}
120 editorStore.searchPanel.state && { 76 color="inherit"
121 'aria-controls': editorStore.searchPanel.id, 77 >
122 })} 78 <SaveAsIcon fontSize="small" />
123 value="show-search-panel" 79 </IconButton>
80 </Tooltip>
81 )}
82 <Tooltip title="Undo">
83 <IconButton
84 disabled={editorStore === undefined || !editorStore.canUndo}
85 onClick={() => editorStore?.undo()}
86 color="inherit"
87 sx={{ ml: 1 }}
124 > 88 >
125 <SearchIcon fontSize="small" /> 89 <UndoIcon fontSize="small" />
126 </ToggleButton> 90 </IconButton>
127 <ToggleButton 91 </Tooltip>
128 selected={editorStore?.lintPanel?.state ?? false} 92 <Tooltip title="Redo">
129 disabled={editorStore === undefined} 93 <IconButton
130 onClick={() => editorStore?.lintPanel.toggle()} 94 disabled={editorStore === undefined || !editorStore.canRedo}
131 aria-label="Show diagnostics panel" 95 onClick={() => editorStore?.redo()}
132 {...(editorStore !== undefined && 96 color="inherit"
133 editorStore.lintPanel.state && {
134 'aria-controls': editorStore.lintPanel.id,
135 })}
136 value="show-lint-panel"
137 > 97 >
138 {getLintIcon(editorStore?.delayedErrors?.highestDiagnosticLevel)} 98 <RedoIcon fontSize="small" />
139 </ToggleButton> 99 </IconButton>
100 </Tooltip>
101 <ToggleButtonGroup size="small" className="rounded" sx={{ mx: 1 }}>
102 <Tooltip title="Line numbers">
103 <ToggleButton
104 selected={editorStore?.showLineNumbers ?? false}
105 disabled={editorStore === undefined}
106 onClick={() => editorStore?.toggleLineNumbers()}
107 value="show-line-numbers"
108 >
109 <FormatListNumberedIcon fontSize="small" />
110 </ToggleButton>
111 </Tooltip>
112 <Tooltip title="Color identifiers">
113 <ToggleButton
114 selected={editorStore?.colorIdentifiers ?? false}
115 disabled={editorStore === undefined}
116 onClick={() => editorStore?.toggleColorIdentifiers()}
117 value="color-identifiers"
118 >
119 <LooksIcon fontSize="small" />
120 </ToggleButton>
121 </Tooltip>
122 <Tooltip title="Find and replace">
123 <ToggleButton
124 selected={editorStore?.searchPanel?.state ?? false}
125 disabled={editorStore === undefined}
126 onClick={() => editorStore?.searchPanel?.toggle()}
127 {...(editorStore !== undefined &&
128 editorStore.searchPanel.state && {
129 'aria-controls': editorStore.searchPanel.id,
130 })}
131 value="show-search-panel"
132 >
133 <SearchIcon fontSize="small" />
134 </ToggleButton>
135 </Tooltip>
136 <Tooltip title="Diagnostics panel">
137 <ToggleButton
138 selected={editorStore?.lintPanel?.state ?? false}
139 disabled={editorStore === undefined}
140 onClick={() => editorStore?.lintPanel.toggle()}
141 {...(editorStore !== undefined &&
142 editorStore.lintPanel.state && {
143 'aria-controls': editorStore.lintPanel.id,
144 })}
145 value="show-lint-panel"
146 >
147 {getLintIcon(editorStore?.delayedErrors?.highestDiagnosticLevel)}
148 </ToggleButton>
149 </Tooltip>
140 </ToggleButtonGroup> 150 </ToggleButtonGroup>
141 <IconButton 151 <Tooltip title="Automatic format">
142 disabled={editorStore === undefined || !editorStore.opened} 152 <IconButton
143 onClick={() => editorStore?.formatText()} 153 disabled={editorStore === undefined || !editorStore.opened}
144 aria-label="Automatic format" 154 onClick={() => editorStore?.formatText()}
145 color="inherit" 155 color="inherit"
146 > 156 >
147 <FormatPaintIcon fontSize="small" /> 157 <FormatPaintIcon fontSize="small" />
148 </IconButton> 158 </IconButton>
159 </Tooltip>
149 <ConnectButton editorStore={editorStore} /> 160 <ConnectButton editorStore={editorStore} />
150 </Stack> 161 </Stack>
151 ); 162 );
diff --git a/subprojects/frontend/src/editor/SearchToolbar.tsx b/subprojects/frontend/src/editor/SearchToolbar.tsx
index 4ae7e893..bfdff234 100644
--- a/subprojects/frontend/src/editor/SearchToolbar.tsx
+++ b/subprojects/frontend/src/editor/SearchToolbar.tsx
@@ -17,15 +17,14 @@ import Stack from '@mui/material/Stack';
17import TextField from '@mui/material/TextField'; 17import TextField from '@mui/material/TextField';
18import ToggleButton from '@mui/material/ToggleButton'; 18import ToggleButton from '@mui/material/ToggleButton';
19import Toolbar from '@mui/material/Toolbar'; 19import Toolbar from '@mui/material/Toolbar';
20import Tooltip from '@mui/material/Tooltip';
20import { styled } from '@mui/material/styles'; 21import { styled } from '@mui/material/styles';
21import useMediaQuery from '@mui/material/useMediaQuery';
22import { observer } from 'mobx-react-lite'; 22import { observer } from 'mobx-react-lite';
23import { useCallback, useState } from 'react'; 23import { useCallback, useState } from 'react';
24import { useResizeDetector } from 'react-resize-detector';
24 25
25import type SearchPanelStore from './SearchPanelStore'; 26import type SearchPanelStore from './SearchPanelStore';
26 27
27const SPLIT_MEDIA_QUERY = '@media (max-width: 1200px)';
28
29const DimLabel = styled(FormControlLabel)(({ theme }) => ({ 28const DimLabel = styled(FormControlLabel)(({ theme }) => ({
30 '.MuiFormControlLabel-label': { 29 '.MuiFormControlLabel-label': {
31 ...theme.typography.body2, 30 ...theme.typography.body2,
@@ -43,7 +42,8 @@ export default observer(function SearchToolbar({
43 query: { search, valid, caseSensitive, literal, regexp, replace }, 42 query: { search, valid, caseSensitive, literal, regexp, replace },
44 invalidRegexp, 43 invalidRegexp,
45 } = searchPanelStore; 44 } = searchPanelStore;
46 const split = useMediaQuery(SPLIT_MEDIA_QUERY); 45 const { width, ref } = useResizeDetector();
46 const split = width !== undefined && width <= 1200;
47 const [showRepalceState, setShowReplaceState] = useState(false); 47 const [showRepalceState, setShowReplaceState] = useState(false);
48 48
49 const showReplace = !split || showRepalceState || replace !== ''; 49 const showReplace = !split || showRepalceState || replace !== '';
@@ -61,16 +61,19 @@ export default observer(function SearchToolbar({
61 <Toolbar 61 <Toolbar
62 variant="dense" 62 variant="dense"
63 sx={{ py: 0.5, alignItems: 'center', minHeight: 'auto' }} 63 sx={{ py: 0.5, alignItems: 'center', minHeight: 'auto' }}
64 ref={ref}
64 > 65 >
65 <Stack 66 <Stack
66 direction={split ? 'column' : 'row'} 67 direction={split ? 'column' : 'row'}
67 sx={{ 68 sx={{
68 alignItems: 'center', 69 alignItems: 'center',
69 flexGrow: 1, 70 flexGrow: 1,
70 [SPLIT_MEDIA_QUERY]: { 71 ...(split
71 alignItems: 'start', 72 ? {
72 gap: 0.5, 73 alignItems: 'start',
73 }, 74 gap: 0.5,
75 }
76 : {}),
74 }} 77 }}
75 > 78 >
76 <Stack direction="row" flexWrap="wrap" alignItems="center" rowGap={0.5}> 79 <Stack direction="row" flexWrap="wrap" alignItems="center" rowGap={0.5}>
@@ -121,22 +124,24 @@ export default observer(function SearchToolbar({
121 mr={1} 124 mr={1}
122 rowGap={0.5} 125 rowGap={0.5}
123 > 126 >
124 <IconButton 127 <Tooltip title="Previous match">
125 aria-label="Previous" 128 <IconButton
126 disabled={!valid} 129 disabled={!valid}
127 onClick={() => searchPanelStore.findPrevious()} 130 onClick={() => searchPanelStore.findPrevious()}
128 color="inherit" 131 color="inherit"
129 > 132 >
130 <KeyboardArrowUpIcon fontSize="small" /> 133 <KeyboardArrowUpIcon fontSize="small" />
131 </IconButton> 134 </IconButton>
132 <IconButton 135 </Tooltip>
133 aria-label="Next" 136 <Tooltip title="Next match">
134 disabled={!valid} 137 <IconButton
135 onClick={() => searchPanelStore.findNext()} 138 disabled={!valid}
136 color="inherit" 139 onClick={() => searchPanelStore.findNext()}
137 > 140 color="inherit"
138 <KeyboardArrowDownIcon fontSize="small" /> 141 >
139 </IconButton> 142 <KeyboardArrowDownIcon fontSize="small" />
143 </IconButton>
144 </Tooltip>
140 </Stack> 145 </Stack>
141 <Stack 146 <Stack
142 direction="row" 147 direction="row"
@@ -187,24 +192,25 @@ export default observer(function SearchToolbar({
187 label="Regexp" 192 label="Regexp"
188 /> 193 />
189 {split && ( 194 {split && (
190 <ToggleButton 195 <Tooltip title="Replace">
191 value="show-replace" 196 <ToggleButton
192 selected={showReplace} 197 value="show-replace"
193 onClick={() => { 198 selected={showReplace}
194 if (showReplace) { 199 onClick={() => {
195 searchPanelStore.updateQuery({ replace: '' }); 200 if (showReplace) {
196 setShowReplaceState(false); 201 searchPanelStore.updateQuery({ replace: '' });
197 } else { 202 setShowReplaceState(false);
198 setShowReplaceState(true); 203 } else {
199 } 204 setShowReplaceState(true);
200 }} 205 }
201 aria-label="Show replace options" 206 }}
202 aria-controls={replaceId} 207 aria-controls={replaceId}
203 size="small" 208 size="small"
204 className="iconOnly" 209 className="iconOnly"
205 > 210 >
206 <FindReplaceIcon fontSize="small" /> 211 <FindReplaceIcon fontSize="small" />
207 </ToggleButton> 212 </ToggleButton>
213 </Tooltip>
208 )} 214 )}
209 </Stack> 215 </Stack>
210 </Stack> 216 </Stack>
@@ -263,9 +269,7 @@ export default observer(function SearchToolbar({
263 alignSelf="stretch" 269 alignSelf="stretch"
264 alignItems="start" 270 alignItems="start"
265 mt="1px" 271 mt="1px"
266 sx={{ 272 sx={split ? { display: 'none' } : {}}
267 [SPLIT_MEDIA_QUERY]: { display: 'none' },
268 }}
269 > 273 >
270 <IconButton 274 <IconButton
271 aria-label="Close find/replace" 275 aria-label="Close find/replace"
diff --git a/subprojects/frontend/src/graph/SlideInPanel.tsx b/subprojects/frontend/src/graph/SlideInPanel.tsx
index 2c189b5b..47bbe0a6 100644
--- a/subprojects/frontend/src/graph/SlideInPanel.tsx
+++ b/subprojects/frontend/src/graph/SlideInPanel.tsx
@@ -8,6 +8,7 @@ import Dialog from '@mui/material/Dialog';
8import IconButton from '@mui/material/IconButton'; 8import IconButton from '@mui/material/IconButton';
9import Paper from '@mui/material/Paper'; 9import Paper from '@mui/material/Paper';
10import Slide from '@mui/material/Slide'; 10import Slide from '@mui/material/Slide';
11import Tooltip from '@mui/material/Tooltip';
11import { styled } from '@mui/material/styles'; 12import { styled } from '@mui/material/styles';
12import React, { useCallback, useId, useState } from 'react'; 13import React, { useCallback, useId, useState } from 'react';
13 14
@@ -58,15 +59,19 @@ export default function SlideInPanel({
58 59
59 return ( 60 return (
60 <SlideInPanelRoot anchor={anchor}> 61 <SlideInPanelRoot anchor={anchor}>
61 <IconButton 62 <Tooltip
62 role="switch" 63 title={iconLabel}
63 aria-checked={show} 64 placement={anchor === 'left' ? 'right' : 'left'}
64 aria-controls={dialog ? undefined : id}
65 aria-label={iconLabel}
66 onClick={() => setShow(!show)}
67 > 65 >
68 {icon(show)} 66 <IconButton
69 </IconButton> 67 role="switch"
68 aria-checked={show}
69 aria-controls={dialog ? undefined : id}
70 onClick={() => setShow(!show)}
71 >
72 {icon(show)}
73 </IconButton>
74 </Tooltip>
70 {dialog ? ( 75 {dialog ? (
71 <Dialog open={show} onClose={close} maxWidth="xl"> 76 <Dialog open={show} onClose={close} maxWidth="xl">
72 <SlideInDialog close={close} dialog title={title} buttons={buttons}> 77 <SlideInDialog close={close} dialog title={title} buttons={buttons}>
diff --git a/subprojects/frontend/src/graph/VisibilityPanel.tsx b/subprojects/frontend/src/graph/VisibilityPanel.tsx
index 210ff5d5..8474b7be 100644
--- a/subprojects/frontend/src/graph/VisibilityPanel.tsx
+++ b/subprojects/frontend/src/graph/VisibilityPanel.tsx
@@ -199,7 +199,7 @@ function VisibilityPanel({
199 dialog={dialog} 199 dialog={dialog}
200 title="Customize view" 200 title="Customize view"
201 icon={icon} 201 icon={icon}
202 iconLabel="Show filter panel" 202 iconLabel="Filter panel"
203 buttons={ 203 buttons={
204 <> 204 <>
205 <Button 205 <Button
diff --git a/subprojects/frontend/src/graph/ZoomButtons.tsx b/subprojects/frontend/src/graph/ZoomButtons.tsx
index 83938cf4..b292a617 100644
--- a/subprojects/frontend/src/graph/ZoomButtons.tsx
+++ b/subprojects/frontend/src/graph/ZoomButtons.tsx
@@ -10,6 +10,7 @@ import RemoveIcon from '@mui/icons-material/Remove';
10import IconButton from '@mui/material/IconButton'; 10import IconButton from '@mui/material/IconButton';
11import Stack from '@mui/material/Stack'; 11import Stack from '@mui/material/Stack';
12import ToggleButton from '@mui/material/ToggleButton'; 12import ToggleButton from '@mui/material/ToggleButton';
13import Tooltip from '@mui/material/Tooltip';
13 14
14import type { ChangeZoomCallback, SetFitZoomCallback } from './ZoomCanvas'; 15import type { ChangeZoomCallback, SetFitZoomCallback } from './ZoomCanvas';
15 16
@@ -28,22 +29,27 @@ export default function ZoomButtons({
28 p={1} 29 p={1}
29 sx={{ position: 'absolute', bottom: 0, right: 0 }} 30 sx={{ position: 'absolute', bottom: 0, right: 0 }}
30 > 31 >
31 <IconButton aria-label="Zoom in" onClick={() => changeZoom(2)}> 32 <Tooltip title="Zoom in" placement="left">
32 <AddIcon fontSize="small" /> 33 <IconButton onClick={() => changeZoom(2)}>
33 </IconButton> 34 <AddIcon fontSize="small" />
34 <IconButton aria-label="Zoom out" onClick={() => changeZoom(0.5)}> 35 </IconButton>
35 <RemoveIcon fontSize="small" /> 36 </Tooltip>
36 </IconButton> 37 <Tooltip title="Zoom out" placement="left">
37 <ToggleButton 38 <IconButton onClick={() => changeZoom(0.5)}>
38 value="show-replace" 39 <RemoveIcon fontSize="small" />
39 selected={fitZoom} 40 </IconButton>
40 onClick={() => setFitZoom(!fitZoom)} 41 </Tooltip>
41 aria-label="Fit screen" 42 <Tooltip title="Fit screen" placement="left">
42 size="small" 43 <ToggleButton
43 className="iconOnly" 44 value="show-replace"
44 > 45 selected={fitZoom}
45 <CropFreeIcon fontSize="small" /> 46 onClick={() => setFitZoom(!fitZoom)}
46 </ToggleButton> 47 size="small"
48 className="iconOnly"
49 >
50 <CropFreeIcon fontSize="small" />
51 </ToggleButton>
52 </Tooltip>
47 </Stack> 53 </Stack>
48 ); 54 );
49} 55}
diff --git a/subprojects/frontend/src/graph/export/ExportPanel.tsx b/subprojects/frontend/src/graph/export/ExportPanel.tsx
index c93fa837..81bd9081 100644
--- a/subprojects/frontend/src/graph/export/ExportPanel.tsx
+++ b/subprojects/frontend/src/graph/export/ExportPanel.tsx
@@ -6,6 +6,7 @@
6 6
7import ChevronRightIcon from '@mui/icons-material/ChevronRight'; 7import ChevronRightIcon from '@mui/icons-material/ChevronRight';
8import ContentCopyIcon from '@mui/icons-material/ContentCopy'; 8import ContentCopyIcon from '@mui/icons-material/ContentCopy';
9import ContrastIcon from '@mui/icons-material/Contrast';
9import DarkModeIcon from '@mui/icons-material/DarkMode'; 10import DarkModeIcon from '@mui/icons-material/DarkMode';
10import ImageIcon from '@mui/icons-material/Image'; 11import ImageIcon from '@mui/icons-material/Image';
11import InsertDriveFileOutlinedIcon from '@mui/icons-material/InsertDriveFileOutlined'; 12import InsertDriveFileOutlinedIcon from '@mui/icons-material/InsertDriveFileOutlined';
@@ -50,6 +51,13 @@ const SwitchButtonGroup = styled(ToggleButtonGroup, {
50 }, 51 },
51})); 52}));
52 53
54const AutoThemeMessage = styled(Typography, {
55 name: 'ExportPanel-AutoThemeMessage',
56})(({ theme }) => ({
57 width: '260px',
58 marginInline: theme.spacing(2),
59}));
60
53function getLabel(value: number): string { 61function getLabel(value: number): string {
54 return `${value}%`; 62 return `${value}%`;
55} 63}
@@ -127,7 +135,7 @@ function ExportPanel({
127 dialog={dialog} 135 dialog={dialog}
128 title="Export diagram" 136 title="Export diagram"
129 icon={icon} 137 icon={icon}
130 iconLabel="Show export panel" 138 iconLabel={`Export image\u2026`}
131 buttons={buttons} 139 buttons={buttons}
132 > 140 >
133 <SwitchButtonGroup size="small" className="rounded"> 141 <SwitchButtonGroup size="small" className="rounded">
@@ -155,29 +163,40 @@ function ExportPanel({
155 </SwitchButtonGroup> 163 </SwitchButtonGroup>
156 <SwitchButtonGroup size="small" className="rounded"> 164 <SwitchButtonGroup size="small" className="rounded">
157 <ToggleButton 165 <ToggleButton
158 value="svg" 166 value="light"
159 selected={exportSettingsStore.theme === 'light'} 167 selected={exportSettingsStore.theme === 'light'}
160 onClick={() => exportSettingsStore.setTheme('light')} 168 onClick={() => exportSettingsStore.setTheme('light')}
161 > 169 >
162 <LightModeIcon fontSize="small" /> Light 170 <LightModeIcon fontSize="small" /> Light
163 </ToggleButton> 171 </ToggleButton>
164 <ToggleButton 172 <ToggleButton
165 value="png" 173 value="dark"
166 selected={exportSettingsStore.theme === 'dark'} 174 selected={exportSettingsStore.theme === 'dark'}
167 onClick={() => exportSettingsStore.setTheme('dark')} 175 onClick={() => exportSettingsStore.setTheme('dark')}
168 > 176 >
169 <DarkModeIcon fontSize="small" /> Dark 177 <DarkModeIcon fontSize="small" /> Dark
170 </ToggleButton> 178 </ToggleButton>
179 {exportSettingsStore.canSetDynamicTheme && (
180 <ToggleButton
181 value="dynamic"
182 selected={exportSettingsStore.theme === 'dynamic'}
183 onClick={() => exportSettingsStore.setTheme('dynamic')}
184 >
185 <ContrastIcon fontSize="small" /> Auto
186 </ToggleButton>
187 )}
171 </SwitchButtonGroup> 188 </SwitchButtonGroup>
172 <FormControlLabel 189 {exportSettingsStore.canChangeTransparency && (
173 control={ 190 <FormControlLabel
174 <Switch 191 control={
175 checked={exportSettingsStore.transparent} 192 <Switch
176 onClick={() => exportSettingsStore.toggleTransparent()} 193 checked={exportSettingsStore.transparent}
177 /> 194 onClick={() => exportSettingsStore.toggleTransparent()}
178 } 195 />
179 label="Transparent background" 196 }
180 /> 197 label="Transparent background"
198 />
199 )}
181 {exportSettingsStore.canEmbedFonts && ( 200 {exportSettingsStore.canEmbedFonts && (
182 <FormControlLabel 201 <FormControlLabel
183 control={ 202 control={
@@ -200,6 +219,17 @@ function ExportPanel({
200 } 219 }
201 /> 220 />
202 )} 221 )}
222 {exportSettingsStore.theme === 'dynamic' && (
223 <>
224 <AutoThemeMessage mt={2}>
225 For embedding into HTML directly
226 </AutoThemeMessage>
227 <AutoThemeMessage variant="caption" mt={1}>
228 Set <code>data-theme=&quot;dark&quot;</code> on a containing element
229 to use a dark theme
230 </AutoThemeMessage>
231 </>
232 )}
203 {exportSettingsStore.canScale && ( 233 {exportSettingsStore.canScale && (
204 <Box mx={4} mt={1} mb={2}> 234 <Box mx={4} mt={1} mb={2}>
205 <Slider 235 <Slider
diff --git a/subprojects/frontend/src/graph/export/ExportSettingsStore.ts b/subprojects/frontend/src/graph/export/ExportSettingsStore.ts
index 53a161ab..7c691a7b 100644
--- a/subprojects/frontend/src/graph/export/ExportSettingsStore.ts
+++ b/subprojects/frontend/src/graph/export/ExportSettingsStore.ts
@@ -7,18 +7,21 @@
7import { makeAutoObservable } from 'mobx'; 7import { makeAutoObservable } from 'mobx';
8 8
9export type ExportFormat = 'svg' | 'pdf' | 'png'; 9export type ExportFormat = 'svg' | 'pdf' | 'png';
10export type ExportTheme = 'light' | 'dark'; 10export type StaticTheme = 'light' | 'dark';
11export type ExportTheme = StaticTheme | 'dynamic';
11 12
12export default class ExportSettingsStore { 13export default class ExportSettingsStore {
13 format: ExportFormat = 'svg'; 14 format: ExportFormat = 'svg';
14 15
15 theme: ExportTheme = 'light'; 16 private staticTheme: StaticTheme = 'light';
16 17
17 transparent = true; 18 private _theme: ExportTheme = 'light';
18 19
19 embedSVGFonts = false; 20 private _transparent = true;
20 21
21 embedPDFFonts = true; 22 private embedSVGFonts = false;
23
24 private embedPDFFonts = true;
22 25
23 scale = 100; 26 scale = 100;
24 27
@@ -31,11 +34,14 @@ export default class ExportSettingsStore {
31 } 34 }
32 35
33 setTheme(theme: ExportTheme): void { 36 setTheme(theme: ExportTheme): void {
34 this.theme = theme; 37 this._theme = theme;
38 if (theme !== 'dynamic') {
39 this.staticTheme = theme;
40 }
35 } 41 }
36 42
37 toggleTransparent(): void { 43 toggleTransparent(): void {
38 this.transparent = !this.transparent; 44 this._transparent = !this._transparent;
39 } 45 }
40 46
41 toggleEmbedFonts(): void { 47 toggleEmbedFonts(): void {
@@ -46,7 +52,18 @@ export default class ExportSettingsStore {
46 this.scale = scale; 52 this.scale = scale;
47 } 53 }
48 54
55 get theme(): ExportTheme {
56 return this.format === 'svg' ? this._theme : this.staticTheme;
57 }
58
59 get transparent(): boolean {
60 return this.theme === 'dynamic' ? true : this._transparent;
61 }
62
49 get embedFonts(): boolean { 63 get embedFonts(): boolean {
64 if (this.theme === 'dynamic') {
65 return false;
66 }
50 return this.format === 'pdf' ? this.embedPDFFonts : this.embedSVGFonts; 67 return this.format === 'pdf' ? this.embedPDFFonts : this.embedSVGFonts;
51 } 68 }
52 69
@@ -57,8 +74,19 @@ export default class ExportSettingsStore {
57 this.embedSVGFonts = embedFonts; 74 this.embedSVGFonts = embedFonts;
58 } 75 }
59 76
77 get canSetDynamicTheme(): boolean {
78 return this.format === 'svg';
79 }
80
81 get canChangeTransparency(): boolean {
82 return this.theme !== 'dynamic';
83 }
84
60 get canEmbedFonts(): boolean { 85 get canEmbedFonts(): boolean {
61 return this.format === 'svg' || this.format === 'pdf'; 86 return (
87 (this.format === 'svg' || this.format === 'pdf') &&
88 this.theme !== 'dynamic'
89 );
62 } 90 }
63 91
64 get canScale(): boolean { 92 get canScale(): boolean {
diff --git a/subprojects/frontend/src/graph/export/exportDiagram.tsx b/subprojects/frontend/src/graph/export/exportDiagram.tsx
index 6abbcfdf..52d19aa0 100644
--- a/subprojects/frontend/src/graph/export/exportDiagram.tsx
+++ b/subprojects/frontend/src/graph/export/exportDiagram.tsx
@@ -16,6 +16,7 @@ import cancelSVG from '@material-icons/svg/svg/cancel/baseline.svg?raw';
16import labelSVG from '@material-icons/svg/svg/label/baseline.svg?raw'; 16import labelSVG from '@material-icons/svg/svg/label/baseline.svg?raw';
17import labelOutlinedSVG from '@material-icons/svg/svg/label/outline.svg?raw'; 17import labelOutlinedSVG from '@material-icons/svg/svg/label/outline.svg?raw';
18import type { Theme } from '@mui/material/styles'; 18import type { Theme } from '@mui/material/styles';
19import { nanoid } from 'nanoid';
19 20
20import { darkTheme, lightTheme } from '../../theme/ThemeProvider'; 21import { darkTheme, lightTheme } from '../../theme/ThemeProvider';
21import { copyBlob, saveBlob } from '../../utils/fileIO'; 22import { copyBlob, saveBlob } from '../../utils/fileIO';
@@ -48,6 +49,36 @@ importSVG(labelSVG, 'icon-TRUE');
48importSVG(labelOutlinedSVG, 'icon-UNKNOWN'); 49importSVG(labelOutlinedSVG, 'icon-UNKNOWN');
49importSVG(cancelSVG, 'icon-ERROR'); 50importSVG(cancelSVG, 'icon-ERROR');
50 51
52function fixIDs(id: string, svgDocument: XMLDocument) {
53 const idMap = new Map<string, string>();
54 let i = 0;
55 svgDocument.querySelectorAll('[id]').forEach((node) => {
56 const oldId = node.getAttribute('id');
57 if (oldId === null) {
58 return;
59 }
60 if (oldId.endsWith(',clip')) {
61 const newId = `refinery-${id}-clip-${i}`;
62 i += 1;
63 idMap.set(`url(#${oldId})`, `url(#${newId})`);
64 node.setAttribute('id', newId);
65 } else {
66 node.removeAttribute('id');
67 }
68 });
69 svgDocument.querySelectorAll('[clip-path]').forEach((node) => {
70 const oldPath = node.getAttribute('clip-path');
71 if (oldPath === null) {
72 return;
73 }
74 const newPath = idMap.get(oldPath);
75 if (newPath === undefined) {
76 return;
77 }
78 node.setAttribute('clip-path', newPath);
79 });
80}
81
51function addBackground( 82function addBackground(
52 svgDocument: XMLDocument, 83 svgDocument: XMLDocument,
53 svg: SVGSVGElement, 84 svg: SVGSVGElement,
@@ -142,40 +173,54 @@ async function fetchVariableFontCSS(): Promise<string> {
142 return variableFontCSS; 173 return variableFontCSS;
143} 174}
144 175
176interface ThemeVariant {
177 selector: string;
178 theme: Theme;
179}
180
145function appendStyles( 181function appendStyles(
182 id: string,
146 svgDocument: XMLDocument, 183 svgDocument: XMLDocument,
147 svg: SVGSVGElement, 184 svg: SVGSVGElement,
148 theme: Theme, 185 themes: ThemeVariant[],
149 colorNodes: boolean, 186 colorNodes: boolean,
150 hexTypeHashes: string[], 187 hexTypeHashes: string[],
151 fontsCSS: string, 188 fontsCSS: string,
152): void { 189): void {
153 const cache = createCache({ 190 const className = `refinery-${id}`;
154 key: 'refinery', 191 svg.classList.add(className);
155 container: svg,
156 prepend: true,
157 });
158 // @ts-expect-error `CSSObject` types don't match up between `@mui/material` and
159 // `@emotion/serialize`, but they are compatible in practice.
160 const styles = serializeStyles([createGraphTheme], cache.registered, {
161 theme,
162 colorNodes,
163 hexTypeHashes,
164 noEmbedIcons: true,
165 });
166 const rules: string[] = [fontsCSS]; 192 const rules: string[] = [fontsCSS];
167 const sheet = { 193 themes.forEach(({ selector, theme }) => {
168 insert(rule) { 194 const cache = createCache({
169 rules.push(rule); 195 key: 'refinery',
170 }, 196 container: svg,
171 } as StyleSheet; 197 prepend: true,
172 cache.insert('', styles, sheet, false); 198 });
199 // @ts-expect-error `CSSObject` types don't match up between `@mui/material` and
200 // `@emotion/serialize`, but they are compatible in practice.
201 const styles = serializeStyles([createGraphTheme], cache.registered, {
202 theme,
203 colorNodes,
204 hexTypeHashes,
205 noEmbedIcons: true,
206 });
207 const sheet = {
208 insert(rule) {
209 rules.push(rule);
210 },
211 } as StyleSheet;
212 cache.insert(`${selector} .${className}`, styles, sheet, false);
213 });
173 const styleElement = svgDocument.createElementNS(SVG_NS, 'style'); 214 const styleElement = svgDocument.createElementNS(SVG_NS, 'style');
174 svg.prepend(styleElement); 215 svg.prepend(styleElement);
175 styleElement.innerHTML = rules.join(''); 216 styleElement.innerHTML = rules.join('');
176} 217}
177 218
178function fixForeignObjects(svgDocument: XMLDocument, svg: SVGSVGElement): void { 219function fixForeignObjects(
220 id: string,
221 svgDocument: XMLDocument,
222 svg: SVGSVGElement,
223): void {
179 const foreignObjects: SVGForeignObjectElement[] = []; 224 const foreignObjects: SVGForeignObjectElement[] = [];
180 svg 225 svg
181 .querySelectorAll('foreignObject') 226 .querySelectorAll('foreignObject')
@@ -197,7 +242,7 @@ function fixForeignObjects(svgDocument: XMLDocument, svg: SVGSVGElement): void {
197 object.children[0]?.classList?.forEach((className) => { 242 object.children[0]?.classList?.forEach((className) => {
198 useElement.classList.add(className); 243 useElement.classList.add(className);
199 if (ICONS.has(className)) { 244 if (ICONS.has(className)) {
200 useElement.setAttribute('href', `#${className}`); 245 useElement.setAttribute('href', `#refinery-${id}-${className}`);
201 } 246 }
202 }); 247 });
203 object.replaceWith(useElement); 248 object.replaceWith(useElement);
@@ -206,6 +251,7 @@ function fixForeignObjects(svgDocument: XMLDocument, svg: SVGSVGElement): void {
206 svg.prepend(defs); 251 svg.prepend(defs);
207 ICONS.forEach((value) => { 252 ICONS.forEach((value) => {
208 const importedValue = svgDocument.importNode(value, true); 253 const importedValue = svgDocument.importNode(value, true);
254 importedValue.id = `refinery-${id}-${importedValue.id}`;
209 defs.appendChild(importedValue); 255 defs.appendChild(importedValue);
210 }); 256 });
211} 257}
@@ -322,12 +368,37 @@ export default async function exportDiagram(
322 svgDocument.replaceChild(copyOfSVG, originalRoot); 368 svgDocument.replaceChild(copyOfSVG, originalRoot);
323 } 369 }
324 370
325 const theme = settings.theme === 'light' ? lightTheme : darkTheme; 371 const id = nanoid();
372 fixIDs(id, svgDocument);
373
374 let theme: Theme;
375 let themes: ThemeVariant[];
376 if (settings.theme === 'dynamic') {
377 theme = lightTheme;
378 themes = [
379 {
380 selector: '',
381 theme: lightTheme,
382 },
383 {
384 selector: '[data-theme="dark"]',
385 theme: darkTheme,
386 },
387 ];
388 } else {
389 theme = settings.theme === 'light' ? lightTheme : darkTheme;
390 themes = [
391 {
392 selector: '',
393 theme,
394 },
395 ];
396 }
326 if (!settings.transparent) { 397 if (!settings.transparent) {
327 addBackground(svgDocument, copyOfSVG, theme); 398 addBackground(svgDocument, copyOfSVG, theme);
328 } 399 }
329 400
330 fixForeignObjects(svgDocument, copyOfSVG); 401 fixForeignObjects(id, svgDocument, copyOfSVG);
331 402
332 const { colorNodes } = graph; 403 const { colorNodes } = graph;
333 let fontsCSS = ''; 404 let fontsCSS = '';
@@ -339,9 +410,10 @@ export default async function exportDiagram(
339 fontsCSS = await fetchFontCSS(); 410 fontsCSS = await fetchFontCSS();
340 } 411 }
341 appendStyles( 412 appendStyles(
413 id,
342 svgDocument, 414 svgDocument,
343 copyOfSVG, 415 copyOfSVG,
344 theme, 416 themes,
345 colorNodes, 417 colorNodes,
346 graph.hexTypeHashes, 418 graph.hexTypeHashes,
347 fontsCSS, 419 fontsCSS,
diff --git a/subprojects/frontend/src/table/SymbolSelector.tsx b/subprojects/frontend/src/table/SymbolSelector.tsx
index 5272f8ed..10a9ba9d 100644
--- a/subprojects/frontend/src/table/SymbolSelector.tsx
+++ b/subprojects/frontend/src/table/SymbolSelector.tsx
@@ -33,7 +33,7 @@ function SymbolSelector({ graph }: { graph: GraphStore }): JSX.Element {
33 }} 33 }}
34 variant="standard" 34 variant="standard"
35 size="medium" 35 size="medium"
36 placeholder="Symbol" 36 placeholder={`Select symbol to view\u2026`}
37 /> 37 />
38 )} 38 )}
39 options={relations} 39 options={relations}
diff --git a/subprojects/frontend/src/table/TableArea.tsx b/subprojects/frontend/src/table/TableArea.tsx
index 854f3a97..dc886715 100644
--- a/subprojects/frontend/src/table/TableArea.tsx
+++ b/subprojects/frontend/src/table/TableArea.tsx
@@ -5,6 +5,7 @@
5 */ 5 */
6 6
7import Box from '@mui/material/Box'; 7import Box from '@mui/material/Box';
8import Stack from '@mui/material/Stack';
8import { 9import {
9 DataGrid, 10 DataGrid,
10 type GridRenderCellParams, 11 type GridRenderCellParams,
@@ -14,6 +15,7 @@ import { observer } from 'mobx-react-lite';
14import { useMemo } from 'react'; 15import { useMemo } from 'react';
15 16
16import type GraphStore from '../graph/GraphStore'; 17import type GraphStore from '../graph/GraphStore';
18import RelationName from '../graph/RelationName';
17 19
18import TableToolbar from './TableToolbar'; 20import TableToolbar from './TableToolbar';
19import ValueRenderer from './ValueRenderer'; 21import ValueRenderer from './ValueRenderer';
@@ -28,6 +30,54 @@ declare module '@mui/x-data-grid' {
28 interface ToolbarPropsOverrides { 30 interface ToolbarPropsOverrides {
29 graph: GraphStore; 31 graph: GraphStore;
30 } 32 }
33
34 interface NoRowsOverlayPropsOverrides {
35 graph: GraphStore;
36 }
37
38 interface NoResultsOverlayPropsOverrides {
39 graph: GraphStore;
40 }
41}
42
43const noSymbolMessage =
44 'Please select a symbol from the list to view its interpretation';
45
46function NoRowsOverlay({
47 graph: { selectedSymbol },
48}: {
49 graph: GraphStore;
50}): JSX.Element {
51 return (
52 <Stack height="100%" alignItems="center" justifyContent="center">
53 {selectedSymbol === undefined ? (
54 noSymbolMessage
55 ) : (
56 <span>
57 Interpretation of <RelationName metadata={selectedSymbol} /> is empty
58 </span>
59 )}
60 </Stack>
61 );
62}
63
64function NoResultsOverlay({
65 graph: { selectedSymbol },
66}: {
67 graph: GraphStore;
68}): JSX.Element {
69 return (
70 <Stack height="100%" alignItems="center" justifyContent="center">
71 {selectedSymbol === undefined ? (
72 noSymbolMessage
73 ) : (
74 <span>
75 No results in the interpretation of{' '}
76 <RelationName metadata={selectedSymbol} />
77 </span>
78 )}
79 </Stack>
80 );
31} 81}
32 82
33function TableArea({ graph }: { graph: GraphStore }): JSX.Element { 83function TableArea({ graph }: { graph: GraphStore }): JSX.Element {
@@ -97,11 +147,21 @@ function TableArea({ graph }: { graph: GraphStore }): JSX.Element {
97 })} 147 })}
98 > 148 >
99 <DataGrid 149 <DataGrid
100 slots={{ toolbar: TableToolbar }} 150 slots={{
151 toolbar: TableToolbar,
152 noRowsOverlay: NoRowsOverlay,
153 noResultsOverlay: NoResultsOverlay,
154 }}
101 slotProps={{ 155 slotProps={{
102 toolbar: { 156 toolbar: {
103 graph, 157 graph,
104 }, 158 },
159 noRowsOverlay: {
160 graph,
161 },
162 noResultsOverlay: {
163 graph,
164 },
105 }} 165 }}
106 initialState={{ density: 'compact' }} 166 initialState={{ density: 'compact' }}
107 rowSelection={false} 167 rowSelection={false}
diff --git a/subprojects/frontend/src/theme/ThemeProvider.tsx b/subprojects/frontend/src/theme/ThemeProvider.tsx
index 6905fb4b..1d70dbaf 100644
--- a/subprojects/frontend/src/theme/ThemeProvider.tsx
+++ b/subprojects/frontend/src/theme/ThemeProvider.tsx
@@ -206,6 +206,9 @@ function createResponsiveTheme(
206 tooltip: { 206 tooltip: {
207 background: alpha('#212121', 0.93), 207 background: alpha('#212121', 0.93),
208 color: '#fff', 208 color: '#fff',
209 fontSize: '0.875rem',
210 lineHeight: 1.43,
211 letterSpacing: '0.01071em',
209 }, 212 },
210 arrow: { 213 arrow: {
211 color: alpha('#212121', 0.93), 214 color: alpha('#212121', 0.93),
diff --git a/subprojects/language-web/build.gradle.kts b/subprojects/language-web/build.gradle.kts
index c3a0b7e9..02e4ff17 100644
--- a/subprojects/language-web/build.gradle.kts
+++ b/subprojects/language-web/build.gradle.kts
@@ -1,5 +1,5 @@
1/* 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/> 2 * SPDX-FileCopyrightText: 2021-2024 The Refinery Authors <https://refinery.tools/>
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
@@ -55,7 +55,7 @@ tasks {
55 } 55 }
56 } 56 }
57 57
58 register<JavaExec>("serveBackend") { 58 register<JavaExec>("serve") {
59 dependsOn(webapp) 59 dependsOn(webapp)
60 val mainRuntimeClasspath = sourceSets.main.map { it.runtimeClasspath } 60 val mainRuntimeClasspath = sourceSets.main.map { it.runtimeClasspath }
61 dependsOn(mainRuntimeClasspath) 61 dependsOn(mainRuntimeClasspath)
@@ -67,7 +67,7 @@ tasks {
67 description = "Start a Jetty web server serving the Xtext API and assets." 67 description = "Start a Jetty web server serving the Xtext API and assets."
68 } 68 }
69 69
70 register<JavaExec>("serveBackendOnly") { 70 register<JavaExec>("serveBackend") {
71 val mainRuntimeClasspath = sourceSets.main.map { it.runtimeClasspath } 71 val mainRuntimeClasspath = sourceSets.main.map { it.runtimeClasspath }
72 dependsOn(mainRuntimeClasspath) 72 dependsOn(mainRuntimeClasspath)
73 classpath(mainRuntimeClasspath) 73 classpath(mainRuntimeClasspath)
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/ThreadPoolExecutorServiceProvider.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/ThreadPoolExecutorServiceProvider.java
index ff8f4943..77579f8e 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/ThreadPoolExecutorServiceProvider.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/ThreadPoolExecutorServiceProvider.java
@@ -60,9 +60,9 @@ public class ThreadPoolExecutorServiceProvider extends ExecutorServiceProvider {
60 } 60 }
61 61
62 public ThreadPoolExecutorServiceProvider() { 62 public ThreadPoolExecutorServiceProvider() {
63 executorThreadCount = getCount("REFINERY_XTEXT_THREAD_COUNT").orElse(0); 63 executorThreadCount = getCount("REFINERY_XTEXT_THREAD_COUNT").orElse(1);
64 lockExecutorThreadCount = getCount("REFINERY_XTEXT_LOCKING_THREAD_COUNT").orElse(executorThreadCount); 64 lockExecutorThreadCount = getCount("REFINERY_XTEXT_LOCKING_THREAD_COUNT").orElse(executorThreadCount);
65 int semanticsCount = getCount("REFINERY_XTEXT_SEMANTICS_THREAD_COUNT").orElse(0); 65 int semanticsCount = getCount("REFINERY_XTEXT_SEMANTICS_THREAD_COUNT").orElse(executorThreadCount);
66 if (semanticsCount == 0 || executorThreadCount == 0) { 66 if (semanticsCount == 0 || executorThreadCount == 0) {
67 semanticsExecutorThreadCount = 0; 67 semanticsExecutorThreadCount = 0;
68 } else { 68 } else {
diff --git a/yarn.lock b/yarn.lock
index e97c14d9..c1459932 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -12,6 +12,207 @@ __metadata:
12 languageName: node 12 languageName: node
13 linkType: hard 13 linkType: hard
14 14
15"@algolia/autocomplete-core@npm:1.9.3":
16 version: 1.9.3
17 resolution: "@algolia/autocomplete-core@npm:1.9.3"
18 dependencies:
19 "@algolia/autocomplete-plugin-algolia-insights": "npm:1.9.3"
20 "@algolia/autocomplete-shared": "npm:1.9.3"
21 checksum: 10c0/a751b20f15c9a30b8b2d5a4f1f62fb4dbd012fb7ffec1b12308d6e7388b5a4dc83af52176634f17facb57a7727204843c5aa2f6e80efafaaf244275f44af11d9
22 languageName: node
23 linkType: hard
24
25"@algolia/autocomplete-plugin-algolia-insights@npm:1.9.3":
26 version: 1.9.3
27 resolution: "@algolia/autocomplete-plugin-algolia-insights@npm:1.9.3"
28 dependencies:
29 "@algolia/autocomplete-shared": "npm:1.9.3"
30 peerDependencies:
31 search-insights: ">= 1 < 3"
32 checksum: 10c0/574196f66fe828be1029439032376685020524d6c729dea99caef336cc7be244d2539fa91b3fe80db80efe3420c2c05063cab3534514be6c637bf1914b17a6f6
33 languageName: node
34 linkType: hard
35
36"@algolia/autocomplete-preset-algolia@npm:1.9.3":
37 version: 1.9.3
38 resolution: "@algolia/autocomplete-preset-algolia@npm:1.9.3"
39 dependencies:
40 "@algolia/autocomplete-shared": "npm:1.9.3"
41 peerDependencies:
42 "@algolia/client-search": ">= 4.9.1 < 6"
43 algoliasearch: ">= 4.9.1 < 6"
44 checksum: 10c0/38c1872db4dae69b4eec622db940c7a992d8530e33fbac7df593473ef404312076d9933b4a7ea25c2d401ea5b62ebd64b56aa25b5cdd8e8ba3fd309a39d9d816
45 languageName: node
46 linkType: hard
47
48"@algolia/autocomplete-shared@npm:1.9.3":
49 version: 1.9.3
50 resolution: "@algolia/autocomplete-shared@npm:1.9.3"
51 peerDependencies:
52 "@algolia/client-search": ">= 4.9.1 < 6"
53 algoliasearch: ">= 4.9.1 < 6"
54 checksum: 10c0/1aa926532c32be6bb5384c8c0ae51a312c9d79ed7486371218dfcb61c8ea1ed46171bdc9f9b596a266aece104a0ef76d6aac2f9a378a5a6eb4460e638d59f6ae
55 languageName: node
56 linkType: hard
57
58"@algolia/cache-browser-local-storage@npm:4.23.3":
59 version: 4.23.3
60 resolution: "@algolia/cache-browser-local-storage@npm:4.23.3"
61 dependencies:
62 "@algolia/cache-common": "npm:4.23.3"
63 checksum: 10c0/838a625b6f00f1cc8eb132043076f3d712b54fc1d0a5dc5e3cc0b966c81e60d71aa22f0841d1ceda59f68180c207b50b863b6c9d00f3c0c5e331043fd6c4fa57
64 languageName: node
65 linkType: hard
66
67"@algolia/cache-common@npm:4.23.3":
68 version: 4.23.3
69 resolution: "@algolia/cache-common@npm:4.23.3"
70 checksum: 10c0/493f7e7ef2e0fbc0e8cfcf8f2850f0d724043b20f12097a7120f8c2955fecf4e2f18f7f620443ca6e3f987c4a08a0d162911539f0f9c5a528db07f5e4536cbc4
71 languageName: node
72 linkType: hard
73
74"@algolia/cache-in-memory@npm:4.23.3":
75 version: 4.23.3
76 resolution: "@algolia/cache-in-memory@npm:4.23.3"
77 dependencies:
78 "@algolia/cache-common": "npm:4.23.3"
79 checksum: 10c0/5e6820301a2a3ec3f9f7e1816b7fb55b697a5c51aaea52cc009d2dcc2287ddf23bcc70cb481a14cbdd5b9148e7a8bda7ec572926112c91abae9ef81359aa04c7
80 languageName: node
81 linkType: hard
82
83"@algolia/client-account@npm:4.23.3":
84 version: 4.23.3
85 resolution: "@algolia/client-account@npm:4.23.3"
86 dependencies:
87 "@algolia/client-common": "npm:4.23.3"
88 "@algolia/client-search": "npm:4.23.3"
89 "@algolia/transporter": "npm:4.23.3"
90 checksum: 10c0/70d6f2c9a085cd4e9c7feb52ad3b1d0792356e800241fb594a383206f3474ef130a7971097c2812abda771e36c5be5468746ac6062e3bbb457d6420286245689
91 languageName: node
92 linkType: hard
93
94"@algolia/client-analytics@npm:4.23.3":
95 version: 4.23.3
96 resolution: "@algolia/client-analytics@npm:4.23.3"
97 dependencies:
98 "@algolia/client-common": "npm:4.23.3"
99 "@algolia/client-search": "npm:4.23.3"
100 "@algolia/requester-common": "npm:4.23.3"
101 "@algolia/transporter": "npm:4.23.3"
102 checksum: 10c0/afefe82f8bb9953d08b169bde82aba3e748563723a2126db78b451b2ba9b942f981194e46fde250c8dc0c55d1d90a3c1c2c85566bd300e8d796fbd3a53d97ce9
103 languageName: node
104 linkType: hard
105
106"@algolia/client-common@npm:4.23.3":
107 version: 4.23.3
108 resolution: "@algolia/client-common@npm:4.23.3"
109 dependencies:
110 "@algolia/requester-common": "npm:4.23.3"
111 "@algolia/transporter": "npm:4.23.3"
112 checksum: 10c0/548afe2e552740f65c6fb6a2af4d8de2d4f285ec8186eb14de7d393a5b2c134598f250c68433b7f63ce82e68e5dfb31c0dcf2984d3a0989d062897a33c1a8097
113 languageName: node
114 linkType: hard
115
116"@algolia/client-personalization@npm:4.23.3":
117 version: 4.23.3
118 resolution: "@algolia/client-personalization@npm:4.23.3"
119 dependencies:
120 "@algolia/client-common": "npm:4.23.3"
121 "@algolia/requester-common": "npm:4.23.3"
122 "@algolia/transporter": "npm:4.23.3"
123 checksum: 10c0/b05af1a4e19b8379ae094b146945618fe1722b3770f93f8f5131be6733986ae6c0a3fd2d2b27f8f9cc89e09d587f1c75aec3391a5686bd8d8593ca0157319a9d
124 languageName: node
125 linkType: hard
126
127"@algolia/client-search@npm:4.23.3":
128 version: 4.23.3
129 resolution: "@algolia/client-search@npm:4.23.3"
130 dependencies:
131 "@algolia/client-common": "npm:4.23.3"
132 "@algolia/requester-common": "npm:4.23.3"
133 "@algolia/transporter": "npm:4.23.3"
134 checksum: 10c0/102cf8959707cd4c6aeafc1273230076b296acfe9ee4c981104e6f9116e0441fa5138c49d56c2d3447c16b31be3928061b6eaf6f85f8770bb6f931ba7abb467a
135 languageName: node
136 linkType: hard
137
138"@algolia/events@npm:^4.0.1":
139 version: 4.0.1
140 resolution: "@algolia/events@npm:4.0.1"
141 checksum: 10c0/f398d815c6ed21ac08f6caadf1e9155add74ac05d99430191c3b1f1335fd91deaf468c6b304e6225c9885d3d44c06037c53def101e33d9c22daff175b2a65ca9
142 languageName: node
143 linkType: hard
144
145"@algolia/logger-common@npm:4.23.3":
146 version: 4.23.3
147 resolution: "@algolia/logger-common@npm:4.23.3"
148 checksum: 10c0/bc35f273f94afbbe38270f5f07134c8e49d95b361fdfc35ea6b55c41ccb9ccc4844798a8286f523fbce83096981d068ae966d20a509fed1398b0f7bdf864534a
149 languageName: node
150 linkType: hard
151
152"@algolia/logger-console@npm:4.23.3":
153 version: 4.23.3
154 resolution: "@algolia/logger-console@npm:4.23.3"
155 dependencies:
156 "@algolia/logger-common": "npm:4.23.3"
157 checksum: 10c0/daeaf670f982dfba30570c56335d18312546c49f12f44c1861ecfcb3f3fe88e275ba941046024233cc3f26cf096bcc14c1a234c14e6edae1fb91c6c5fbaac7ab
158 languageName: node
159 linkType: hard
160
161"@algolia/recommend@npm:4.23.3":
162 version: 4.23.3
163 resolution: "@algolia/recommend@npm:4.23.3"
164 dependencies:
165 "@algolia/cache-browser-local-storage": "npm:4.23.3"
166 "@algolia/cache-common": "npm:4.23.3"
167 "@algolia/cache-in-memory": "npm:4.23.3"
168 "@algolia/client-common": "npm:4.23.3"
169 "@algolia/client-search": "npm:4.23.3"
170 "@algolia/logger-common": "npm:4.23.3"
171 "@algolia/logger-console": "npm:4.23.3"
172 "@algolia/requester-browser-xhr": "npm:4.23.3"
173 "@algolia/requester-common": "npm:4.23.3"
174 "@algolia/requester-node-http": "npm:4.23.3"
175 "@algolia/transporter": "npm:4.23.3"
176 checksum: 10c0/ec81b3e3fdfb07b648fa0928853fc40f5e72fccf219c9ec59972b0dd2382a9a3ce8eef5106aa8e2dc287cc6c4f79ce1761e7c46ee6d4b535941c7621b0f0359b
177 languageName: node
178 linkType: hard
179
180"@algolia/requester-browser-xhr@npm:4.23.3":
181 version: 4.23.3
182 resolution: "@algolia/requester-browser-xhr@npm:4.23.3"
183 dependencies:
184 "@algolia/requester-common": "npm:4.23.3"
185 checksum: 10c0/cab4cbe607ce5d2c9ea756fb4712d676d3ade539e733d67563212b00027542c8f2ff402dc17573be47d49ea150afebf71716994547218a0fb0d23f6b72006650
186 languageName: node
187 linkType: hard
188
189"@algolia/requester-common@npm:4.23.3":
190 version: 4.23.3
191 resolution: "@algolia/requester-common@npm:4.23.3"
192 checksum: 10c0/49517da157b9fe1f17d684bc726432a6d474866ea0f50d876313dd073f652a414733f57fa571e2e2bdb16adc86006ed1be12ba12c32eebea4a679f017f0a6b90
193 languageName: node
194 linkType: hard
195
196"@algolia/requester-node-http@npm:4.23.3":
197 version: 4.23.3
198 resolution: "@algolia/requester-node-http@npm:4.23.3"
199 dependencies:
200 "@algolia/requester-common": "npm:4.23.3"
201 checksum: 10c0/e5b9256ec98f904439aa30b26274c4cde4a4b6581625f9e1a8659abd3a283d8e1e42b90e12d66597380bb0cd471b820db4103da0eef82d27703436ab05f3c580
202 languageName: node
203 linkType: hard
204
205"@algolia/transporter@npm:4.23.3":
206 version: 4.23.3
207 resolution: "@algolia/transporter@npm:4.23.3"
208 dependencies:
209 "@algolia/cache-common": "npm:4.23.3"
210 "@algolia/logger-common": "npm:4.23.3"
211 "@algolia/requester-common": "npm:4.23.3"
212 checksum: 10c0/60e3c12564edb2946b89897263730614386a7bebf83b538be0875e505736a9a262c2fad3aa50cb699174276deb2082d82fa095affce79081198d415ac718d4c1
213 languageName: node
214 linkType: hard
215
15"@ampproject/remapping@npm:^2.2.0": 216"@ampproject/remapping@npm:^2.2.0":
16 version: 2.2.1 217 version: 2.2.1
17 resolution: "@ampproject/remapping@npm:2.2.1" 218 resolution: "@ampproject/remapping@npm:2.2.1"
@@ -35,154 +236,144 @@ __metadata:
35 languageName: node 236 languageName: node
36 linkType: hard 237 linkType: hard
37 238
38"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.22.5": 239"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.24.1, @babel/code-frame@npm:^7.24.2, @babel/code-frame@npm:^7.8.3":
39 version: 7.23.5 240 version: 7.24.2
40 resolution: "@babel/code-frame@npm:7.23.5" 241 resolution: "@babel/code-frame@npm:7.24.2"
41 dependencies: 242 dependencies:
42 "@babel/highlight": "npm:^7.23.4" 243 "@babel/highlight": "npm:^7.24.2"
43 chalk: "npm:^2.4.2" 244 picocolors: "npm:^1.0.0"
44 checksum: 10c0/a10e843595ddd9f97faa99917414813c06214f4d9205294013e20c70fbdf4f943760da37dec1d998bf3e6fc20fa2918a47c0e987a7e458663feb7698063ad7c6 245 checksum: 10c0/d1d4cba89475ab6aab7a88242e1fd73b15ecb9f30c109b69752956434d10a26a52cbd37727c4eca104b6d45227bd1dfce39a6a6f4a14c9b2f07f871e968cf406
45 languageName: node 246 languageName: node
46 linkType: hard 247 linkType: hard
47 248
48"@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.18.8, @babel/compat-data@npm:^7.22.5": 249"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.5, @babel/compat-data@npm:^7.24.4":
49 version: 7.22.5 250 version: 7.24.4
50 resolution: "@babel/compat-data@npm:7.22.5" 251 resolution: "@babel/compat-data@npm:7.24.4"
51 checksum: 10c0/97f3c24a71b4e7d5f91c5807f6206a9cdb4123e595c51b34a19e9ea22b837003f969f732fde8819928d66e7b64047fd736c6717c8a1b96bf27fbfc30f6834aff 252 checksum: 10c0/9cd8a9cd28a5ca6db5d0e27417d609f95a8762b655e8c9c97fd2de08997043ae99f0139007083c5e607601c6122e8432c85fe391731b19bf26ad458fa0c60dd3
52 languageName: node 253 languageName: node
53 linkType: hard 254 linkType: hard
54 255
55"@babel/core@npm:^7.11.1, @babel/core@npm:^7.21.4": 256"@babel/core@npm:^7.11.1, @babel/core@npm:^7.19.6, @babel/core@npm:^7.21.4, @babel/core@npm:^7.23.3":
56 version: 7.22.5 257 version: 7.24.4
57 resolution: "@babel/core@npm:7.22.5" 258 resolution: "@babel/core@npm:7.24.4"
58 dependencies: 259 dependencies:
59 "@ampproject/remapping": "npm:^2.2.0" 260 "@ampproject/remapping": "npm:^2.2.0"
60 "@babel/code-frame": "npm:^7.22.5" 261 "@babel/code-frame": "npm:^7.24.2"
61 "@babel/generator": "npm:^7.22.5" 262 "@babel/generator": "npm:^7.24.4"
62 "@babel/helper-compilation-targets": "npm:^7.22.5" 263 "@babel/helper-compilation-targets": "npm:^7.23.6"
63 "@babel/helper-module-transforms": "npm:^7.22.5" 264 "@babel/helper-module-transforms": "npm:^7.23.3"
64 "@babel/helpers": "npm:^7.22.5" 265 "@babel/helpers": "npm:^7.24.4"
65 "@babel/parser": "npm:^7.22.5" 266 "@babel/parser": "npm:^7.24.4"
66 "@babel/template": "npm:^7.22.5" 267 "@babel/template": "npm:^7.24.0"
67 "@babel/traverse": "npm:^7.22.5" 268 "@babel/traverse": "npm:^7.24.1"
68 "@babel/types": "npm:^7.22.5" 269 "@babel/types": "npm:^7.24.0"
69 convert-source-map: "npm:^1.7.0" 270 convert-source-map: "npm:^2.0.0"
70 debug: "npm:^4.1.0" 271 debug: "npm:^4.1.0"
71 gensync: "npm:^1.0.0-beta.2" 272 gensync: "npm:^1.0.0-beta.2"
72 json5: "npm:^2.2.2" 273 json5: "npm:^2.2.3"
73 semver: "npm:^6.3.0" 274 semver: "npm:^6.3.1"
74 checksum: 10c0/c00e1474a41c18b669511dd1a1bd757d854cc8128218421a73c3b1c76b44fb22a57bbbd29a73b7a156cb1460af7a94602f81bed76b8d78c6ffae4de954b32a50 275 checksum: 10c0/fc136966583e64d6f84f4a676368de6ab4583aa87f867186068655b30ef67f21f8e65a88c6d446a7efd219ad7ffb9185c82e8a90183ee033f6f47b5026641e16
75 languageName: node 276 languageName: node
76 linkType: hard 277 linkType: hard
77 278
78"@babel/generator@npm:^7.22.5, @babel/generator@npm:^7.23.0": 279"@babel/generator@npm:^7.23.3, @babel/generator@npm:^7.24.1, @babel/generator@npm:^7.24.4":
79 version: 7.23.0 280 version: 7.24.4
80 resolution: "@babel/generator@npm:7.23.0" 281 resolution: "@babel/generator@npm:7.24.4"
81 dependencies: 282 dependencies:
82 "@babel/types": "npm:^7.23.0" 283 "@babel/types": "npm:^7.24.0"
83 "@jridgewell/gen-mapping": "npm:^0.3.2" 284 "@jridgewell/gen-mapping": "npm:^0.3.5"
84 "@jridgewell/trace-mapping": "npm:^0.3.17" 285 "@jridgewell/trace-mapping": "npm:^0.3.25"
85 jsesc: "npm:^2.5.1" 286 jsesc: "npm:^2.5.1"
86 checksum: 10c0/b7d8727c574119b5ef06e5d5d0d8d939527d51537db4b08273caebb18f3f2b1d4517b874776085e161fd47d28f26b22c08e7f270b64f43b2afd4a60c5936d6cd 287 checksum: 10c0/67a1b2f7cc985aaaa11b01e8ddd4fffa4f285837bc7a209738eb8203aa34bdafeb8507ed75fd883ddbabd641a036ca0a8d984e760f28ad4a9d60bff29d0a60bb
87 languageName: node 288 languageName: node
88 linkType: hard 289 linkType: hard
89 290
90"@babel/helper-annotate-as-pure@npm:^7.18.6": 291"@babel/helper-annotate-as-pure@npm:^7.22.5":
91 version: 7.18.6 292 version: 7.22.5
92 resolution: "@babel/helper-annotate-as-pure@npm:7.18.6" 293 resolution: "@babel/helper-annotate-as-pure@npm:7.22.5"
93 dependencies: 294 dependencies:
94 "@babel/types": "npm:^7.18.6" 295 "@babel/types": "npm:^7.22.5"
95 checksum: 10c0/e413cd022e1e21232c1ce98f3e1198ec5f4774c7eceb81155a45f9cb6d8481f3983c52f83252309856668e728c751f0340d29854b604530a694899208df6bcc3 296 checksum: 10c0/5a80dc364ddda26b334bbbc0f6426cab647381555ef7d0cd32eb284e35b867c012ce6ce7d52a64672ed71383099c99d32765b3d260626527bb0e3470b0f58e45
96 languageName: node 297 languageName: node
97 linkType: hard 298 linkType: hard
98 299
99"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.18.6": 300"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15":
100 version: 7.18.9 301 version: 7.22.15
101 resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.18.9" 302 resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15"
102 dependencies: 303 dependencies:
103 "@babel/helper-explode-assignable-expression": "npm:^7.18.6" 304 "@babel/types": "npm:^7.22.15"
104 "@babel/types": "npm:^7.18.9" 305 checksum: 10c0/2535e3824ca6337f65786bbac98e562f71699f25532cecd196f027d7698b4967a96953d64e36567956658ad1a05ccbdc62d1ba79ee751c79f4f1d2d3ecc2e01c
105 checksum: 10c0/8571b3cebdd3b80349aaa04e0c1595d8fc283aea7f3d7153dfba0d5fcb090e53f3fe98ca4c19ffa185e642a14ea2b97f11eccefc9be9185acca8916e68612c3f
106 languageName: node 306 languageName: node
107 linkType: hard 307 linkType: hard
108 308
109"@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.18.9, @babel/helper-compilation-targets@npm:^7.22.5": 309"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6":
110 version: 7.22.5 310 version: 7.23.6
111 resolution: "@babel/helper-compilation-targets@npm:7.22.5" 311 resolution: "@babel/helper-compilation-targets@npm:7.23.6"
112 dependencies: 312 dependencies:
113 "@babel/compat-data": "npm:^7.22.5" 313 "@babel/compat-data": "npm:^7.23.5"
114 "@babel/helper-validator-option": "npm:^7.22.5" 314 "@babel/helper-validator-option": "npm:^7.23.5"
115 browserslist: "npm:^4.21.3" 315 browserslist: "npm:^4.22.2"
116 lru-cache: "npm:^5.1.1" 316 lru-cache: "npm:^5.1.1"
117 semver: "npm:^6.3.0" 317 semver: "npm:^6.3.1"
118 peerDependencies: 318 checksum: 10c0/ba38506d11185f48b79abf439462ece271d3eead1673dd8814519c8c903c708523428806f05f2ec5efd0c56e4e278698fac967e5a4b5ee842c32415da54bc6fa
119 "@babel/core": ^7.0.0
120 checksum: 10c0/f36a2f27d970fa61b32090840ec847f73c6ada50becf7222c8778dd7ae07661c56f83d57e4c18437160e221512f91c442e3b86703741b45fc1277a548a6fd819
121 languageName: node 319 languageName: node
122 linkType: hard 320 linkType: hard
123 321
124"@babel/helper-create-class-features-plugin@npm:^7.18.6": 322"@babel/helper-create-class-features-plugin@npm:^7.24.1, @babel/helper-create-class-features-plugin@npm:^7.24.4":
125 version: 7.18.9 323 version: 7.24.4
126 resolution: "@babel/helper-create-class-features-plugin@npm:7.18.9" 324 resolution: "@babel/helper-create-class-features-plugin@npm:7.24.4"
127 dependencies: 325 dependencies:
128 "@babel/helper-annotate-as-pure": "npm:^7.18.6" 326 "@babel/helper-annotate-as-pure": "npm:^7.22.5"
129 "@babel/helper-environment-visitor": "npm:^7.18.9" 327 "@babel/helper-environment-visitor": "npm:^7.22.20"
130 "@babel/helper-function-name": "npm:^7.18.9" 328 "@babel/helper-function-name": "npm:^7.23.0"
131 "@babel/helper-member-expression-to-functions": "npm:^7.18.9" 329 "@babel/helper-member-expression-to-functions": "npm:^7.23.0"
132 "@babel/helper-optimise-call-expression": "npm:^7.18.6" 330 "@babel/helper-optimise-call-expression": "npm:^7.22.5"
133 "@babel/helper-replace-supers": "npm:^7.18.9" 331 "@babel/helper-replace-supers": "npm:^7.24.1"
134 "@babel/helper-split-export-declaration": "npm:^7.18.6" 332 "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5"
333 "@babel/helper-split-export-declaration": "npm:^7.22.6"
334 semver: "npm:^6.3.1"
135 peerDependencies: 335 peerDependencies:
136 "@babel/core": ^7.0.0 336 "@babel/core": ^7.0.0
137 checksum: 10c0/a5a10eaa776963c1a93a986f6f6f97d6c522f1c1bb168afae5f35ca1e569f29ecd4b81d70c3d0c41cccae22b5bf8c52a79210537892b9ce6981ddc2b1f835920 337 checksum: 10c0/6ebb38375dcd44c79f40008c2de4d023376cf436c135439f15c9c54603c2d6a8ada39b2e07be545da684d9e40b602a0cb0d1670f3877d056deb5f0d786c4bf86
138 languageName: node 338 languageName: node
139 linkType: hard 339 linkType: hard
140 340
141"@babel/helper-create-regexp-features-plugin@npm:^7.18.6": 341"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5":
142 version: 7.18.6 342 version: 7.22.15
143 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.18.6" 343 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15"
144 dependencies: 344 dependencies:
145 "@babel/helper-annotate-as-pure": "npm:^7.18.6" 345 "@babel/helper-annotate-as-pure": "npm:^7.22.5"
146 regexpu-core: "npm:^5.1.0" 346 regexpu-core: "npm:^5.3.1"
347 semver: "npm:^6.3.1"
147 peerDependencies: 348 peerDependencies:
148 "@babel/core": ^7.0.0 349 "@babel/core": ^7.0.0
149 checksum: 10c0/5151ae268376d9cd9a5fd97263dc2cf21f2c5043076331c9d0b4e4d7bbf8ae83ed1b0d366c5ddcb17c06329f9ed38e10e75b1dbc2dc040bbfab7d5604eada886 350 checksum: 10c0/8eba4c1b7b94a83e7a82df5c3e504584ff0ba6ab8710a67ecc2c434a7fb841a29c2f5c94d2de51f25446119a1df538fa90b37bd570db22ddd5e7147fe98277c6
150 languageName: node 351 languageName: node
151 linkType: hard 352 linkType: hard
152 353
153"@babel/helper-define-polyfill-provider@npm:^0.3.2, @babel/helper-define-polyfill-provider@npm:^0.3.3": 354"@babel/helper-define-polyfill-provider@npm:^0.6.1":
154 version: 0.3.3 355 version: 0.6.1
155 resolution: "@babel/helper-define-polyfill-provider@npm:0.3.3" 356 resolution: "@babel/helper-define-polyfill-provider@npm:0.6.1"
156 dependencies: 357 dependencies:
157 "@babel/helper-compilation-targets": "npm:^7.17.7" 358 "@babel/helper-compilation-targets": "npm:^7.22.6"
158 "@babel/helper-plugin-utils": "npm:^7.16.7" 359 "@babel/helper-plugin-utils": "npm:^7.22.5"
159 debug: "npm:^4.1.1" 360 debug: "npm:^4.1.1"
160 lodash.debounce: "npm:^4.0.8" 361 lodash.debounce: "npm:^4.0.8"
161 resolve: "npm:^1.14.2" 362 resolve: "npm:^1.14.2"
162 semver: "npm:^6.1.2"
163 peerDependencies: 363 peerDependencies:
164 "@babel/core": ^7.4.0-0 364 "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
165 checksum: 10c0/c3668f9ee2b76bfc08398756c504a8823e18bad05d0c2ee039b821c839e2b70f3b6ad8b7a3d3a6be434d981ed2af845a490aafecc50eaefb9b5099f2da156527 365 checksum: 10c0/210e1c8ac118f7c5a0ef5b42c4267c3db2f59b1ebc666a275d442b86896de4a66ef93539d702870f172f9749cd44c89f53056a5b17e619c3142b12ed4e4e6aae
166 languageName: node 366 languageName: node
167 linkType: hard 367 linkType: hard
168 368
169"@babel/helper-environment-visitor@npm:^7.18.9, @babel/helper-environment-visitor@npm:^7.22.20, @babel/helper-environment-visitor@npm:^7.22.5": 369"@babel/helper-environment-visitor@npm:^7.22.20":
170 version: 7.22.20 370 version: 7.22.20
171 resolution: "@babel/helper-environment-visitor@npm:7.22.20" 371 resolution: "@babel/helper-environment-visitor@npm:7.22.20"
172 checksum: 10c0/e762c2d8f5d423af89bd7ae9abe35bd4836d2eb401af868a63bbb63220c513c783e25ef001019418560b3fdc6d9a6fb67e6c0b650bcdeb3a2ac44b5c3d2bdd94 372 checksum: 10c0/e762c2d8f5d423af89bd7ae9abe35bd4836d2eb401af868a63bbb63220c513c783e25ef001019418560b3fdc6d9a6fb67e6c0b650bcdeb3a2ac44b5c3d2bdd94
173 languageName: node 373 languageName: node
174 linkType: hard 374 linkType: hard
175 375
176"@babel/helper-explode-assignable-expression@npm:^7.18.6": 376"@babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0":
177 version: 7.18.6
178 resolution: "@babel/helper-explode-assignable-expression@npm:7.18.6"
179 dependencies:
180 "@babel/types": "npm:^7.18.6"
181 checksum: 10c0/6e2fc5841fd849c840634e55b3a3f373167179bddb3d1c5fa2d7f63c3959425b8f87cd5c5ce5dcbb96e877a5033687840431b84a8e922c323f8e6aac9645db0b
182 languageName: node
183 linkType: hard
184
185"@babel/helper-function-name@npm:^7.18.9, @babel/helper-function-name@npm:^7.23.0":
186 version: 7.23.0 377 version: 7.23.0
187 resolution: "@babel/helper-function-name@npm:7.23.0" 378 resolution: "@babel/helper-function-name@npm:7.23.0"
188 dependencies: 379 dependencies:
@@ -192,7 +383,7 @@ __metadata:
192 languageName: node 383 languageName: node
193 linkType: hard 384 linkType: hard
194 385
195"@babel/helper-hoist-variables@npm:^7.18.6, @babel/helper-hoist-variables@npm:^7.22.5": 386"@babel/helper-hoist-variables@npm:^7.22.5":
196 version: 7.22.5 387 version: 7.22.5
197 resolution: "@babel/helper-hoist-variables@npm:7.22.5" 388 resolution: "@babel/helper-hoist-variables@npm:7.22.5"
198 dependencies: 389 dependencies:
@@ -201,84 +392,82 @@ __metadata:
201 languageName: node 392 languageName: node
202 linkType: hard 393 linkType: hard
203 394
204"@babel/helper-member-expression-to-functions@npm:^7.18.9": 395"@babel/helper-member-expression-to-functions@npm:^7.23.0":
205 version: 7.18.9 396 version: 7.23.0
206 resolution: "@babel/helper-member-expression-to-functions@npm:7.18.9" 397 resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0"
207 dependencies: 398 dependencies:
208 "@babel/types": "npm:^7.18.9" 399 "@babel/types": "npm:^7.23.0"
209 checksum: 10c0/a657703ef57b8932bad7299d9e351afc05b2f80b8380fd12e019651343dfdf2eb3efdaf3758278e19da89b86638b9d0b8023f5b5bc7853e256fe7f6289c18236 400 checksum: 10c0/b810daddf093ffd0802f1429052349ed9ea08ef7d0c56da34ffbcdecbdafac86f95bdea2fe30e0e0e629febc7dd41b56cb5eacc10d1a44336d37b755dac31fa4
210 languageName: node 401 languageName: node
211 linkType: hard 402 linkType: hard
212 403
213"@babel/helper-module-imports@npm:^7.10.4, @babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.18.6, @babel/helper-module-imports@npm:^7.22.5": 404"@babel/helper-module-imports@npm:^7.10.4, @babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.24.1, @babel/helper-module-imports@npm:^7.24.3":
214 version: 7.22.15 405 version: 7.24.3
215 resolution: "@babel/helper-module-imports@npm:7.22.15" 406 resolution: "@babel/helper-module-imports@npm:7.24.3"
216 dependencies: 407 dependencies:
217 "@babel/types": "npm:^7.22.15" 408 "@babel/types": "npm:^7.24.0"
218 checksum: 10c0/4e0d7fc36d02c1b8c8b3006dfbfeedf7a367d3334a04934255de5128115ea0bafdeb3e5736a2559917f0653e4e437400d54542da0468e08d3cbc86d3bbfa8f30 409 checksum: 10c0/052c188adcd100f5e8b6ff0c9643ddaabc58b6700d3bbbc26804141ad68375a9f97d9d173658d373d31853019e65f62610239e3295cdd58e573bdcb2fded188d
219 languageName: node 410 languageName: node
220 linkType: hard 411 linkType: hard
221 412
222"@babel/helper-module-transforms@npm:^7.18.6, @babel/helper-module-transforms@npm:^7.18.9, @babel/helper-module-transforms@npm:^7.22.5": 413"@babel/helper-module-transforms@npm:^7.23.3":
223 version: 7.22.5 414 version: 7.23.3
224 resolution: "@babel/helper-module-transforms@npm:7.22.5" 415 resolution: "@babel/helper-module-transforms@npm:7.23.3"
225 dependencies: 416 dependencies:
226 "@babel/helper-environment-visitor": "npm:^7.22.5" 417 "@babel/helper-environment-visitor": "npm:^7.22.20"
227 "@babel/helper-module-imports": "npm:^7.22.5" 418 "@babel/helper-module-imports": "npm:^7.22.15"
228 "@babel/helper-simple-access": "npm:^7.22.5" 419 "@babel/helper-simple-access": "npm:^7.22.5"
229 "@babel/helper-split-export-declaration": "npm:^7.22.5" 420 "@babel/helper-split-export-declaration": "npm:^7.22.6"
230 "@babel/helper-validator-identifier": "npm:^7.22.5" 421 "@babel/helper-validator-identifier": "npm:^7.22.20"
231 "@babel/template": "npm:^7.22.5" 422 peerDependencies:
232 "@babel/traverse": "npm:^7.22.5" 423 "@babel/core": ^7.0.0
233 "@babel/types": "npm:^7.22.5" 424 checksum: 10c0/211e1399d0c4993671e8e5c2b25383f08bee40004ace5404ed4065f0e9258cc85d99c1b82fd456c030ce5cfd4d8f310355b54ef35de9924eabfc3dff1331d946
234 checksum: 10c0/a28cf9a91ed657392f75ada08d96a46e8d0df420b7d5d1ac0bb1633d1404807d0cb6e6a3b0666c747d30f378fbb34985d30c6f25e2fcdd69dc58656e47aafe92
235 languageName: node 425 languageName: node
236 linkType: hard 426 linkType: hard
237 427
238"@babel/helper-optimise-call-expression@npm:^7.18.6": 428"@babel/helper-optimise-call-expression@npm:^7.22.5":
239 version: 7.18.6 429 version: 7.22.5
240 resolution: "@babel/helper-optimise-call-expression@npm:7.18.6" 430 resolution: "@babel/helper-optimise-call-expression@npm:7.22.5"
241 dependencies: 431 dependencies:
242 "@babel/types": "npm:^7.18.6" 432 "@babel/types": "npm:^7.22.5"
243 checksum: 10c0/f1352ebc5d9abae6088e7d9b4b6b445c406ba552ef61e967ec77d005ff65752265b002b6faaf16cc293f9e37753760ef05c1f4b26cda1039256917022ba5669c 433 checksum: 10c0/31b41a764fc3c585196cf5b776b70cf4705c132e4ce9723f39871f215f2ddbfb2e28a62f9917610f67c8216c1080482b9b05f65dd195dae2a52cef461f2ac7b8
244 languageName: node 434 languageName: node
245 linkType: hard 435 linkType: hard
246 436
247"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.16.7, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.18.9, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": 437"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.0, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3":
248 version: 7.19.0 438 version: 7.24.0
249 resolution: "@babel/helper-plugin-utils@npm:7.19.0" 439 resolution: "@babel/helper-plugin-utils@npm:7.24.0"
250 checksum: 10c0/9ae9c09cf7e3b6023be2bb66f3ca3b5fa8c2b21b58bd09819d494fcd7ab2a1844056c8dfd609ffb474e3c857a1bc979fa7a60931b0c71d69a3e939ba724498ac 440 checksum: 10c0/90f41bd1b4dfe7226b1d33a4bb745844c5c63e400f9e4e8bf9103a7ceddd7d425d65333b564d9daba3cebd105985764d51b4bd4c95822b97c2e3ac1201a8a5da
251 languageName: node 441 languageName: node
252 linkType: hard 442 linkType: hard
253 443
254"@babel/helper-remap-async-to-generator@npm:^7.18.6, @babel/helper-remap-async-to-generator@npm:^7.18.9": 444"@babel/helper-remap-async-to-generator@npm:^7.22.20":
255 version: 7.18.9 445 version: 7.22.20
256 resolution: "@babel/helper-remap-async-to-generator@npm:7.18.9" 446 resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20"
257 dependencies: 447 dependencies:
258 "@babel/helper-annotate-as-pure": "npm:^7.18.6" 448 "@babel/helper-annotate-as-pure": "npm:^7.22.5"
259 "@babel/helper-environment-visitor": "npm:^7.18.9" 449 "@babel/helper-environment-visitor": "npm:^7.22.20"
260 "@babel/helper-wrap-function": "npm:^7.18.9" 450 "@babel/helper-wrap-function": "npm:^7.22.20"
261 "@babel/types": "npm:^7.18.9"
262 peerDependencies: 451 peerDependencies:
263 "@babel/core": ^7.0.0 452 "@babel/core": ^7.0.0
264 checksum: 10c0/e6b2a906bdb3ec40d9cee7b7f8d02a561334603a0c57406a37c77d301ca77412ff33f2cef9d89421d7c3b1359604d613c596621a2ff22129612213198c5d1527 453 checksum: 10c0/aa93aa74250b636d477e8d863fbe59d4071f8c2654841b7ac608909e480c1cf3ff7d7af5a4038568829ad09d810bb681668cbe497d9c89ba5c352793dc9edf1e
265 languageName: node 454 languageName: node
266 linkType: hard 455 linkType: hard
267 456
268"@babel/helper-replace-supers@npm:^7.18.6, @babel/helper-replace-supers@npm:^7.18.9": 457"@babel/helper-replace-supers@npm:^7.24.1":
269 version: 7.18.9 458 version: 7.24.1
270 resolution: "@babel/helper-replace-supers@npm:7.18.9" 459 resolution: "@babel/helper-replace-supers@npm:7.24.1"
271 dependencies: 460 dependencies:
272 "@babel/helper-environment-visitor": "npm:^7.18.9" 461 "@babel/helper-environment-visitor": "npm:^7.22.20"
273 "@babel/helper-member-expression-to-functions": "npm:^7.18.9" 462 "@babel/helper-member-expression-to-functions": "npm:^7.23.0"
274 "@babel/helper-optimise-call-expression": "npm:^7.18.6" 463 "@babel/helper-optimise-call-expression": "npm:^7.22.5"
275 "@babel/traverse": "npm:^7.18.9" 464 peerDependencies:
276 "@babel/types": "npm:^7.18.9" 465 "@babel/core": ^7.0.0
277 checksum: 10c0/be2f46da56e62300b8c9ff8fab894714f9f914f3c55ae7d0588c6703e944c7bd97eee1c218badf5ec6cf0d1422b2a3659825066c2bee39a308fa090ddd94433a 466 checksum: 10c0/d39a3df7892b7c3c0e307fb229646168a9bd35e26a72080c2530729322600e8cff5f738f44a14860a2358faffa741b6a6a0d6749f113387b03ddbfa0ec10e1a0
278 languageName: node 467 languageName: node
279 linkType: hard 468 linkType: hard
280 469
281"@babel/helper-simple-access@npm:^7.18.6, @babel/helper-simple-access@npm:^7.22.5": 470"@babel/helper-simple-access@npm:^7.22.5":
282 version: 7.22.5 471 version: 7.22.5
283 resolution: "@babel/helper-simple-access@npm:7.22.5" 472 resolution: "@babel/helper-simple-access@npm:7.22.5"
284 dependencies: 473 dependencies:
@@ -287,16 +476,16 @@ __metadata:
287 languageName: node 476 languageName: node
288 linkType: hard 477 linkType: hard
289 478
290"@babel/helper-skip-transparent-expression-wrappers@npm:^7.18.9": 479"@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5":
291 version: 7.18.9 480 version: 7.22.5
292 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.18.9" 481 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5"
293 dependencies: 482 dependencies:
294 "@babel/types": "npm:^7.18.9" 483 "@babel/types": "npm:^7.22.5"
295 checksum: 10c0/243996398085f93ccde0174beffae3fd1c0d2a762df61713b32f1bd01b16e6eaccb47f38437706b2239e2b26673412e500e380c4b1f2413f801df4c7a6805e78 484 checksum: 10c0/ab7fa2aa709ab49bb8cd86515a1e715a3108c4bb9a616965ba76b43dc346dee66d1004ccf4d222b596b6224e43e04cbc5c3a34459501b388451f8c589fbc3691
296 languageName: node 485 languageName: node
297 linkType: hard 486 linkType: hard
298 487
299"@babel/helper-split-export-declaration@npm:^7.18.6, @babel/helper-split-export-declaration@npm:^7.22.5, @babel/helper-split-export-declaration@npm:^7.22.6": 488"@babel/helper-split-export-declaration@npm:^7.22.6":
300 version: 7.22.6 489 version: 7.22.6
301 resolution: "@babel/helper-split-export-declaration@npm:7.22.6" 490 resolution: "@babel/helper-split-export-declaration@npm:7.22.6"
302 dependencies: 491 dependencies:
@@ -305,859 +494,1038 @@ __metadata:
305 languageName: node 494 languageName: node
306 linkType: hard 495 linkType: hard
307 496
308"@babel/helper-string-parser@npm:^7.22.5": 497"@babel/helper-string-parser@npm:^7.23.4":
309 version: 7.22.5 498 version: 7.24.1
310 resolution: "@babel/helper-string-parser@npm:7.22.5" 499 resolution: "@babel/helper-string-parser@npm:7.24.1"
311 checksum: 10c0/6b0ff8af724377ec41e5587fffa7605198da74cb8e7d8d48a36826df0c0ba210eb9fedb3d9bef4d541156e0bd11040f021945a6cbb731ccec4aefb4affa17aa4 500 checksum: 10c0/2f9bfcf8d2f9f083785df0501dbab92770111ece2f90d120352fda6dd2a7d47db11b807d111e6f32aa1ba6d763fe2dc6603d153068d672a5d0ad33ca802632b2
312 languageName: node 501 languageName: node
313 linkType: hard 502 linkType: hard
314 503
315"@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.22.20, @babel/helper-validator-identifier@npm:^7.22.5": 504"@babel/helper-validator-identifier@npm:^7.22.20":
316 version: 7.22.20 505 version: 7.22.20
317 resolution: "@babel/helper-validator-identifier@npm:7.22.20" 506 resolution: "@babel/helper-validator-identifier@npm:7.22.20"
318 checksum: 10c0/dcad63db345fb110e032de46c3688384b0008a42a4845180ce7cd62b1a9c0507a1bed727c4d1060ed1a03ae57b4d918570259f81724aaac1a5b776056f37504e 507 checksum: 10c0/dcad63db345fb110e032de46c3688384b0008a42a4845180ce7cd62b1a9c0507a1bed727c4d1060ed1a03ae57b4d918570259f81724aaac1a5b776056f37504e
319 languageName: node 508 languageName: node
320 linkType: hard 509 linkType: hard
321 510
322"@babel/helper-validator-option@npm:^7.18.6, @babel/helper-validator-option@npm:^7.22.5": 511"@babel/helper-validator-option@npm:^7.23.5":
323 version: 7.22.5 512 version: 7.23.5
324 resolution: "@babel/helper-validator-option@npm:7.22.5" 513 resolution: "@babel/helper-validator-option@npm:7.23.5"
325 checksum: 10c0/23e310bf1b90d085b1ae250f31d423fb6cc004da882f0d3409266e5e4c7fd41ed0a172283a6a9a16083c5f2e11f987b32c815c80c60d9a948e23dd6dcf2e0437 514 checksum: 10c0/af45d5c0defb292ba6fd38979e8f13d7da63f9623d8ab9ededc394f67eb45857d2601278d151ae9affb6e03d5d608485806cd45af08b4468a0515cf506510e94
326 languageName: node 515 languageName: node
327 linkType: hard 516 linkType: hard
328 517
329"@babel/helper-wrap-function@npm:^7.18.9": 518"@babel/helper-wrap-function@npm:^7.22.20":
330 version: 7.18.11 519 version: 7.22.20
331 resolution: "@babel/helper-wrap-function@npm:7.18.11" 520 resolution: "@babel/helper-wrap-function@npm:7.22.20"
332 dependencies: 521 dependencies:
333 "@babel/helper-function-name": "npm:^7.18.9" 522 "@babel/helper-function-name": "npm:^7.22.5"
334 "@babel/template": "npm:^7.18.10" 523 "@babel/template": "npm:^7.22.15"
335 "@babel/traverse": "npm:^7.18.11" 524 "@babel/types": "npm:^7.22.19"
336 "@babel/types": "npm:^7.18.10" 525 checksum: 10c0/97b5f42ff4d305318ff2f99a5f59d3e97feff478333b2d893c4f85456d3c66372070f71d7bf9141f598c8cf2741c49a15918193633c427a88d170d98eb8c46eb
337 checksum: 10c0/ea8370f87ad5b25624737320b9e7c9d29f0b772d497ae836a08cf698a396303d0adc19dc2e3eaa46f56be52e4ed2da94363c5fdf7ea45c63081db6a61b66c389
338 languageName: node 526 languageName: node
339 linkType: hard 527 linkType: hard
340 528
341"@babel/helpers@npm:^7.22.5": 529"@babel/helpers@npm:^7.24.4":
342 version: 7.22.5 530 version: 7.24.4
343 resolution: "@babel/helpers@npm:7.22.5" 531 resolution: "@babel/helpers@npm:7.24.4"
344 dependencies: 532 dependencies:
345 "@babel/template": "npm:^7.22.5" 533 "@babel/template": "npm:^7.24.0"
346 "@babel/traverse": "npm:^7.22.5" 534 "@babel/traverse": "npm:^7.24.1"
347 "@babel/types": "npm:^7.22.5" 535 "@babel/types": "npm:^7.24.0"
348 checksum: 10c0/efa2d0fc2107e270782a784af3a52e5e0b97187b7b34feeeeb00454bc322e802ff4007b22410c387c05580c793f517c4bafc8a6a3acfdb0e3a1b349728f270c4 536 checksum: 10c0/747ef62b7fe87de31a2f3c19ff337a86cbb79be2f6c18af63133b614ab5a8f6da5b06ae4b06fb0e71271cb6a27efec6f8b6c9f44c60b8a18777832dc7929e6c5
349 languageName: node 537 languageName: node
350 linkType: hard 538 linkType: hard
351 539
352"@babel/highlight@npm:^7.23.4": 540"@babel/highlight@npm:^7.24.2":
353 version: 7.23.4 541 version: 7.24.2
354 resolution: "@babel/highlight@npm:7.23.4" 542 resolution: "@babel/highlight@npm:7.24.2"
355 dependencies: 543 dependencies:
356 "@babel/helper-validator-identifier": "npm:^7.22.20" 544 "@babel/helper-validator-identifier": "npm:^7.22.20"
357 chalk: "npm:^2.4.2" 545 chalk: "npm:^2.4.2"
358 js-tokens: "npm:^4.0.0" 546 js-tokens: "npm:^4.0.0"
359 checksum: 10c0/fbff9fcb2f5539289c3c097d130e852afd10d89a3a08ac0b5ebebbc055cc84a4bcc3dcfed463d488cde12dd0902ef1858279e31d7349b2e8cee43913744bda33 547 picocolors: "npm:^1.0.0"
548 checksum: 10c0/98ce00321daedeed33a4ed9362dc089a70375ff1b3b91228b9f05e6591d387a81a8cba68886e207861b8871efa0bc997ceabdd9c90f6cce3ee1b2f7f941b42db
360 languageName: node 549 languageName: node
361 linkType: hard 550 linkType: hard
362 551
363"@babel/parser@npm:^7.21.4, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.22.5, @babel/parser@npm:^7.23.0": 552"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.4, @babel/parser@npm:^7.24.0, @babel/parser@npm:^7.24.1, @babel/parser@npm:^7.24.4":
364 version: 7.23.0 553 version: 7.24.4
365 resolution: "@babel/parser@npm:7.23.0" 554 resolution: "@babel/parser@npm:7.24.4"
366 bin: 555 bin:
367 parser: ./bin/babel-parser.js 556 parser: ./bin/babel-parser.js
368 checksum: 10c0/ab4ea9360ed4ba3c728c5a9bf33035103ebde20a7e943c4ae1d42becb02a313d731d12a93c795c5a19777031e4022e64b92a52262eda902522a1a18649826283 557 checksum: 10c0/8381e1efead5069cb7ed2abc3a583f4a86289b2f376c75cecc69f59a8eb36df18274b1886cecf2f97a6a0dff5334b27330f58535be9b3e4e26102cc50e12eac8
369 languageName: node 558 languageName: node
370 linkType: hard 559 linkType: hard
371 560
372"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.18.6": 561"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.4":
373 version: 7.18.6 562 version: 7.24.4
374 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.18.6" 563 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.4"
375 dependencies: 564 dependencies:
376 "@babel/helper-plugin-utils": "npm:^7.18.6" 565 "@babel/helper-environment-visitor": "npm:^7.22.20"
566 "@babel/helper-plugin-utils": "npm:^7.24.0"
567 peerDependencies:
568 "@babel/core": ^7.0.0
569 checksum: 10c0/9aed453a1a21e4fd29add0b4a2d82a2c6f43a47c80d28411f8327f2a714064bc93a6f622c701d263970e0d72d7901d28f7f51e91ba91a31306efe8f17c411182
570 languageName: node
571 linkType: hard
572
573"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.1":
574 version: 7.24.1
575 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.1"
576 dependencies:
577 "@babel/helper-plugin-utils": "npm:^7.24.0"
377 peerDependencies: 578 peerDependencies:
378 "@babel/core": ^7.0.0 579 "@babel/core": ^7.0.0
379 checksum: 10c0/be2cccfc101824428a860f8c71d2cd118a691a9ace5525197f3f0cba19a522006dc4f870405beece836452353076ac687aefda20d9d1491ea72ce51179057988 580 checksum: 10c0/d4e592e6fc4878654243d2e7b51ea86471b868a8cb09de29e73b65d2b64159990c6c198fd7c9c2af2e38b1cddf70206243792853c47384a84f829dada152f605
380 languageName: node 581 languageName: node
381 linkType: hard 582 linkType: hard
382 583
383"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.18.9": 584"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.1":
384 version: 7.18.9 585 version: 7.24.1
385 resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.18.9" 586 resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.1"
386 dependencies: 587 dependencies:
387 "@babel/helper-plugin-utils": "npm:^7.18.9" 588 "@babel/helper-plugin-utils": "npm:^7.24.0"
388 "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.18.9" 589 "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5"
389 "@babel/plugin-proposal-optional-chaining": "npm:^7.18.9" 590 "@babel/plugin-transform-optional-chaining": "npm:^7.24.1"
390 peerDependencies: 591 peerDependencies:
391 "@babel/core": ^7.13.0 592 "@babel/core": ^7.13.0
392 checksum: 10c0/09258c9cf1d1303663d9152ca693bc4ff2ef2f9c6c71ce130b32b96c1a199a73da75e38a3b75ff156b9f070aaab2b816891570a8292ce40ff8edf33b567d631d 593 checksum: 10c0/351c36e45795a7890d610ab9041a52f4078a59429f6e74c281984aa44149a10d43e82b3a8172c703c0d5679471e165d1c02b6d2e45a677958ee301b89403f202
393 languageName: node 594 languageName: node
394 linkType: hard 595 linkType: hard
395 596
396"@babel/plugin-proposal-async-generator-functions@npm:^7.18.10": 597"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.1":
397 version: 7.18.10 598 version: 7.24.1
398 resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.18.10" 599 resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.1"
399 dependencies: 600 dependencies:
400 "@babel/helper-environment-visitor": "npm:^7.18.9" 601 "@babel/helper-environment-visitor": "npm:^7.22.20"
401 "@babel/helper-plugin-utils": "npm:^7.18.9" 602 "@babel/helper-plugin-utils": "npm:^7.24.0"
402 "@babel/helper-remap-async-to-generator": "npm:^7.18.9" 603 peerDependencies:
403 "@babel/plugin-syntax-async-generators": "npm:^7.8.4" 604 "@babel/core": ^7.0.0
605 checksum: 10c0/d7dd5a59a54635a3152895dcaa68f3370bb09d1f9906c1e72232ff759159e6be48de4a598a993c986997280a2dc29922a48aaa98020f16439f3f57ad72788354
606 languageName: node
607 linkType: hard
608
609"@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2":
610 version: 7.21.0-placeholder-for-preset-env.2
611 resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2"
404 peerDependencies: 612 peerDependencies:
405 "@babel/core": ^7.0.0-0 613 "@babel/core": ^7.0.0-0
406 checksum: 10c0/3681e66e993cdc919cc6ed1890c970acce10eaff91d401a2f10cfc1cdc55ed0ef52aecfdf7c587dfc03bb90749efda539b2d62010e406206f82eae502cc56641 614 checksum: 10c0/e605e0070da087f6c35579499e65801179a521b6842c15181a1e305c04fded2393f11c1efd09b087be7f8b083d1b75e8f3efcbc1292b4f60d3369e14812cff63
407 languageName: node 615 languageName: node
408 linkType: hard 616 linkType: hard
409 617
410"@babel/plugin-proposal-class-properties@npm:^7.18.6": 618"@babel/plugin-syntax-async-generators@npm:^7.8.4":
411 version: 7.18.6 619 version: 7.8.4
412 resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" 620 resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4"
413 dependencies: 621 dependencies:
414 "@babel/helper-create-class-features-plugin": "npm:^7.18.6" 622 "@babel/helper-plugin-utils": "npm:^7.8.0"
415 "@babel/helper-plugin-utils": "npm:^7.18.6"
416 peerDependencies: 623 peerDependencies:
417 "@babel/core": ^7.0.0-0 624 "@babel/core": ^7.0.0-0
418 checksum: 10c0/d5172ac6c9948cdfc387e94f3493ad86cb04035cf7433f86b5d358270b1b9752dc25e176db0c5d65892a246aca7bdb4636672e15626d7a7de4bc0bd0040168d9 625 checksum: 10c0/d13efb282838481348c71073b6be6245b35d4f2f964a8f71e4174f235009f929ef7613df25f8d2338e2d3e44bc4265a9f8638c6aaa136d7a61fe95985f9725c8
419 languageName: node 626 languageName: node
420 linkType: hard 627 linkType: hard
421 628
422"@babel/plugin-proposal-class-static-block@npm:^7.18.6": 629"@babel/plugin-syntax-class-properties@npm:^7.12.13":
423 version: 7.18.6 630 version: 7.12.13
424 resolution: "@babel/plugin-proposal-class-static-block@npm:7.18.6" 631 resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13"
425 dependencies: 632 dependencies:
426 "@babel/helper-create-class-features-plugin": "npm:^7.18.6" 633 "@babel/helper-plugin-utils": "npm:^7.12.13"
427 "@babel/helper-plugin-utils": "npm:^7.18.6"
428 "@babel/plugin-syntax-class-static-block": "npm:^7.14.5"
429 peerDependencies: 634 peerDependencies:
430 "@babel/core": ^7.12.0 635 "@babel/core": ^7.0.0-0
431 checksum: 10c0/129c6e53d20229a32924fc45fe72597f2c25131fa8c7da51a07d2c8971c7c815703e2a68a645da7872e17a90bb365e63fa813e47f51b62cb61f9e59fefdd71b6 636 checksum: 10c0/95168fa186416195280b1264fb18afcdcdcea780b3515537b766cb90de6ce042d42dd6a204a39002f794ae5845b02afb0fd4861a3308a861204a55e68310a120
432 languageName: node 637 languageName: node
433 linkType: hard 638 linkType: hard
434 639
435"@babel/plugin-proposal-dynamic-import@npm:^7.18.6": 640"@babel/plugin-syntax-class-static-block@npm:^7.14.5":
436 version: 7.18.6 641 version: 7.14.5
437 resolution: "@babel/plugin-proposal-dynamic-import@npm:7.18.6" 642 resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5"
438 dependencies: 643 dependencies:
439 "@babel/helper-plugin-utils": "npm:^7.18.6" 644 "@babel/helper-plugin-utils": "npm:^7.14.5"
440 "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3"
441 peerDependencies: 645 peerDependencies:
442 "@babel/core": ^7.0.0-0 646 "@babel/core": ^7.0.0-0
443 checksum: 10c0/99be9865edfd65a46afb97d877ea247a8e881b4d0246a1ea0adf6db04c92f4f0959bd2f6f706d73248a2a7167c34f2464c4863137ddb94deadc5c7cc8bfc3e72 647 checksum: 10c0/4464bf9115f4a2d02ce1454411baf9cfb665af1da53709c5c56953e5e2913745b0fcce82982a00463d6facbdd93445c691024e310b91431a1e2f024b158f6371
444 languageName: node 648 languageName: node
445 linkType: hard 649 linkType: hard
446 650
447"@babel/plugin-proposal-export-namespace-from@npm:^7.18.9": 651"@babel/plugin-syntax-dynamic-import@npm:^7.8.3":
448 version: 7.18.9 652 version: 7.8.3
449 resolution: "@babel/plugin-proposal-export-namespace-from@npm:7.18.9" 653 resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3"
450 dependencies: 654 dependencies:
451 "@babel/helper-plugin-utils": "npm:^7.18.9" 655 "@babel/helper-plugin-utils": "npm:^7.8.0"
452 "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3"
453 peerDependencies: 656 peerDependencies:
454 "@babel/core": ^7.0.0-0 657 "@babel/core": ^7.0.0-0
455 checksum: 10c0/b90346bd3628ebd44138d0628a5aba1e6b11748893fb48e87008cac30f3bc7cd3161362e49433156737350318174164436357a66fbbfdbe952606b460bd8a0e4 658 checksum: 10c0/9c50927bf71adf63f60c75370e2335879402648f468d0172bc912e303c6a3876927d8eb35807331b57f415392732ed05ab9b42c68ac30a936813ab549e0246c5
456 languageName: node 659 languageName: node
457 linkType: hard 660 linkType: hard
458 661
459"@babel/plugin-proposal-json-strings@npm:^7.18.6": 662"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3":
460 version: 7.18.6 663 version: 7.8.3
461 resolution: "@babel/plugin-proposal-json-strings@npm:7.18.6" 664 resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3"
462 dependencies: 665 dependencies:
463 "@babel/helper-plugin-utils": "npm:^7.18.6" 666 "@babel/helper-plugin-utils": "npm:^7.8.3"
464 "@babel/plugin-syntax-json-strings": "npm:^7.8.3"
465 peerDependencies: 667 peerDependencies:
466 "@babel/core": ^7.0.0-0 668 "@babel/core": ^7.0.0-0
467 checksum: 10c0/83f2ce41262a538ee43450044b9b0de320002473e4849421a7318c0500f9b0385c03d228f1be777ad71fd358aef13392e3551f0be52b5c423b0c34f7c9e5a06d 669 checksum: 10c0/5100d658ba563829700cd8d001ddc09f4c0187b1a13de300d729c5b3e87503f75a6d6c99c1794182f7f1a9f546ee009df4f15a0ce36376e206ed0012fa7cdc24
468 languageName: node 670 languageName: node
469 linkType: hard 671 linkType: hard
470 672
471"@babel/plugin-proposal-logical-assignment-operators@npm:^7.18.9": 673"@babel/plugin-syntax-import-assertions@npm:^7.24.1":
472 version: 7.18.9 674 version: 7.24.1
473 resolution: "@babel/plugin-proposal-logical-assignment-operators@npm:7.18.9" 675 resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.1"
474 dependencies: 676 dependencies:
475 "@babel/helper-plugin-utils": "npm:^7.18.9" 677 "@babel/helper-plugin-utils": "npm:^7.24.0"
476 "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4"
477 peerDependencies: 678 peerDependencies:
478 "@babel/core": ^7.0.0-0 679 "@babel/core": ^7.0.0-0
479 checksum: 10c0/d7abdc1fa4c2aa1fec2cd7cd649adab313e7837043d9ca166e043d3e1b4ece3b4c2a59b0c1dca2ed5a774b16ab688a407f85ad1d8256af3b2cd040678fc0a4dd 680 checksum: 10c0/72f0340d73e037f0702c61670054e0af66ece7282c5c2f4ba8de059390fee502de282defdf15959cd9f71aa18dc5c5e4e7a0fde317799a0600c6c4e0a656d82b
480 languageName: node 681 languageName: node
481 linkType: hard 682 linkType: hard
482 683
483"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.18.6": 684"@babel/plugin-syntax-import-attributes@npm:^7.24.1":
484 version: 7.18.6 685 version: 7.24.1
485 resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6" 686 resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.1"
486 dependencies: 687 dependencies:
487 "@babel/helper-plugin-utils": "npm:^7.18.6" 688 "@babel/helper-plugin-utils": "npm:^7.24.0"
488 "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3"
489 peerDependencies: 689 peerDependencies:
490 "@babel/core": ^7.0.0-0 690 "@babel/core": ^7.0.0-0
491 checksum: 10c0/f6629158196ee9f16295d16db75825092ef543f8b98f4dfdd516e642a0430c7b1d69319ee676d35485d9b86a53ade6de0b883490d44de6d4336d38cdeccbe0bf 691 checksum: 10c0/309634e3335777aee902552b2cf244c4a8050213cc878b3fb9d70ad8cbbff325dc46ac5e5791836ff477ea373b27832238205f6ceaff81f7ea7c4c7e8fbb13bb
492 languageName: node 692 languageName: node
493 linkType: hard 693 linkType: hard
494 694
495"@babel/plugin-proposal-numeric-separator@npm:^7.18.6": 695"@babel/plugin-syntax-import-meta@npm:^7.10.4":
496 version: 7.18.6 696 version: 7.10.4
497 resolution: "@babel/plugin-proposal-numeric-separator@npm:7.18.6" 697 resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4"
498 dependencies: 698 dependencies:
499 "@babel/helper-plugin-utils": "npm:^7.18.6" 699 "@babel/helper-plugin-utils": "npm:^7.10.4"
500 "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4"
501 peerDependencies: 700 peerDependencies:
502 "@babel/core": ^7.0.0-0 701 "@babel/core": ^7.0.0-0
503 checksum: 10c0/a83a65c6ec0d2293d830e9db61406d246f22d8ea03583d68460cb1b6330c6699320acce1b45f66ba3c357830720e49267e3d99f95088be457c66e6450fbfe3fa 702 checksum: 10c0/0b08b5e4c3128523d8e346f8cfc86824f0da2697b1be12d71af50a31aff7a56ceb873ed28779121051475010c28d6146a6bfea8518b150b71eeb4e46190172ee
504 languageName: node 703 languageName: node
505 linkType: hard 704 linkType: hard
506 705
507"@babel/plugin-proposal-object-rest-spread@npm:^7.18.9": 706"@babel/plugin-syntax-json-strings@npm:^7.8.3":
508 version: 7.18.9 707 version: 7.8.3
509 resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.18.9" 708 resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3"
510 dependencies: 709 dependencies:
511 "@babel/compat-data": "npm:^7.18.8" 710 "@babel/helper-plugin-utils": "npm:^7.8.0"
512 "@babel/helper-compilation-targets": "npm:^7.18.9"
513 "@babel/helper-plugin-utils": "npm:^7.18.9"
514 "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3"
515 "@babel/plugin-transform-parameters": "npm:^7.18.8"
516 peerDependencies: 711 peerDependencies:
517 "@babel/core": ^7.0.0-0 712 "@babel/core": ^7.0.0-0
518 checksum: 10c0/8e58aa40511897256f98dc558003ce3dd41073e30a9a63045eae1d5f4d9a599f5931670e19f3be62099b92be9381ccfa698c261101180dab2c257f23bde89e48 713 checksum: 10c0/e98f31b2ec406c57757d115aac81d0336e8434101c224edd9a5c93cefa53faf63eacc69f3138960c8b25401315af03df37f68d316c151c4b933136716ed6906e
519 languageName: node 714 languageName: node
520 linkType: hard 715 linkType: hard
521 716
522"@babel/plugin-proposal-optional-catch-binding@npm:^7.18.6": 717"@babel/plugin-syntax-jsx@npm:^7.23.3, @babel/plugin-syntax-jsx@npm:^7.24.1":
523 version: 7.18.6 718 version: 7.24.1
524 resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.18.6" 719 resolution: "@babel/plugin-syntax-jsx@npm:7.24.1"
525 dependencies: 720 dependencies:
526 "@babel/helper-plugin-utils": "npm:^7.18.6" 721 "@babel/helper-plugin-utils": "npm:^7.24.0"
527 "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3"
528 peerDependencies: 722 peerDependencies:
529 "@babel/core": ^7.0.0-0 723 "@babel/core": ^7.0.0-0
530 checksum: 10c0/ab20153d9e95e0b73004fdf86b6a2d219be2a0ace9ca76cd9eccddb680c913fec173bca54d761b1bc6044edde0a53811f3e515908c3b16d2d81cfec1e2e17391 724 checksum: 10c0/6cec76fbfe6ca81c9345c2904d8d9a8a0df222f9269f0962ed6eb2eb8f3f10c2f15e993d1ef09dbaf97726bf1792b5851cf5bd9a769f966a19448df6be95d19a
531 languageName: node 725 languageName: node
532 linkType: hard 726 linkType: hard
533 727
534"@babel/plugin-proposal-optional-chaining@npm:^7.18.9": 728"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4":
535 version: 7.18.9 729 version: 7.10.4
536 resolution: "@babel/plugin-proposal-optional-chaining@npm:7.18.9" 730 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4"
537 dependencies: 731 dependencies:
538 "@babel/helper-plugin-utils": "npm:^7.18.9" 732 "@babel/helper-plugin-utils": "npm:^7.10.4"
539 "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.18.9"
540 "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3"
541 peerDependencies: 733 peerDependencies:
542 "@babel/core": ^7.0.0-0 734 "@babel/core": ^7.0.0-0
543 checksum: 10c0/d28eadd292d615c8c97616b2ccef24ac0eb1fde7264dbd41a46df537b75f0038fd474e52409c5ee0e951e8d619020650c0e1cb47d2f856dae6f93bc1795f7611 735 checksum: 10c0/2594cfbe29411ad5bc2ad4058de7b2f6a8c5b86eda525a993959438615479e59c012c14aec979e538d60a584a1a799b60d1b8942c3b18468cb9d99b8fd34cd0b
544 languageName: node 736 languageName: node
545 linkType: hard 737 linkType: hard
546 738
547"@babel/plugin-proposal-private-methods@npm:^7.18.6": 739"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3":
548 version: 7.18.6 740 version: 7.8.3
549 resolution: "@babel/plugin-proposal-private-methods@npm:7.18.6" 741 resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3"
550 dependencies: 742 dependencies:
551 "@babel/helper-create-class-features-plugin": "npm:^7.18.6" 743 "@babel/helper-plugin-utils": "npm:^7.8.0"
552 "@babel/helper-plugin-utils": "npm:^7.18.6"
553 peerDependencies: 744 peerDependencies:
554 "@babel/core": ^7.0.0-0 745 "@babel/core": ^7.0.0-0
555 checksum: 10c0/1c273d0ec3d49d0fe80bd754ec0191016e5b3ab4fb1e162ac0c014e9d3c1517a5d973afbf8b6dc9f9c98a8605c79e5f9e8b5ee158a4313fa68d1ff7b02084b6a 746 checksum: 10c0/2024fbb1162899094cfc81152449b12bd0cc7053c6d4bda8ac2852545c87d0a851b1b72ed9560673cbf3ef6248257262c3c04aabf73117215c1b9cc7dd2542ce
556 languageName: node 747 languageName: node
557 linkType: hard 748 linkType: hard
558 749
559"@babel/plugin-proposal-private-property-in-object@npm:^7.18.6": 750"@babel/plugin-syntax-numeric-separator@npm:^7.10.4":
560 version: 7.18.6 751 version: 7.10.4
561 resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.18.6" 752 resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4"
562 dependencies: 753 dependencies:
563 "@babel/helper-annotate-as-pure": "npm:^7.18.6" 754 "@babel/helper-plugin-utils": "npm:^7.10.4"
564 "@babel/helper-create-class-features-plugin": "npm:^7.18.6"
565 "@babel/helper-plugin-utils": "npm:^7.18.6"
566 "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5"
567 peerDependencies: 755 peerDependencies:
568 "@babel/core": ^7.0.0-0 756 "@babel/core": ^7.0.0-0
569 checksum: 10c0/173496cb8b16879cf3dd09d91bd246c6db3dc2b4320950a5a4dc4d4395e7c9d7407e5e5313242bbafcb9466540ddcb36f7b07f279dd471c6585592a141ddae51 757 checksum: 10c0/c55a82b3113480942c6aa2fcbe976ff9caa74b7b1109ff4369641dfbc88d1da348aceb3c31b6ed311c84d1e7c479440b961906c735d0ab494f688bf2fd5b9bb9
570 languageName: node 758 languageName: node
571 linkType: hard 759 linkType: hard
572 760
573"@babel/plugin-proposal-unicode-property-regex@npm:^7.18.6, @babel/plugin-proposal-unicode-property-regex@npm:^7.4.4": 761"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3":
574 version: 7.18.6 762 version: 7.8.3
575 resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.18.6" 763 resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3"
576 dependencies: 764 dependencies:
577 "@babel/helper-create-regexp-features-plugin": "npm:^7.18.6" 765 "@babel/helper-plugin-utils": "npm:^7.8.0"
578 "@babel/helper-plugin-utils": "npm:^7.18.6"
579 peerDependencies: 766 peerDependencies:
580 "@babel/core": ^7.0.0-0 767 "@babel/core": ^7.0.0-0
581 checksum: 10c0/c68feae57d9b1f4d98ecc2da63bda1993980deb509ccb08f6eace712ece8081032eb6532c304524b544c2dd577e2f9c2fe5c5bfd73d1955c946300def6fc7493 768 checksum: 10c0/ee1eab52ea6437e3101a0a7018b0da698545230015fc8ab129d292980ec6dff94d265e9e90070e8ae5fed42f08f1622c14c94552c77bcac784b37f503a82ff26
582 languageName: node 769 languageName: node
583 linkType: hard 770 linkType: hard
584 771
585"@babel/plugin-syntax-async-generators@npm:^7.8.4": 772"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3":
586 version: 7.8.4 773 version: 7.8.3
587 resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" 774 resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3"
588 dependencies: 775 dependencies:
589 "@babel/helper-plugin-utils": "npm:^7.8.0" 776 "@babel/helper-plugin-utils": "npm:^7.8.0"
590 peerDependencies: 777 peerDependencies:
591 "@babel/core": ^7.0.0-0 778 "@babel/core": ^7.0.0-0
592 checksum: 10c0/d13efb282838481348c71073b6be6245b35d4f2f964a8f71e4174f235009f929ef7613df25f8d2338e2d3e44bc4265a9f8638c6aaa136d7a61fe95985f9725c8 779 checksum: 10c0/27e2493ab67a8ea6d693af1287f7e9acec206d1213ff107a928e85e173741e1d594196f99fec50e9dde404b09164f39dec5864c767212154ffe1caa6af0bc5af
593 languageName: node 780 languageName: node
594 linkType: hard 781 linkType: hard
595 782
596"@babel/plugin-syntax-class-properties@npm:^7.12.13": 783"@babel/plugin-syntax-optional-chaining@npm:^7.8.3":
597 version: 7.12.13 784 version: 7.8.3
598 resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" 785 resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3"
599 dependencies: 786 dependencies:
600 "@babel/helper-plugin-utils": "npm:^7.12.13" 787 "@babel/helper-plugin-utils": "npm:^7.8.0"
601 peerDependencies: 788 peerDependencies:
602 "@babel/core": ^7.0.0-0 789 "@babel/core": ^7.0.0-0
603 checksum: 10c0/95168fa186416195280b1264fb18afcdcdcea780b3515537b766cb90de6ce042d42dd6a204a39002f794ae5845b02afb0fd4861a3308a861204a55e68310a120 790 checksum: 10c0/46edddf2faa6ebf94147b8e8540dfc60a5ab718e2de4d01b2c0bdf250a4d642c2bd47cbcbb739febcb2bf75514dbcefad3c52208787994b8d0f8822490f55e81
604 languageName: node 791 languageName: node
605 linkType: hard 792 linkType: hard
606 793
607"@babel/plugin-syntax-class-static-block@npm:^7.14.5": 794"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5":
608 version: 7.14.5 795 version: 7.14.5
609 resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" 796 resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5"
610 dependencies: 797 dependencies:
611 "@babel/helper-plugin-utils": "npm:^7.14.5" 798 "@babel/helper-plugin-utils": "npm:^7.14.5"
612 peerDependencies: 799 peerDependencies:
613 "@babel/core": ^7.0.0-0 800 "@babel/core": ^7.0.0-0
614 checksum: 10c0/4464bf9115f4a2d02ce1454411baf9cfb665af1da53709c5c56953e5e2913745b0fcce82982a00463d6facbdd93445c691024e310b91431a1e2f024b158f6371 801 checksum: 10c0/69822772561706c87f0a65bc92d0772cea74d6bc0911537904a676d5ff496a6d3ac4e05a166d8125fce4a16605bace141afc3611074e170a994e66e5397787f3
615 languageName: node 802 languageName: node
616 linkType: hard 803 linkType: hard
617 804
618"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": 805"@babel/plugin-syntax-top-level-await@npm:^7.14.5":
619 version: 7.8.3 806 version: 7.14.5
620 resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" 807 resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5"
621 dependencies: 808 dependencies:
622 "@babel/helper-plugin-utils": "npm:^7.8.0" 809 "@babel/helper-plugin-utils": "npm:^7.14.5"
623 peerDependencies: 810 peerDependencies:
624 "@babel/core": ^7.0.0-0 811 "@babel/core": ^7.0.0-0
625 checksum: 10c0/9c50927bf71adf63f60c75370e2335879402648f468d0172bc912e303c6a3876927d8eb35807331b57f415392732ed05ab9b42c68ac30a936813ab549e0246c5 812 checksum: 10c0/14bf6e65d5bc1231ffa9def5f0ef30b19b51c218fcecaa78cd1bdf7939dfdf23f90336080b7f5196916368e399934ce5d581492d8292b46a2fb569d8b2da106f
626 languageName: node 813 languageName: node
627 linkType: hard 814 linkType: hard
628 815
629"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": 816"@babel/plugin-syntax-typescript@npm:^7.24.1":
630 version: 7.8.3 817 version: 7.24.1
631 resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" 818 resolution: "@babel/plugin-syntax-typescript@npm:7.24.1"
632 dependencies: 819 dependencies:
633 "@babel/helper-plugin-utils": "npm:^7.8.3" 820 "@babel/helper-plugin-utils": "npm:^7.24.0"
634 peerDependencies: 821 peerDependencies:
635 "@babel/core": ^7.0.0-0 822 "@babel/core": ^7.0.0-0
636 checksum: 10c0/5100d658ba563829700cd8d001ddc09f4c0187b1a13de300d729c5b3e87503f75a6d6c99c1794182f7f1a9f546ee009df4f15a0ce36376e206ed0012fa7cdc24 823 checksum: 10c0/7a81e277dcfe3138847e8e5944e02a42ff3c2e864aea6f33fd9b70d1556d12b0e70f0d56cc1985d353c91bcbf8fe163e6cc17418da21129b7f7f1d8b9ac00c93
637 languageName: node 824 languageName: node
638 linkType: hard 825 linkType: hard
639 826
640"@babel/plugin-syntax-import-assertions@npm:^7.18.6": 827"@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6":
641 version: 7.18.6 828 version: 7.18.6
642 resolution: "@babel/plugin-syntax-import-assertions@npm:7.18.6" 829 resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6"
643 dependencies: 830 dependencies:
831 "@babel/helper-create-regexp-features-plugin": "npm:^7.18.6"
644 "@babel/helper-plugin-utils": "npm:^7.18.6" 832 "@babel/helper-plugin-utils": "npm:^7.18.6"
645 peerDependencies: 833 peerDependencies:
834 "@babel/core": ^7.0.0
835 checksum: 10c0/9144e5b02a211a4fb9a0ce91063f94fbe1004e80bde3485a0910c9f14897cf83fabd8c21267907cff25db8e224858178df0517f14333cfcf3380ad9a4139cb50
836 languageName: node
837 linkType: hard
838
839"@babel/plugin-transform-arrow-functions@npm:^7.24.1":
840 version: 7.24.1
841 resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.1"
842 dependencies:
843 "@babel/helper-plugin-utils": "npm:^7.24.0"
844 peerDependencies:
646 "@babel/core": ^7.0.0-0 845 "@babel/core": ^7.0.0-0
647 checksum: 10c0/b2673462593bac392d09679b3f6273784d2c5b8424d5c9c37cc9318e66d190b585789f0ec8aea76a4eeb945210f3193757461e34f4ffec3a0011d338512f384d 846 checksum: 10c0/f44bfacf087dc21b422bab99f4e9344ee7b695b05c947dacae66de05c723ab9d91800be7edc1fa016185e8c819f3aca2b4a5f66d8a4d1e47d9bad80b8fa55b8e
648 languageName: node 847 languageName: node
649 linkType: hard 848 linkType: hard
650 849
651"@babel/plugin-syntax-json-strings@npm:^7.8.3": 850"@babel/plugin-transform-async-generator-functions@npm:^7.24.3":
652 version: 7.8.3 851 version: 7.24.3
653 resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" 852 resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.3"
654 dependencies: 853 dependencies:
655 "@babel/helper-plugin-utils": "npm:^7.8.0" 854 "@babel/helper-environment-visitor": "npm:^7.22.20"
855 "@babel/helper-plugin-utils": "npm:^7.24.0"
856 "@babel/helper-remap-async-to-generator": "npm:^7.22.20"
857 "@babel/plugin-syntax-async-generators": "npm:^7.8.4"
656 peerDependencies: 858 peerDependencies:
657 "@babel/core": ^7.0.0-0 859 "@babel/core": ^7.0.0-0
658 checksum: 10c0/e98f31b2ec406c57757d115aac81d0336e8434101c224edd9a5c93cefa53faf63eacc69f3138960c8b25401315af03df37f68d316c151c4b933136716ed6906e 860 checksum: 10c0/55ceed059f819dcccbfe69600bfa1c055ada466bd54eda117cfdd2cf773dd85799e2f6556e4a559b076e93b9704abcca2aef9d72aad7dc8a5d3d17886052f1d3
659 languageName: node 861 languageName: node
660 linkType: hard 862 linkType: hard
661 863
662"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": 864"@babel/plugin-transform-async-to-generator@npm:^7.24.1":
663 version: 7.10.4 865 version: 7.24.1
664 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" 866 resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.1"
665 dependencies: 867 dependencies:
666 "@babel/helper-plugin-utils": "npm:^7.10.4" 868 "@babel/helper-module-imports": "npm:^7.24.1"
869 "@babel/helper-plugin-utils": "npm:^7.24.0"
870 "@babel/helper-remap-async-to-generator": "npm:^7.22.20"
667 peerDependencies: 871 peerDependencies:
668 "@babel/core": ^7.0.0-0 872 "@babel/core": ^7.0.0-0
669 checksum: 10c0/2594cfbe29411ad5bc2ad4058de7b2f6a8c5b86eda525a993959438615479e59c012c14aec979e538d60a584a1a799b60d1b8942c3b18468cb9d99b8fd34cd0b 873 checksum: 10c0/3731ba8e83cbea1ab22905031f25b3aeb0b97c6467360a2cc685352f16e7c786417d8883bc747f5a0beff32266bdb12a05b6292e7b8b75967087200a7bc012c4
670 languageName: node 874 languageName: node
671 linkType: hard 875 linkType: hard
672 876
673"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": 877"@babel/plugin-transform-block-scoped-functions@npm:^7.24.1":
674 version: 7.8.3 878 version: 7.24.1
675 resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" 879 resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.1"
676 dependencies: 880 dependencies:
677 "@babel/helper-plugin-utils": "npm:^7.8.0" 881 "@babel/helper-plugin-utils": "npm:^7.24.0"
678 peerDependencies: 882 peerDependencies:
679 "@babel/core": ^7.0.0-0 883 "@babel/core": ^7.0.0-0
680 checksum: 10c0/2024fbb1162899094cfc81152449b12bd0cc7053c6d4bda8ac2852545c87d0a851b1b72ed9560673cbf3ef6248257262c3c04aabf73117215c1b9cc7dd2542ce 884 checksum: 10c0/6fbaa85f5204f34845dfc0bebf62fdd3ac5a286241c85651e59d426001e7a1785ac501f154e093e0b8ee49e1f51e3f8b06575a5ae8d4a9406d43e4816bf18c37
681 languageName: node 885 languageName: node
682 linkType: hard 886 linkType: hard
683 887
684"@babel/plugin-syntax-numeric-separator@npm:^7.10.4": 888"@babel/plugin-transform-block-scoping@npm:^7.24.4":
685 version: 7.10.4 889 version: 7.24.4
686 resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" 890 resolution: "@babel/plugin-transform-block-scoping@npm:7.24.4"
687 dependencies: 891 dependencies:
688 "@babel/helper-plugin-utils": "npm:^7.10.4" 892 "@babel/helper-plugin-utils": "npm:^7.24.0"
689 peerDependencies: 893 peerDependencies:
690 "@babel/core": ^7.0.0-0 894 "@babel/core": ^7.0.0-0
691 checksum: 10c0/c55a82b3113480942c6aa2fcbe976ff9caa74b7b1109ff4369641dfbc88d1da348aceb3c31b6ed311c84d1e7c479440b961906c735d0ab494f688bf2fd5b9bb9 895 checksum: 10c0/62f55fd1b60a115506e9553c3bf925179b1ab8a42dc31471c4e3ada20573a488b5c5e3317145da352493ef07f1d9750ce1f8a49cb3f39489ac1ab42e5ddc883d
692 languageName: node 896 languageName: node
693 linkType: hard 897 linkType: hard
694 898
695"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": 899"@babel/plugin-transform-class-properties@npm:^7.24.1":
696 version: 7.8.3 900 version: 7.24.1
697 resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" 901 resolution: "@babel/plugin-transform-class-properties@npm:7.24.1"
698 dependencies: 902 dependencies:
699 "@babel/helper-plugin-utils": "npm:^7.8.0" 903 "@babel/helper-create-class-features-plugin": "npm:^7.24.1"
904 "@babel/helper-plugin-utils": "npm:^7.24.0"
700 peerDependencies: 905 peerDependencies:
701 "@babel/core": ^7.0.0-0 906 "@babel/core": ^7.0.0-0
702 checksum: 10c0/ee1eab52ea6437e3101a0a7018b0da698545230015fc8ab129d292980ec6dff94d265e9e90070e8ae5fed42f08f1622c14c94552c77bcac784b37f503a82ff26 907 checksum: 10c0/00dff042ac9df4ae67b5ef98b1137cc72e0a24e6d911dc200540a8cb1f00b4cff367a922aeb22da17da662079f0abcd46ee1c5f4cdf37ceebf6ff1639bb9af27
703 languageName: node 908 languageName: node
704 linkType: hard 909 linkType: hard
705 910
706"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": 911"@babel/plugin-transform-class-static-block@npm:^7.24.4":
707 version: 7.8.3 912 version: 7.24.4
708 resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" 913 resolution: "@babel/plugin-transform-class-static-block@npm:7.24.4"
709 dependencies: 914 dependencies:
710 "@babel/helper-plugin-utils": "npm:^7.8.0" 915 "@babel/helper-create-class-features-plugin": "npm:^7.24.4"
916 "@babel/helper-plugin-utils": "npm:^7.24.0"
917 "@babel/plugin-syntax-class-static-block": "npm:^7.14.5"
918 peerDependencies:
919 "@babel/core": ^7.12.0
920 checksum: 10c0/19dfeaf4a2ac03695034f7211a8b5ad89103b224608ac3e91791055107c5fe4d7ebe5d9fbb31b4a91265694af78762260642eb270f4b239c175984ee4b253f80
921 languageName: node
922 linkType: hard
923
924"@babel/plugin-transform-classes@npm:^7.24.1":
925 version: 7.24.1
926 resolution: "@babel/plugin-transform-classes@npm:7.24.1"
927 dependencies:
928 "@babel/helper-annotate-as-pure": "npm:^7.22.5"
929 "@babel/helper-compilation-targets": "npm:^7.23.6"
930 "@babel/helper-environment-visitor": "npm:^7.22.20"
931 "@babel/helper-function-name": "npm:^7.23.0"
932 "@babel/helper-plugin-utils": "npm:^7.24.0"
933 "@babel/helper-replace-supers": "npm:^7.24.1"
934 "@babel/helper-split-export-declaration": "npm:^7.22.6"
935 globals: "npm:^11.1.0"
711 peerDependencies: 936 peerDependencies:
712 "@babel/core": ^7.0.0-0 937 "@babel/core": ^7.0.0-0
713 checksum: 10c0/27e2493ab67a8ea6d693af1287f7e9acec206d1213ff107a928e85e173741e1d594196f99fec50e9dde404b09164f39dec5864c767212154ffe1caa6af0bc5af 938 checksum: 10c0/586a95826be4d68056fa23d8e6c34353ce2ea59bf3ca8cf62bc784e60964d492d76e1b48760c43fd486ffb65a79d3fed9a4f91289e4f526f88c3b6acc0dfb00e
714 languageName: node 939 languageName: node
715 linkType: hard 940 linkType: hard
716 941
717"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": 942"@babel/plugin-transform-computed-properties@npm:^7.24.1":
718 version: 7.8.3 943 version: 7.24.1
719 resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" 944 resolution: "@babel/plugin-transform-computed-properties@npm:7.24.1"
720 dependencies: 945 dependencies:
721 "@babel/helper-plugin-utils": "npm:^7.8.0" 946 "@babel/helper-plugin-utils": "npm:^7.24.0"
947 "@babel/template": "npm:^7.24.0"
722 peerDependencies: 948 peerDependencies:
723 "@babel/core": ^7.0.0-0 949 "@babel/core": ^7.0.0-0
724 checksum: 10c0/46edddf2faa6ebf94147b8e8540dfc60a5ab718e2de4d01b2c0bdf250a4d642c2bd47cbcbb739febcb2bf75514dbcefad3c52208787994b8d0f8822490f55e81 950 checksum: 10c0/8292c508b656b7722e2c2ca0f6f31339852e3ed2b9b80f6e068a4010e961b431ca109ecd467fc906283f4b1574c1e7b1cb68d35a4dea12079d386c15ff7e0eac
725 languageName: node 951 languageName: node
726 linkType: hard 952 linkType: hard
727 953
728"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": 954"@babel/plugin-transform-destructuring@npm:^7.24.1":
729 version: 7.14.5 955 version: 7.24.1
730 resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" 956 resolution: "@babel/plugin-transform-destructuring@npm:7.24.1"
731 dependencies: 957 dependencies:
732 "@babel/helper-plugin-utils": "npm:^7.14.5" 958 "@babel/helper-plugin-utils": "npm:^7.24.0"
733 peerDependencies: 959 peerDependencies:
734 "@babel/core": ^7.0.0-0 960 "@babel/core": ^7.0.0-0
735 checksum: 10c0/69822772561706c87f0a65bc92d0772cea74d6bc0911537904a676d5ff496a6d3ac4e05a166d8125fce4a16605bace141afc3611074e170a994e66e5397787f3 961 checksum: 10c0/a08e706a9274a699abc3093f38c72d4a5354eac11c44572cc9ea049915b6e03255744297069fd94fcce82380725c5d6b1b11b9a84c0081aa3aa6fc2fdab98ef6
736 languageName: node 962 languageName: node
737 linkType: hard 963 linkType: hard
738 964
739"@babel/plugin-syntax-top-level-await@npm:^7.14.5": 965"@babel/plugin-transform-dotall-regex@npm:^7.24.1":
740 version: 7.14.5 966 version: 7.24.1
741 resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" 967 resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.1"
742 dependencies: 968 dependencies:
743 "@babel/helper-plugin-utils": "npm:^7.14.5" 969 "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15"
970 "@babel/helper-plugin-utils": "npm:^7.24.0"
744 peerDependencies: 971 peerDependencies:
745 "@babel/core": ^7.0.0-0 972 "@babel/core": ^7.0.0-0
746 checksum: 10c0/14bf6e65d5bc1231ffa9def5f0ef30b19b51c218fcecaa78cd1bdf7939dfdf23f90336080b7f5196916368e399934ce5d581492d8292b46a2fb569d8b2da106f 973 checksum: 10c0/758def705ec5a87ef910280dc2df5d2fda59dc5d4771c1725c7aed0988ae5b79e29aeb48109120301a3e1c6c03dfac84700469de06f38ca92c96834e09eadf5d
747 languageName: node 974 languageName: node
748 linkType: hard 975 linkType: hard
749 976
750"@babel/plugin-transform-arrow-functions@npm:^7.18.6": 977"@babel/plugin-transform-duplicate-keys@npm:^7.24.1":
751 version: 7.18.6 978 version: 7.24.1
752 resolution: "@babel/plugin-transform-arrow-functions@npm:7.18.6" 979 resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.1"
753 dependencies: 980 dependencies:
754 "@babel/helper-plugin-utils": "npm:^7.18.6" 981 "@babel/helper-plugin-utils": "npm:^7.24.0"
755 peerDependencies: 982 peerDependencies:
756 "@babel/core": ^7.0.0-0 983 "@babel/core": ^7.0.0-0
757 checksum: 10c0/0686ca62e04b8500f0b9238563ed133f796bd6e0f3d38d00e4c7ce1756b51aa13c3f1ee66123d881d3ac4057259325aed104d4db11ded4551ea776af36e4e45b 984 checksum: 10c0/41072f57f83a6c2b15f3ee0b6779cdca105ff3d98061efe92ac02d6c7b90fdb6e7e293b8a4d5b9c690d9ae5d3ae73e6bde4596dc4d8c66526a0e5e1abc73c88c
758 languageName: node 985 languageName: node
759 linkType: hard 986 linkType: hard
760 987
761"@babel/plugin-transform-async-to-generator@npm:^7.18.6": 988"@babel/plugin-transform-dynamic-import@npm:^7.24.1":
762 version: 7.18.6 989 version: 7.24.1
763 resolution: "@babel/plugin-transform-async-to-generator@npm:7.18.6" 990 resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.1"
764 dependencies: 991 dependencies:
765 "@babel/helper-module-imports": "npm:^7.18.6" 992 "@babel/helper-plugin-utils": "npm:^7.24.0"
766 "@babel/helper-plugin-utils": "npm:^7.18.6" 993 "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3"
767 "@babel/helper-remap-async-to-generator": "npm:^7.18.6"
768 peerDependencies: 994 peerDependencies:
769 "@babel/core": ^7.0.0-0 995 "@babel/core": ^7.0.0-0
770 checksum: 10c0/988bac0c376b412c3ca1dd24323219d7d2a1145aa58fe38325afb305ead46af65bf9d2145d24545175ddd54235ac94485c90f3fb9778b2088d16a87800f6fe65 996 checksum: 10c0/7e2834780e9b5251ef341854043a89c91473b83c335358620ca721554877e64e416aeb3288a35f03e825c4958e07d5d00ead08c4490fadc276a21fe151d812f1
771 languageName: node 997 languageName: node
772 linkType: hard 998 linkType: hard
773 999
774"@babel/plugin-transform-block-scoped-functions@npm:^7.18.6": 1000"@babel/plugin-transform-exponentiation-operator@npm:^7.24.1":
775 version: 7.18.6 1001 version: 7.24.1
776 resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.18.6" 1002 resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.1"
777 dependencies: 1003 dependencies:
778 "@babel/helper-plugin-utils": "npm:^7.18.6" 1004 "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.22.15"
1005 "@babel/helper-plugin-utils": "npm:^7.24.0"
779 peerDependencies: 1006 peerDependencies:
780 "@babel/core": ^7.0.0-0 1007 "@babel/core": ^7.0.0-0
781 checksum: 10c0/22e81b52320e6f3929110241d91499a7535d6834b86e8871470f9946b42e093fafc79e1eae4ede376e7c5fe84c5dc5e9fdbe55ff4039b323b5958167202f02e0 1008 checksum: 10c0/f0fc4c5a9add25fd6bf23dabe6752e9b7c0a2b2554933dddfd16601245a2ba332b647951079c782bf3b94c6330e3638b9b4e0227f469a7c1c707446ba0eba6c7
782 languageName: node 1009 languageName: node
783 linkType: hard 1010 linkType: hard
784 1011
785"@babel/plugin-transform-block-scoping@npm:^7.18.9": 1012"@babel/plugin-transform-export-namespace-from@npm:^7.24.1":
786 version: 7.18.9 1013 version: 7.24.1
787 resolution: "@babel/plugin-transform-block-scoping@npm:7.18.9" 1014 resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.1"
788 dependencies: 1015 dependencies:
789 "@babel/helper-plugin-utils": "npm:^7.18.9" 1016 "@babel/helper-plugin-utils": "npm:^7.24.0"
1017 "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3"
790 peerDependencies: 1018 peerDependencies:
791 "@babel/core": ^7.0.0-0 1019 "@babel/core": ^7.0.0-0
792 checksum: 10c0/1645188b7bd97ee10832607c9072af5184823cfd67cd319b7fb90544d27d45b222e85118dc07581913d14b1c6b36ba100c321ecdd311b107a2fb48427bff762e 1020 checksum: 10c0/510bb23b2423d5fbffef69b356e4050929c21a7627e8194b1506dd935c7d9cbbd696c9ae9d7c3bcd7e6e7b69561b0b290c2d72d446327b40fc20ce40bbca6712
793 languageName: node 1021 languageName: node
794 linkType: hard 1022 linkType: hard
795 1023
796"@babel/plugin-transform-classes@npm:^7.18.9": 1024"@babel/plugin-transform-for-of@npm:^7.24.1":
797 version: 7.18.9 1025 version: 7.24.1
798 resolution: "@babel/plugin-transform-classes@npm:7.18.9" 1026 resolution: "@babel/plugin-transform-for-of@npm:7.24.1"
799 dependencies: 1027 dependencies:
800 "@babel/helper-annotate-as-pure": "npm:^7.18.6" 1028 "@babel/helper-plugin-utils": "npm:^7.24.0"
801 "@babel/helper-environment-visitor": "npm:^7.18.9" 1029 "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5"
802 "@babel/helper-function-name": "npm:^7.18.9" 1030 peerDependencies:
803 "@babel/helper-optimise-call-expression": "npm:^7.18.6" 1031 "@babel/core": ^7.0.0-0
804 "@babel/helper-plugin-utils": "npm:^7.18.9" 1032 checksum: 10c0/e4bc92b1f334246e62d4bde079938df940794db564742034f6597f2e38bd426e11ae8c5670448e15dd6e45c462f2a9ab3fa87259bddf7c08553ffd9457fc2b2c
805 "@babel/helper-replace-supers": "npm:^7.18.9" 1033 languageName: node
806 "@babel/helper-split-export-declaration": "npm:^7.18.6" 1034 linkType: hard
807 globals: "npm:^11.1.0" 1035
1036"@babel/plugin-transform-function-name@npm:^7.24.1":
1037 version: 7.24.1
1038 resolution: "@babel/plugin-transform-function-name@npm:7.24.1"
1039 dependencies:
1040 "@babel/helper-compilation-targets": "npm:^7.23.6"
1041 "@babel/helper-function-name": "npm:^7.23.0"
1042 "@babel/helper-plugin-utils": "npm:^7.24.0"
808 peerDependencies: 1043 peerDependencies:
809 "@babel/core": ^7.0.0-0 1044 "@babel/core": ^7.0.0-0
810 checksum: 10c0/792a8dae7dacb3e50021a40c3bb1a928dc9a2c37b3e766c64e7f8e0ab9995c83a74c3e3924f729dc8090185d556851399b99426908f5480f35e43d1ae4b452c2 1045 checksum: 10c0/65c1735ec3b5e43db9b5aebf3c16171c04b3050c92396b9e22dda0d2aaf51f43fdcf147f70a40678fd9a4ee2272a5acec4826e9c21bcf968762f4c184897ad75
811 languageName: node 1046 languageName: node
812 linkType: hard 1047 linkType: hard
813 1048
814"@babel/plugin-transform-computed-properties@npm:^7.18.9": 1049"@babel/plugin-transform-json-strings@npm:^7.24.1":
815 version: 7.18.9 1050 version: 7.24.1
816 resolution: "@babel/plugin-transform-computed-properties@npm:7.18.9" 1051 resolution: "@babel/plugin-transform-json-strings@npm:7.24.1"
817 dependencies: 1052 dependencies:
818 "@babel/helper-plugin-utils": "npm:^7.18.9" 1053 "@babel/helper-plugin-utils": "npm:^7.24.0"
1054 "@babel/plugin-syntax-json-strings": "npm:^7.8.3"
819 peerDependencies: 1055 peerDependencies:
820 "@babel/core": ^7.0.0-0 1056 "@babel/core": ^7.0.0-0
821 checksum: 10c0/badf6d709a32716d90c2042a1999ef008e283d0491a79edb8396d15ebb3261c3a657368dcdc3182fd2060d73ce4a4e5241c0c04bdc1d64a6c101b71ba0a8efc0 1057 checksum: 10c0/13d9b6a3c31ab4be853b3d49d8d1171f9bd8198562fd75da8f31e7de31398e1cfa6eb1d073bed93c9746e4f9c47a53b20f8f4c255ece3f88c90852ad3181dc2d
822 languageName: node 1058 languageName: node
823 linkType: hard 1059 linkType: hard
824 1060
825"@babel/plugin-transform-destructuring@npm:^7.18.9": 1061"@babel/plugin-transform-literals@npm:^7.24.1":
826 version: 7.18.9 1062 version: 7.24.1
827 resolution: "@babel/plugin-transform-destructuring@npm:7.18.9" 1063 resolution: "@babel/plugin-transform-literals@npm:7.24.1"
828 dependencies: 1064 dependencies:
829 "@babel/helper-plugin-utils": "npm:^7.18.9" 1065 "@babel/helper-plugin-utils": "npm:^7.24.0"
830 peerDependencies: 1066 peerDependencies:
831 "@babel/core": ^7.0.0-0 1067 "@babel/core": ^7.0.0-0
832 checksum: 10c0/d894fa122d71e77117957be0fac3d2a7099d2abfae8768f09c0513123ccbf701881f9546204569473b846374b2e72eac0e9bbe7d442e6871bc25e6d20a8b6669 1068 checksum: 10c0/a27cc7d565ee57b5a2bf136fa889c5c2f5988545ae7b3b2c83a7afe5dd37dfac80dca88b1c633c65851ce6af7d2095c04c01228657ce0198f918e64b5ccd01fa
833 languageName: node 1069 languageName: node
834 linkType: hard 1070 linkType: hard
835 1071
836"@babel/plugin-transform-dotall-regex@npm:^7.18.6, @babel/plugin-transform-dotall-regex@npm:^7.4.4": 1072"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.1":
837 version: 7.18.6 1073 version: 7.24.1
838 resolution: "@babel/plugin-transform-dotall-regex@npm:7.18.6" 1074 resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.1"
839 dependencies: 1075 dependencies:
840 "@babel/helper-create-regexp-features-plugin": "npm:^7.18.6" 1076 "@babel/helper-plugin-utils": "npm:^7.24.0"
841 "@babel/helper-plugin-utils": "npm:^7.18.6" 1077 "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4"
842 peerDependencies: 1078 peerDependencies:
843 "@babel/core": ^7.0.0-0 1079 "@babel/core": ^7.0.0-0
844 checksum: 10c0/cf4c3751e603996f3da0b2060c3aab3c95e267cfc702a95d025b2e9684b66ed73a318949524fad5048515f4a5142629f2c0bd3dbb83558bdbab4008486b8d9a0 1080 checksum: 10c0/98a2e0843ddfe51443c1bfcf08ba40ad8856fd4f8e397b392a5390a54f257c8c1b9a99d8ffc0fc7e8c55cce45e2cd9c2795a4450303f48f501bcbd662de44554
845 languageName: node 1081 languageName: node
846 linkType: hard 1082 linkType: hard
847 1083
848"@babel/plugin-transform-duplicate-keys@npm:^7.18.9": 1084"@babel/plugin-transform-member-expression-literals@npm:^7.24.1":
849 version: 7.18.9 1085 version: 7.24.1
850 resolution: "@babel/plugin-transform-duplicate-keys@npm:7.18.9" 1086 resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.1"
851 dependencies: 1087 dependencies:
852 "@babel/helper-plugin-utils": "npm:^7.18.9" 1088 "@babel/helper-plugin-utils": "npm:^7.24.0"
853 peerDependencies: 1089 peerDependencies:
854 "@babel/core": ^7.0.0-0 1090 "@babel/core": ^7.0.0-0
855 checksum: 10c0/dfb7f7e66c0c862d205fe8f8b87f7ac174549c56937a5186b6e6cf85358ce257115fec0aa55e78fde53e5132d5aae9383e81aba8a4b70faa0e9fb64e3a66ca96 1091 checksum: 10c0/2af731d02aa4c757ef80c46df42264128cbe45bfd15e1812d1a595265b690a44ad036041c406a73411733540e1c4256d8174705ae6b8cfaf757fc175613993fd
856 languageName: node 1092 languageName: node
857 linkType: hard 1093 linkType: hard
858 1094
859"@babel/plugin-transform-exponentiation-operator@npm:^7.18.6": 1095"@babel/plugin-transform-modules-amd@npm:^7.24.1":
860 version: 7.18.6 1096 version: 7.24.1
861 resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.18.6" 1097 resolution: "@babel/plugin-transform-modules-amd@npm:7.24.1"
862 dependencies: 1098 dependencies:
863 "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.18.6" 1099 "@babel/helper-module-transforms": "npm:^7.23.3"
864 "@babel/helper-plugin-utils": "npm:^7.18.6" 1100 "@babel/helper-plugin-utils": "npm:^7.24.0"
865 peerDependencies: 1101 peerDependencies:
866 "@babel/core": ^7.0.0-0 1102 "@babel/core": ^7.0.0-0
867 checksum: 10c0/96d300ca3e55dbc98609df2d70c2b343202faca307b3152a04eab77600f6b1dc00b5b90fc3999cb9592922583c83ecbb92217e317d7c08602ca0db87a26eeed3 1103 checksum: 10c0/71fd04e5e7026e6e52701214b1e9f7508ba371b757e5075fbb938a79235ed66a54ce65f89bb92b59159e9f03f01b392e6c4de6d255b948bec975a90cfd6809ef
868 languageName: node 1104 languageName: node
869 linkType: hard 1105 linkType: hard
870 1106
871"@babel/plugin-transform-for-of@npm:^7.18.8": 1107"@babel/plugin-transform-modules-commonjs@npm:^7.24.1":
872 version: 7.18.8 1108 version: 7.24.1
873 resolution: "@babel/plugin-transform-for-of@npm:7.18.8" 1109 resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.1"
874 dependencies: 1110 dependencies:
875 "@babel/helper-plugin-utils": "npm:^7.18.6" 1111 "@babel/helper-module-transforms": "npm:^7.23.3"
1112 "@babel/helper-plugin-utils": "npm:^7.24.0"
1113 "@babel/helper-simple-access": "npm:^7.22.5"
876 peerDependencies: 1114 peerDependencies:
877 "@babel/core": ^7.0.0-0 1115 "@babel/core": ^7.0.0-0
878 checksum: 10c0/37708653d9ac69af31f0f5d0abebd726d6b92ba630beed8fea8e1538f035b2877abc0013f26f400ebc23af459fb8e629c83847818614d9fcca086fb5bcd35c4d 1116 checksum: 10c0/efb3ea2047604a7eb44a9289311ebb29842fe6510ff8b66a77a60440448c65e1312a60dc48191ed98246bdbd163b5b6f3348a0669bcc0e3809e69c7c776b20fa
879 languageName: node 1117 languageName: node
880 linkType: hard 1118 linkType: hard
881 1119
882"@babel/plugin-transform-function-name@npm:^7.18.9": 1120"@babel/plugin-transform-modules-systemjs@npm:^7.24.1":
883 version: 7.18.9 1121 version: 7.24.1
884 resolution: "@babel/plugin-transform-function-name@npm:7.18.9" 1122 resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.1"
885 dependencies: 1123 dependencies:
886 "@babel/helper-compilation-targets": "npm:^7.18.9" 1124 "@babel/helper-hoist-variables": "npm:^7.22.5"
887 "@babel/helper-function-name": "npm:^7.18.9" 1125 "@babel/helper-module-transforms": "npm:^7.23.3"
888 "@babel/helper-plugin-utils": "npm:^7.18.9" 1126 "@babel/helper-plugin-utils": "npm:^7.24.0"
1127 "@babel/helper-validator-identifier": "npm:^7.22.20"
889 peerDependencies: 1128 peerDependencies:
890 "@babel/core": ^7.0.0-0 1129 "@babel/core": ^7.0.0-0
891 checksum: 10c0/95100707fe00b3e388c059700fbdccf83c2cdf3b7fec8035cdd6c01dd80a1d9efb2821fec1357a62533ebbcbb3f6c361666866a3818486f1172e62f2b692de64 1130 checksum: 10c0/38145f8abe8a4ce2b41adabe5d65eb7bd54a139dc58e2885fec975eb5cf247bd938c1dd9f09145c46dbe57d25dd0ef7f00a020e5eb0cbe8195b2065d51e2d93d
892 languageName: node 1131 languageName: node
893 linkType: hard 1132 linkType: hard
894 1133
895"@babel/plugin-transform-literals@npm:^7.18.9": 1134"@babel/plugin-transform-modules-umd@npm:^7.24.1":
896 version: 7.18.9 1135 version: 7.24.1
897 resolution: "@babel/plugin-transform-literals@npm:7.18.9" 1136 resolution: "@babel/plugin-transform-modules-umd@npm:7.24.1"
898 dependencies: 1137 dependencies:
899 "@babel/helper-plugin-utils": "npm:^7.18.9" 1138 "@babel/helper-module-transforms": "npm:^7.23.3"
1139 "@babel/helper-plugin-utils": "npm:^7.24.0"
900 peerDependencies: 1140 peerDependencies:
901 "@babel/core": ^7.0.0-0 1141 "@babel/core": ^7.0.0-0
902 checksum: 10c0/7b0d59920dd5a1679a2214dde0d785ce7c0ed75cb6d46b618e7822dcd11fb347be2abb99444019262b6561369b85b95ab96603357773a75126b3d1c4c289b822 1142 checksum: 10c0/14c90c58562b54e17fe4a8ded3f627f9a993648f8378ef00cb2f6c34532032b83290d2ad54c7fff4f0c2cd49091bda780f8cc28926ec4b77a6c2141105a2e699
903 languageName: node 1143 languageName: node
904 linkType: hard 1144 linkType: hard
905 1145
906"@babel/plugin-transform-member-expression-literals@npm:^7.18.6": 1146"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5":
907 version: 7.18.6 1147 version: 7.22.5
908 resolution: "@babel/plugin-transform-member-expression-literals@npm:7.18.6" 1148 resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5"
909 dependencies: 1149 dependencies:
910 "@babel/helper-plugin-utils": "npm:^7.18.6" 1150 "@babel/helper-create-regexp-features-plugin": "npm:^7.22.5"
1151 "@babel/helper-plugin-utils": "npm:^7.22.5"
1152 peerDependencies:
1153 "@babel/core": ^7.0.0
1154 checksum: 10c0/b0b072bef303670b5a98307bc37d1ac326cb7ad40ea162b89a03c2ffc465451be7ef05be95cb81ed28bfeb29670dc98fe911f793a67bceab18b4cb4c81ef48f3
1155 languageName: node
1156 linkType: hard
1157
1158"@babel/plugin-transform-new-target@npm:^7.24.1":
1159 version: 7.24.1
1160 resolution: "@babel/plugin-transform-new-target@npm:7.24.1"
1161 dependencies:
1162 "@babel/helper-plugin-utils": "npm:^7.24.0"
911 peerDependencies: 1163 peerDependencies:
912 "@babel/core": ^7.0.0-0 1164 "@babel/core": ^7.0.0-0
913 checksum: 10c0/346e5ac45b77f1e58a9b1686eb16c75cca40cbc1de9836b814fbe8ae0767f7d4a0fec5b88fcf26a5e3455af9e33fd3c6424e4f2661d04e38123d80e022ce6e6f 1165 checksum: 10c0/c4cabe628163855f175a8799eb73d692b6f1dc347aae5022af0c253f80c92edb962e48ddccc98b691eff3d5d8e53c9a8f10894c33ba4cebc2e2f8f8fe554fb7a
914 languageName: node 1166 languageName: node
915 linkType: hard 1167 linkType: hard
916 1168
917"@babel/plugin-transform-modules-amd@npm:^7.18.6": 1169"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.1":
918 version: 7.18.6 1170 version: 7.24.1
919 resolution: "@babel/plugin-transform-modules-amd@npm:7.18.6" 1171 resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.1"
920 dependencies: 1172 dependencies:
921 "@babel/helper-module-transforms": "npm:^7.18.6" 1173 "@babel/helper-plugin-utils": "npm:^7.24.0"
922 "@babel/helper-plugin-utils": "npm:^7.18.6" 1174 "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3"
923 babel-plugin-dynamic-import-node: "npm:^2.3.3"
924 peerDependencies: 1175 peerDependencies:
925 "@babel/core": ^7.0.0-0 1176 "@babel/core": ^7.0.0-0
926 checksum: 10c0/1391af0dd70959c1a1acb61cd830e18603c06dcc47af811ce06fc321da504993ff72c582e26facef8b55524215ae5ee766ea330498361adc5ad5236835a47bfc 1177 checksum: 10c0/c8532951506fb031287280cebeef10aa714f8a7cea2b62a13c805f0e0af945ba77a7c87e4bbbe4c37fe973e0e5d5e649cfac7f0374f57efc54cdf9656362a392
927 languageName: node 1178 languageName: node
928 linkType: hard 1179 linkType: hard
929 1180
930"@babel/plugin-transform-modules-commonjs@npm:^7.18.6": 1181"@babel/plugin-transform-numeric-separator@npm:^7.24.1":
931 version: 7.18.6 1182 version: 7.24.1
932 resolution: "@babel/plugin-transform-modules-commonjs@npm:7.18.6" 1183 resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.1"
933 dependencies: 1184 dependencies:
934 "@babel/helper-module-transforms": "npm:^7.18.6" 1185 "@babel/helper-plugin-utils": "npm:^7.24.0"
935 "@babel/helper-plugin-utils": "npm:^7.18.6" 1186 "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4"
936 "@babel/helper-simple-access": "npm:^7.18.6"
937 babel-plugin-dynamic-import-node: "npm:^2.3.3"
938 peerDependencies: 1187 peerDependencies:
939 "@babel/core": ^7.0.0-0 1188 "@babel/core": ^7.0.0-0
940 checksum: 10c0/de3850b3e6a6b6ab206414897f451de332ca29713e8083d1d58ae0072516428fb138f418cae806546aef7c5e130a5cecd4bd1d938c93f20fe8c6312ef6546327 1189 checksum: 10c0/15e2b83292e586fb4f5b4b4021d4821a806ca6de2b77d5ad6c4e07aa7afa23704e31b4d683dac041afc69ac51b2461b96e8c98e46311cc1faba54c73f235044f
941 languageName: node 1190 languageName: node
942 linkType: hard 1191 linkType: hard
943 1192
944"@babel/plugin-transform-modules-systemjs@npm:^7.18.9": 1193"@babel/plugin-transform-object-rest-spread@npm:^7.24.1":
945 version: 7.18.9 1194 version: 7.24.1
946 resolution: "@babel/plugin-transform-modules-systemjs@npm:7.18.9" 1195 resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.1"
947 dependencies: 1196 dependencies:
948 "@babel/helper-hoist-variables": "npm:^7.18.6" 1197 "@babel/helper-compilation-targets": "npm:^7.23.6"
949 "@babel/helper-module-transforms": "npm:^7.18.9" 1198 "@babel/helper-plugin-utils": "npm:^7.24.0"
950 "@babel/helper-plugin-utils": "npm:^7.18.9" 1199 "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3"
951 "@babel/helper-validator-identifier": "npm:^7.18.6" 1200 "@babel/plugin-transform-parameters": "npm:^7.24.1"
952 babel-plugin-dynamic-import-node: "npm:^2.3.3"
953 peerDependencies: 1201 peerDependencies:
954 "@babel/core": ^7.0.0-0 1202 "@babel/core": ^7.0.0-0
955 checksum: 10c0/ab1e10be15a96c9cdaa05f954d5983523c627e9f701c0989fedf9bff8ff5873461f3035a73e87e4546a31b163897c6f36c5c567d4c1c3edc24ec395d56462715 1203 checksum: 10c0/e301f1a66b63bafc2bce885305cc88ab30ec875b5e2c7933fb7f9cbf0d954685aa10334ffcecf147ba19d6a1d7ffab37baf4ce871849d395941c56fdb3060f73
956 languageName: node 1204 languageName: node
957 linkType: hard 1205 linkType: hard
958 1206
959"@babel/plugin-transform-modules-umd@npm:^7.18.6": 1207"@babel/plugin-transform-object-super@npm:^7.24.1":
960 version: 7.18.6 1208 version: 7.24.1
961 resolution: "@babel/plugin-transform-modules-umd@npm:7.18.6" 1209 resolution: "@babel/plugin-transform-object-super@npm:7.24.1"
962 dependencies: 1210 dependencies:
963 "@babel/helper-module-transforms": "npm:^7.18.6" 1211 "@babel/helper-plugin-utils": "npm:^7.24.0"
964 "@babel/helper-plugin-utils": "npm:^7.18.6" 1212 "@babel/helper-replace-supers": "npm:^7.24.1"
965 peerDependencies: 1213 peerDependencies:
966 "@babel/core": ^7.0.0-0 1214 "@babel/core": ^7.0.0-0
967 checksum: 10c0/e3e99aef95a3faa15bc2398a919475c9130b783ee0f2439e1622fe73466c9821a5f74f72a46bb25e84906b650b467d73b43269c8b8c13372e97d3f2d96d109c7 1215 checksum: 10c0/d30e6b9e59a707efd7ed524fc0a8deeea046011a6990250f2e9280516683138e2d13d9c52daf41d78407bdab0378aef7478326f2a15305b773d851cb6e106157
968 languageName: node 1216 languageName: node
969 linkType: hard 1217 linkType: hard
970 1218
971"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.18.6": 1219"@babel/plugin-transform-optional-catch-binding@npm:^7.24.1":
972 version: 7.18.6 1220 version: 7.24.1
973 resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.18.6" 1221 resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.1"
974 dependencies: 1222 dependencies:
975 "@babel/helper-create-regexp-features-plugin": "npm:^7.18.6" 1223 "@babel/helper-plugin-utils": "npm:^7.24.0"
976 "@babel/helper-plugin-utils": "npm:^7.18.6" 1224 "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3"
977 peerDependencies: 1225 peerDependencies:
978 "@babel/core": ^7.0.0 1226 "@babel/core": ^7.0.0-0
979 checksum: 10c0/6695fc0469fa2dbe8133e36f8f5a281fc67a2b565481a13f5f50b95f86f4967d36c2ef8244d2ade09c0adbcd5dc98fddf8d61dd4bb56d6953c0523d11d9e0e5a 1227 checksum: 10c0/68408b9ef772d9aa5dccf166c86dc4d2505990ce93e03dcfc65c73fb95c2511248e009ba9ccf5b96405fb85de1c16ad8291016b1cc5689ee4becb1e3050e0ae7
980 languageName: node 1228 languageName: node
981 linkType: hard 1229 linkType: hard
982 1230
983"@babel/plugin-transform-new-target@npm:^7.18.6": 1231"@babel/plugin-transform-optional-chaining@npm:^7.24.1":
984 version: 7.18.6 1232 version: 7.24.1
985 resolution: "@babel/plugin-transform-new-target@npm:7.18.6" 1233 resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.1"
986 dependencies: 1234 dependencies:
987 "@babel/helper-plugin-utils": "npm:^7.18.6" 1235 "@babel/helper-plugin-utils": "npm:^7.24.0"
1236 "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5"
1237 "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3"
988 peerDependencies: 1238 peerDependencies:
989 "@babel/core": ^7.0.0-0 1239 "@babel/core": ^7.0.0-0
990 checksum: 10c0/ea9186087b72d0adff0b9e7ef5769cb7806bc4755ce7b75c323d65053d453fd801a64f97b65c033d89370866e76e8d526dd186acede2fdcd2667fa056b11149b 1240 checksum: 10c0/b4688795229c9e9ce978eccf979fe515eb4e8d864d2dcd696baa937c8db13e3d46cff664a3cd6119dfe60e261f5d359b10c6783effab7cc91d75d03ad7f43d05
991 languageName: node 1241 languageName: node
992 linkType: hard 1242 linkType: hard
993 1243
994"@babel/plugin-transform-object-super@npm:^7.18.6": 1244"@babel/plugin-transform-parameters@npm:^7.24.1":
995 version: 7.18.6 1245 version: 7.24.1
996 resolution: "@babel/plugin-transform-object-super@npm:7.18.6" 1246 resolution: "@babel/plugin-transform-parameters@npm:7.24.1"
997 dependencies: 1247 dependencies:
998 "@babel/helper-plugin-utils": "npm:^7.18.6" 1248 "@babel/helper-plugin-utils": "npm:^7.24.0"
999 "@babel/helper-replace-supers": "npm:^7.18.6"
1000 peerDependencies: 1249 peerDependencies:
1001 "@babel/core": ^7.0.0-0 1250 "@babel/core": ^7.0.0-0
1002 checksum: 10c0/44a1f5a62c6821a4653e23a38a61bed494138a0f12945a1d8b55ff7b83904e7c5615f4ebda8268c6ea877d1ec6b00f7c92a08cf93f4f77dc777e71145342aaf5 1251 checksum: 10c0/eee8d2f72d3ee0876dc8d85f949f4adf34685cfe36c814ebc20c96315f3891a53d43c764d636b939e34d55e6a6a4af9aa57ed0d7f9439eb5771a07277c669e55
1003 languageName: node 1252 languageName: node
1004 linkType: hard 1253 linkType: hard
1005 1254
1006"@babel/plugin-transform-parameters@npm:^7.18.8": 1255"@babel/plugin-transform-private-methods@npm:^7.24.1":
1007 version: 7.18.8 1256 version: 7.24.1
1008 resolution: "@babel/plugin-transform-parameters@npm:7.18.8" 1257 resolution: "@babel/plugin-transform-private-methods@npm:7.24.1"
1009 dependencies: 1258 dependencies:
1010 "@babel/helper-plugin-utils": "npm:^7.18.6" 1259 "@babel/helper-create-class-features-plugin": "npm:^7.24.1"
1260 "@babel/helper-plugin-utils": "npm:^7.24.0"
1011 peerDependencies: 1261 peerDependencies:
1012 "@babel/core": ^7.0.0-0 1262 "@babel/core": ^7.0.0-0
1013 checksum: 10c0/ca12c2cdb67012fc7d886941bf194225054cb11a117dd2b6a065ca5433f38368e8cf1e23f0fb81ccfc026991e95c7444a4cb594f4fd27b9e292304c0f96724ca 1263 checksum: 10c0/d8e18587d2a8b71a795da5e8841b0e64f1525a99ad73ea8b9caa331bc271d69646e2e1e749fd634321f3df9d126070208ddac22a27ccf070566b2efb74fecd99
1014 languageName: node 1264 languageName: node
1015 linkType: hard 1265 linkType: hard
1016 1266
1017"@babel/plugin-transform-property-literals@npm:^7.18.6": 1267"@babel/plugin-transform-private-property-in-object@npm:^7.24.1":
1018 version: 7.18.6 1268 version: 7.24.1
1019 resolution: "@babel/plugin-transform-property-literals@npm:7.18.6" 1269 resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.1"
1020 dependencies: 1270 dependencies:
1021 "@babel/helper-plugin-utils": "npm:^7.18.6" 1271 "@babel/helper-annotate-as-pure": "npm:^7.22.5"
1272 "@babel/helper-create-class-features-plugin": "npm:^7.24.1"
1273 "@babel/helper-plugin-utils": "npm:^7.24.0"
1274 "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5"
1022 peerDependencies: 1275 peerDependencies:
1023 "@babel/core": ^7.0.0-0 1276 "@babel/core": ^7.0.0-0
1024 checksum: 10c0/b76239098127ee39031db54e4eb9e55cb8a616abc0fc6abba4b22d00e443ec00d7aaa58c7cdef45b224b5e017905fc39a5e1802577a82396acabb32fe9cff7dd 1277 checksum: 10c0/33d2b9737de7667d7a1b704eef99bfecc6736157d9ea28c2e09010d5f25e33ff841c41d89a4430c5d47f4eb3384e24770fa0ec79600e1e38d6d16e2f9333b4b5
1025 languageName: node 1278 languageName: node
1026 linkType: hard 1279 linkType: hard
1027 1280
1028"@babel/plugin-transform-regenerator@npm:^7.18.6": 1281"@babel/plugin-transform-property-literals@npm:^7.24.1":
1029 version: 7.18.6 1282 version: 7.24.1
1030 resolution: "@babel/plugin-transform-regenerator@npm:7.18.6" 1283 resolution: "@babel/plugin-transform-property-literals@npm:7.24.1"
1031 dependencies: 1284 dependencies:
1032 "@babel/helper-plugin-utils": "npm:^7.18.6" 1285 "@babel/helper-plugin-utils": "npm:^7.24.0"
1033 regenerator-transform: "npm:^0.15.0"
1034 peerDependencies: 1286 peerDependencies:
1035 "@babel/core": ^7.0.0-0 1287 "@babel/core": ^7.0.0-0
1036 checksum: 10c0/74eaaeebd830656c37b11d058c0cae5e93645acdea457e62ea0cc9efb135c4b080df9bb8b453f2b1e0f12c0b38d74628f2807d2de5ca0b9aab0b3ea1c04f9c93 1288 checksum: 10c0/3bf3e01f7bb8215a8b6d0081b6f86fea23e3a4543b619e059a264ede028bc58cdfb0acb2c43271271915a74917effa547bc280ac636a9901fa9f2fb45623f87e
1037 languageName: node 1289 languageName: node
1038 linkType: hard 1290 linkType: hard
1039 1291
1040"@babel/plugin-transform-reserved-words@npm:^7.18.6": 1292"@babel/plugin-transform-react-constant-elements@npm:^7.18.12":
1041 version: 7.18.6 1293 version: 7.24.1
1042 resolution: "@babel/plugin-transform-reserved-words@npm:7.18.6" 1294 resolution: "@babel/plugin-transform-react-constant-elements@npm:7.24.1"
1043 dependencies: 1295 dependencies:
1044 "@babel/helper-plugin-utils": "npm:^7.18.6" 1296 "@babel/helper-plugin-utils": "npm:^7.24.0"
1045 peerDependencies: 1297 peerDependencies:
1046 "@babel/core": ^7.0.0-0 1298 "@babel/core": ^7.0.0-0
1047 checksum: 10c0/cbd6a86743c270a1e2a7caa19f6da22112c9dfa28fe08aea46ec9cb79fc1bc48df6b5b12819ae0e53227d4ca4adaee13f80216c03fff3082d3a88c55b4cddeba 1299 checksum: 10c0/3d1af987605ffb79f6b349862680f28bb3f09300234abe58cf20cd9f1cd3e578de0af3306244c6430126668fdf04ebbe780ac4be2c0b20e84160c57151c6519d
1048 languageName: node 1300 languageName: node
1049 linkType: hard 1301 linkType: hard
1050 1302
1051"@babel/plugin-transform-shorthand-properties@npm:^7.18.6": 1303"@babel/plugin-transform-react-display-name@npm:^7.24.1":
1052 version: 7.18.6 1304 version: 7.24.1
1053 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.18.6" 1305 resolution: "@babel/plugin-transform-react-display-name@npm:7.24.1"
1054 dependencies: 1306 dependencies:
1055 "@babel/helper-plugin-utils": "npm:^7.18.6" 1307 "@babel/helper-plugin-utils": "npm:^7.24.0"
1056 peerDependencies: 1308 peerDependencies:
1057 "@babel/core": ^7.0.0-0 1309 "@babel/core": ^7.0.0-0
1058 checksum: 10c0/e60e02dca182d6ec0e7b571d7e99a0528743692fb911826600374b77832922bf7c4b154194d4fe4a0e8a15c2acad3ea44dbaff5189aaeab59124e4c7ee0b8c30 1310 checksum: 10c0/adf1a3cb0df8134533a558a9072a67e34127fd489dfe431c3348a86dd41f3e74861d5d5134bbb68f61a9cdb3f7e79b2acea1346be94ce4d3328a64e5a9e09be1
1059 languageName: node 1311 languageName: node
1060 linkType: hard 1312 linkType: hard
1061 1313
1062"@babel/plugin-transform-spread@npm:^7.18.9": 1314"@babel/plugin-transform-react-jsx-development@npm:^7.22.5":
1063 version: 7.18.9 1315 version: 7.22.5
1064 resolution: "@babel/plugin-transform-spread@npm:7.18.9" 1316 resolution: "@babel/plugin-transform-react-jsx-development@npm:7.22.5"
1065 dependencies: 1317 dependencies:
1066 "@babel/helper-plugin-utils": "npm:^7.18.9" 1318 "@babel/plugin-transform-react-jsx": "npm:^7.22.5"
1067 "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.18.9"
1068 peerDependencies: 1319 peerDependencies:
1069 "@babel/core": ^7.0.0-0 1320 "@babel/core": ^7.0.0-0
1070 checksum: 10c0/b208ba03d2e0f4e49d0e634f31ded67cd4a76fafc53838e674b535eb993b2a03a4a87717a241ff5c44d41164b74493d197378811a757965cf9bbc95f32aaab2a 1321 checksum: 10c0/4d2e9e68383238feb873f6111df972df4a2ebf6256d6f787a8772241867efa975b3980f7d75ab7d750e7eaad4bd454e8cc6e106301fd7572dd389e553f5f69d2
1071 languageName: node 1322 languageName: node
1072 linkType: hard 1323 linkType: hard
1073 1324
1074"@babel/plugin-transform-sticky-regex@npm:^7.18.6": 1325"@babel/plugin-transform-react-jsx@npm:^7.22.5, @babel/plugin-transform-react-jsx@npm:^7.23.4":
1075 version: 7.18.6 1326 version: 7.23.4
1076 resolution: "@babel/plugin-transform-sticky-regex@npm:7.18.6" 1327 resolution: "@babel/plugin-transform-react-jsx@npm:7.23.4"
1077 dependencies: 1328 dependencies:
1078 "@babel/helper-plugin-utils": "npm:^7.18.6" 1329 "@babel/helper-annotate-as-pure": "npm:^7.22.5"
1330 "@babel/helper-module-imports": "npm:^7.22.15"
1331 "@babel/helper-plugin-utils": "npm:^7.22.5"
1332 "@babel/plugin-syntax-jsx": "npm:^7.23.3"
1333 "@babel/types": "npm:^7.23.4"
1079 peerDependencies: 1334 peerDependencies:
1080 "@babel/core": ^7.0.0-0 1335 "@babel/core": ^7.0.0-0
1081 checksum: 10c0/efbcf8f0acdac5757cce8d79c0259e3e5142cf3c782d71675802e97709dfb3cbc3dc08202c3ea950ddc23c8f74cae7c334aa05ec095e3cc6d642fa8b30d8e31c 1336 checksum: 10c0/8851b3adc515cd91bdb06ff3a23a0f81f0069cfef79dfb3fa744da4b7a82e3555ccb6324c4fa71ecf22508db13b9ff6a0ed96675f95fc87903b9fc6afb699580
1082 languageName: node 1337 languageName: node
1083 linkType: hard 1338 linkType: hard
1084 1339
1085"@babel/plugin-transform-template-literals@npm:^7.18.9": 1340"@babel/plugin-transform-react-pure-annotations@npm:^7.24.1":
1086 version: 7.18.9 1341 version: 7.24.1
1087 resolution: "@babel/plugin-transform-template-literals@npm:7.18.9" 1342 resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.24.1"
1088 dependencies: 1343 dependencies:
1089 "@babel/helper-plugin-utils": "npm:^7.18.9" 1344 "@babel/helper-annotate-as-pure": "npm:^7.22.5"
1345 "@babel/helper-plugin-utils": "npm:^7.24.0"
1090 peerDependencies: 1346 peerDependencies:
1091 "@babel/core": ^7.0.0-0 1347 "@babel/core": ^7.0.0-0
1092 checksum: 10c0/d1a5e55ed8c3b1186fbba2a7b3e9d880cb3987b846376f51a73216a8894b9c9d6f6c6e2d3cadb17d76f2477552db5383d817169d5b92fcf08ee0fa5b88213c15 1348 checksum: 10c0/9eb3056fcaadd63d404fd5652b2a3f693bc4758ba753fee5b5c580c7a64346eeeb94e5a4f77a99c76f3cf06d1f1ad6c227647cd0b1219efe3d00cafa5a6e7b2a
1093 languageName: node 1349 languageName: node
1094 linkType: hard 1350 linkType: hard
1095 1351
1096"@babel/plugin-transform-typeof-symbol@npm:^7.18.9": 1352"@babel/plugin-transform-regenerator@npm:^7.24.1":
1097 version: 7.18.9 1353 version: 7.24.1
1098 resolution: "@babel/plugin-transform-typeof-symbol@npm:7.18.9" 1354 resolution: "@babel/plugin-transform-regenerator@npm:7.24.1"
1099 dependencies: 1355 dependencies:
1100 "@babel/helper-plugin-utils": "npm:^7.18.9" 1356 "@babel/helper-plugin-utils": "npm:^7.24.0"
1357 regenerator-transform: "npm:^0.15.2"
1101 peerDependencies: 1358 peerDependencies:
1102 "@babel/core": ^7.0.0-0 1359 "@babel/core": ^7.0.0-0
1103 checksum: 10c0/c42e00635aa9d1c597d339c9023e0f9bfa3cd7af55c00cb8a6461036102b0facdcd3059456d4fee0a63675aeecca62fc84ee01f28b23139c6ae03e6d61c86906 1360 checksum: 10c0/0a333585d7c0b38d31cc549d0f3cf7c396d1d50b6588a307dc58325505ddd4f5446188bc536c4779431b396251801b3f32d6d8e87db8274bc84e8c41950737f7
1104 languageName: node 1361 languageName: node
1105 linkType: hard 1362 linkType: hard
1106 1363
1107"@babel/plugin-transform-unicode-escapes@npm:^7.18.10": 1364"@babel/plugin-transform-reserved-words@npm:^7.24.1":
1108 version: 7.18.10 1365 version: 7.24.1
1109 resolution: "@babel/plugin-transform-unicode-escapes@npm:7.18.10" 1366 resolution: "@babel/plugin-transform-reserved-words@npm:7.24.1"
1110 dependencies: 1367 dependencies:
1111 "@babel/helper-plugin-utils": "npm:^7.18.9" 1368 "@babel/helper-plugin-utils": "npm:^7.24.0"
1112 peerDependencies: 1369 peerDependencies:
1113 "@babel/core": ^7.0.0-0 1370 "@babel/core": ^7.0.0-0
1114 checksum: 10c0/1587c3497549a4ad1b75d5b63f1d6ced839d4078dc7df3b5df362c8669f3e9cbed975d5c55632bf8c574847d8df03553851e1b85d1e81a568fdfd2466fcd4198 1371 checksum: 10c0/936d6e73cafb2cbb495f6817c6f8463288dbc9ab3c44684b931ebc1ece24f0d55dfabc1a75ba1de5b48843d0fef448dcfdbecb8485e4014f8f41d0d1440c536f
1115 languageName: node 1372 languageName: node
1116 linkType: hard 1373 linkType: hard
1117 1374
1118"@babel/plugin-transform-unicode-regex@npm:^7.18.6": 1375"@babel/plugin-transform-runtime@npm:^7.22.9":
1119 version: 7.18.6 1376 version: 7.24.3
1120 resolution: "@babel/plugin-transform-unicode-regex@npm:7.18.6" 1377 resolution: "@babel/plugin-transform-runtime@npm:7.24.3"
1121 dependencies: 1378 dependencies:
1122 "@babel/helper-create-regexp-features-plugin": "npm:^7.18.6" 1379 "@babel/helper-module-imports": "npm:^7.24.3"
1123 "@babel/helper-plugin-utils": "npm:^7.18.6" 1380 "@babel/helper-plugin-utils": "npm:^7.24.0"
1381 babel-plugin-polyfill-corejs2: "npm:^0.4.10"
1382 babel-plugin-polyfill-corejs3: "npm:^0.10.1"
1383 babel-plugin-polyfill-regenerator: "npm:^0.6.1"
1384 semver: "npm:^6.3.1"
1385 peerDependencies:
1386 "@babel/core": ^7.0.0-0
1387 checksum: 10c0/ee01967bf405d84bd95ca4089166a18fb23fe9851a6da53dcf712a7f8ba003319996f21f320d568ec76126e18adfaee978206ccda86eef7652d47cc9a052e75e
1388 languageName: node
1389 linkType: hard
1390
1391"@babel/plugin-transform-shorthand-properties@npm:^7.24.1":
1392 version: 7.24.1
1393 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.1"
1394 dependencies:
1395 "@babel/helper-plugin-utils": "npm:^7.24.0"
1124 peerDependencies: 1396 peerDependencies:
1125 "@babel/core": ^7.0.0-0 1397 "@babel/core": ^7.0.0-0
1126 checksum: 10c0/2f71b5b79df7f8de81c52011d64203b7021f7d23af2470782aef8e8a3be6ca3a208679de8078a12e707342dde1175e5ab44abf8f63c219c997e147118d356dea 1398 checksum: 10c0/8273347621183aada3cf1f3019d8d5f29467ba13a75b72cb405bc7f23b7e05fd85f4edb1e4d9f0103153dddb61826a42dc24d466480d707f8932c1923a4c25fa
1127 languageName: node 1399 languageName: node
1128 linkType: hard 1400 linkType: hard
1129 1401
1130"@babel/preset-env@npm:^7.11.0": 1402"@babel/plugin-transform-spread@npm:^7.24.1":
1131 version: 7.18.10 1403 version: 7.24.1
1132 resolution: "@babel/preset-env@npm:7.18.10" 1404 resolution: "@babel/plugin-transform-spread@npm:7.24.1"
1133 dependencies: 1405 dependencies:
1134 "@babel/compat-data": "npm:^7.18.8" 1406 "@babel/helper-plugin-utils": "npm:^7.24.0"
1135 "@babel/helper-compilation-targets": "npm:^7.18.9" 1407 "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5"
1136 "@babel/helper-plugin-utils": "npm:^7.18.9" 1408 peerDependencies:
1137 "@babel/helper-validator-option": "npm:^7.18.6" 1409 "@babel/core": ^7.0.0-0
1138 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.18.6" 1410 checksum: 10c0/50a0302e344546d57e5c9f4dea575f88e084352eeac4e9a3e238c41739eef2df1daf4a7ebbb3ccb7acd3447f6a5ce9938405f98bf5f5583deceb8257f5a673c9
1139 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.18.9" 1411 languageName: node
1140 "@babel/plugin-proposal-async-generator-functions": "npm:^7.18.10" 1412 linkType: hard
1141 "@babel/plugin-proposal-class-properties": "npm:^7.18.6" 1413
1142 "@babel/plugin-proposal-class-static-block": "npm:^7.18.6" 1414"@babel/plugin-transform-sticky-regex@npm:^7.24.1":
1143 "@babel/plugin-proposal-dynamic-import": "npm:^7.18.6" 1415 version: 7.24.1
1144 "@babel/plugin-proposal-export-namespace-from": "npm:^7.18.9" 1416 resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.1"
1145 "@babel/plugin-proposal-json-strings": "npm:^7.18.6" 1417 dependencies:
1146 "@babel/plugin-proposal-logical-assignment-operators": "npm:^7.18.9" 1418 "@babel/helper-plugin-utils": "npm:^7.24.0"
1147 "@babel/plugin-proposal-nullish-coalescing-operator": "npm:^7.18.6" 1419 peerDependencies:
1148 "@babel/plugin-proposal-numeric-separator": "npm:^7.18.6" 1420 "@babel/core": ^7.0.0-0
1149 "@babel/plugin-proposal-object-rest-spread": "npm:^7.18.9" 1421 checksum: 10c0/786fe2ae11ef9046b9fa95677935abe495031eebf1274ad03f2054a20adea7b9dbd00336ac0b143f7924bc562e5e09793f6e8613607674b97e067d4838ccc4a0
1150 "@babel/plugin-proposal-optional-catch-binding": "npm:^7.18.6" 1422 languageName: node
1151 "@babel/plugin-proposal-optional-chaining": "npm:^7.18.9" 1423 linkType: hard
1152 "@babel/plugin-proposal-private-methods": "npm:^7.18.6" 1424
1153 "@babel/plugin-proposal-private-property-in-object": "npm:^7.18.6" 1425"@babel/plugin-transform-template-literals@npm:^7.24.1":
1154 "@babel/plugin-proposal-unicode-property-regex": "npm:^7.18.6" 1426 version: 7.24.1
1427 resolution: "@babel/plugin-transform-template-literals@npm:7.24.1"
1428 dependencies:
1429 "@babel/helper-plugin-utils": "npm:^7.24.0"
1430 peerDependencies:
1431 "@babel/core": ^7.0.0-0
1432 checksum: 10c0/f73bcda5488eb81c6e7a876498d9e6b72be32fca5a4d9db9053491a2d1300cd27b889b463fd2558f3cd5826a85ed00f61d81b234aa55cb5a0abf1b6fa1bd5026
1433 languageName: node
1434 linkType: hard
1435
1436"@babel/plugin-transform-typeof-symbol@npm:^7.24.1":
1437 version: 7.24.1
1438 resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.1"
1439 dependencies:
1440 "@babel/helper-plugin-utils": "npm:^7.24.0"
1441 peerDependencies:
1442 "@babel/core": ^7.0.0-0
1443 checksum: 10c0/d392f549bfd13414f59feecdf3fb286f266a3eb9107a9de818e57907bda56eed08d1f6f8e314d09bf99252df026a7fd4d5df839acd45078a777abcebaa9a8593
1444 languageName: node
1445 linkType: hard
1446
1447"@babel/plugin-transform-typescript@npm:^7.24.1":
1448 version: 7.24.4
1449 resolution: "@babel/plugin-transform-typescript@npm:7.24.4"
1450 dependencies:
1451 "@babel/helper-annotate-as-pure": "npm:^7.22.5"
1452 "@babel/helper-create-class-features-plugin": "npm:^7.24.4"
1453 "@babel/helper-plugin-utils": "npm:^7.24.0"
1454 "@babel/plugin-syntax-typescript": "npm:^7.24.1"
1455 peerDependencies:
1456 "@babel/core": ^7.0.0-0
1457 checksum: 10c0/fa6625046f219cdc75061025c8031ada75ef631b137f1442e3d0054ba4e63548eb12cf55e2e1f442c889aa5fdd76d0d0b7904fdf812ce4c38748446227acc798
1458 languageName: node
1459 linkType: hard
1460
1461"@babel/plugin-transform-unicode-escapes@npm:^7.24.1":
1462 version: 7.24.1
1463 resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.1"
1464 dependencies:
1465 "@babel/helper-plugin-utils": "npm:^7.24.0"
1466 peerDependencies:
1467 "@babel/core": ^7.0.0-0
1468 checksum: 10c0/67a72a1ed99639de6a93aead35b1993cb3f0eb178a8991fcef48732c38c9f0279c85bbe1e2e2477b85afea873e738ff0955a35057635ce67bc149038e2d8a28e
1469 languageName: node
1470 linkType: hard
1471
1472"@babel/plugin-transform-unicode-property-regex@npm:^7.24.1":
1473 version: 7.24.1
1474 resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.1"
1475 dependencies:
1476 "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15"
1477 "@babel/helper-plugin-utils": "npm:^7.24.0"
1478 peerDependencies:
1479 "@babel/core": ^7.0.0-0
1480 checksum: 10c0/d9d9752df7d51bf9357c0bf3762fe16b8c841fca9ecf4409a16f15ccc34be06e8e71abfaee1251b7d451227e70e6b873b36f86b090efdb20f6f7de5fdb6c7a05
1481 languageName: node
1482 linkType: hard
1483
1484"@babel/plugin-transform-unicode-regex@npm:^7.24.1":
1485 version: 7.24.1
1486 resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.1"
1487 dependencies:
1488 "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15"
1489 "@babel/helper-plugin-utils": "npm:^7.24.0"
1490 peerDependencies:
1491 "@babel/core": ^7.0.0-0
1492 checksum: 10c0/6046ab38e5d14ed97dbb921bd79ac1d7ad9d3286da44a48930e980b16896db2df21e093563ec3c916a630dc346639bf47c5924a33902a06fe3bbb5cdc7ef5f2f
1493 languageName: node
1494 linkType: hard
1495
1496"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.1":
1497 version: 7.24.1
1498 resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.1"
1499 dependencies:
1500 "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15"
1501 "@babel/helper-plugin-utils": "npm:^7.24.0"
1502 peerDependencies:
1503 "@babel/core": ^7.0.0
1504 checksum: 10c0/b6c1f6b90afeeddf97e5713f72575787fcb7179be7b4c961869bfbc66915f66540dc49da93e4369da15596bd44b896d1eb8a50f5e1fd907abd7a1a625901006b
1505 languageName: node
1506 linkType: hard
1507
1508"@babel/preset-env@npm:^7.11.0, @babel/preset-env@npm:^7.19.4, @babel/preset-env@npm:^7.22.9":
1509 version: 7.24.4
1510 resolution: "@babel/preset-env@npm:7.24.4"
1511 dependencies:
1512 "@babel/compat-data": "npm:^7.24.4"
1513 "@babel/helper-compilation-targets": "npm:^7.23.6"
1514 "@babel/helper-plugin-utils": "npm:^7.24.0"
1515 "@babel/helper-validator-option": "npm:^7.23.5"
1516 "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.24.4"
1517 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.24.1"
1518 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.24.1"
1519 "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.24.1"
1520 "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2"
1155 "@babel/plugin-syntax-async-generators": "npm:^7.8.4" 1521 "@babel/plugin-syntax-async-generators": "npm:^7.8.4"
1156 "@babel/plugin-syntax-class-properties": "npm:^7.12.13" 1522 "@babel/plugin-syntax-class-properties": "npm:^7.12.13"
1157 "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" 1523 "@babel/plugin-syntax-class-static-block": "npm:^7.14.5"
1158 "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" 1524 "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3"
1159 "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" 1525 "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3"
1160 "@babel/plugin-syntax-import-assertions": "npm:^7.18.6" 1526 "@babel/plugin-syntax-import-assertions": "npm:^7.24.1"
1527 "@babel/plugin-syntax-import-attributes": "npm:^7.24.1"
1528 "@babel/plugin-syntax-import-meta": "npm:^7.10.4"
1161 "@babel/plugin-syntax-json-strings": "npm:^7.8.3" 1529 "@babel/plugin-syntax-json-strings": "npm:^7.8.3"
1162 "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" 1530 "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4"
1163 "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" 1531 "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3"
@@ -1167,63 +1535,108 @@ __metadata:
1167 "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" 1535 "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3"
1168 "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" 1536 "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5"
1169 "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" 1537 "@babel/plugin-syntax-top-level-await": "npm:^7.14.5"
1170 "@babel/plugin-transform-arrow-functions": "npm:^7.18.6" 1538 "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6"
1171 "@babel/plugin-transform-async-to-generator": "npm:^7.18.6" 1539 "@babel/plugin-transform-arrow-functions": "npm:^7.24.1"
1172 "@babel/plugin-transform-block-scoped-functions": "npm:^7.18.6" 1540 "@babel/plugin-transform-async-generator-functions": "npm:^7.24.3"
1173 "@babel/plugin-transform-block-scoping": "npm:^7.18.9" 1541 "@babel/plugin-transform-async-to-generator": "npm:^7.24.1"
1174 "@babel/plugin-transform-classes": "npm:^7.18.9" 1542 "@babel/plugin-transform-block-scoped-functions": "npm:^7.24.1"
1175 "@babel/plugin-transform-computed-properties": "npm:^7.18.9" 1543 "@babel/plugin-transform-block-scoping": "npm:^7.24.4"
1176 "@babel/plugin-transform-destructuring": "npm:^7.18.9" 1544 "@babel/plugin-transform-class-properties": "npm:^7.24.1"
1177 "@babel/plugin-transform-dotall-regex": "npm:^7.18.6" 1545 "@babel/plugin-transform-class-static-block": "npm:^7.24.4"
1178 "@babel/plugin-transform-duplicate-keys": "npm:^7.18.9" 1546 "@babel/plugin-transform-classes": "npm:^7.24.1"
1179 "@babel/plugin-transform-exponentiation-operator": "npm:^7.18.6" 1547 "@babel/plugin-transform-computed-properties": "npm:^7.24.1"
1180 "@babel/plugin-transform-for-of": "npm:^7.18.8" 1548 "@babel/plugin-transform-destructuring": "npm:^7.24.1"
1181 "@babel/plugin-transform-function-name": "npm:^7.18.9" 1549 "@babel/plugin-transform-dotall-regex": "npm:^7.24.1"
1182 "@babel/plugin-transform-literals": "npm:^7.18.9" 1550 "@babel/plugin-transform-duplicate-keys": "npm:^7.24.1"
1183 "@babel/plugin-transform-member-expression-literals": "npm:^7.18.6" 1551 "@babel/plugin-transform-dynamic-import": "npm:^7.24.1"
1184 "@babel/plugin-transform-modules-amd": "npm:^7.18.6" 1552 "@babel/plugin-transform-exponentiation-operator": "npm:^7.24.1"
1185 "@babel/plugin-transform-modules-commonjs": "npm:^7.18.6" 1553 "@babel/plugin-transform-export-namespace-from": "npm:^7.24.1"
1186 "@babel/plugin-transform-modules-systemjs": "npm:^7.18.9" 1554 "@babel/plugin-transform-for-of": "npm:^7.24.1"
1187 "@babel/plugin-transform-modules-umd": "npm:^7.18.6" 1555 "@babel/plugin-transform-function-name": "npm:^7.24.1"
1188 "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.18.6" 1556 "@babel/plugin-transform-json-strings": "npm:^7.24.1"
1189 "@babel/plugin-transform-new-target": "npm:^7.18.6" 1557 "@babel/plugin-transform-literals": "npm:^7.24.1"
1190 "@babel/plugin-transform-object-super": "npm:^7.18.6" 1558 "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.1"
1191 "@babel/plugin-transform-parameters": "npm:^7.18.8" 1559 "@babel/plugin-transform-member-expression-literals": "npm:^7.24.1"
1192 "@babel/plugin-transform-property-literals": "npm:^7.18.6" 1560 "@babel/plugin-transform-modules-amd": "npm:^7.24.1"
1193 "@babel/plugin-transform-regenerator": "npm:^7.18.6" 1561 "@babel/plugin-transform-modules-commonjs": "npm:^7.24.1"
1194 "@babel/plugin-transform-reserved-words": "npm:^7.18.6" 1562 "@babel/plugin-transform-modules-systemjs": "npm:^7.24.1"
1195 "@babel/plugin-transform-shorthand-properties": "npm:^7.18.6" 1563 "@babel/plugin-transform-modules-umd": "npm:^7.24.1"
1196 "@babel/plugin-transform-spread": "npm:^7.18.9" 1564 "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.22.5"
1197 "@babel/plugin-transform-sticky-regex": "npm:^7.18.6" 1565 "@babel/plugin-transform-new-target": "npm:^7.24.1"
1198 "@babel/plugin-transform-template-literals": "npm:^7.18.9" 1566 "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.1"
1199 "@babel/plugin-transform-typeof-symbol": "npm:^7.18.9" 1567 "@babel/plugin-transform-numeric-separator": "npm:^7.24.1"
1200 "@babel/plugin-transform-unicode-escapes": "npm:^7.18.10" 1568 "@babel/plugin-transform-object-rest-spread": "npm:^7.24.1"
1201 "@babel/plugin-transform-unicode-regex": "npm:^7.18.6" 1569 "@babel/plugin-transform-object-super": "npm:^7.24.1"
1202 "@babel/preset-modules": "npm:^0.1.5" 1570 "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.1"
1203 "@babel/types": "npm:^7.18.10" 1571 "@babel/plugin-transform-optional-chaining": "npm:^7.24.1"
1204 babel-plugin-polyfill-corejs2: "npm:^0.3.2" 1572 "@babel/plugin-transform-parameters": "npm:^7.24.1"
1205 babel-plugin-polyfill-corejs3: "npm:^0.5.3" 1573 "@babel/plugin-transform-private-methods": "npm:^7.24.1"
1206 babel-plugin-polyfill-regenerator: "npm:^0.4.0" 1574 "@babel/plugin-transform-private-property-in-object": "npm:^7.24.1"
1207 core-js-compat: "npm:^3.22.1" 1575 "@babel/plugin-transform-property-literals": "npm:^7.24.1"
1208 semver: "npm:^6.3.0" 1576 "@babel/plugin-transform-regenerator": "npm:^7.24.1"
1577 "@babel/plugin-transform-reserved-words": "npm:^7.24.1"
1578 "@babel/plugin-transform-shorthand-properties": "npm:^7.24.1"
1579 "@babel/plugin-transform-spread": "npm:^7.24.1"
1580 "@babel/plugin-transform-sticky-regex": "npm:^7.24.1"
1581 "@babel/plugin-transform-template-literals": "npm:^7.24.1"
1582 "@babel/plugin-transform-typeof-symbol": "npm:^7.24.1"
1583 "@babel/plugin-transform-unicode-escapes": "npm:^7.24.1"
1584 "@babel/plugin-transform-unicode-property-regex": "npm:^7.24.1"
1585 "@babel/plugin-transform-unicode-regex": "npm:^7.24.1"
1586 "@babel/plugin-transform-unicode-sets-regex": "npm:^7.24.1"
1587 "@babel/preset-modules": "npm:0.1.6-no-external-plugins"
1588 babel-plugin-polyfill-corejs2: "npm:^0.4.10"
1589 babel-plugin-polyfill-corejs3: "npm:^0.10.4"
1590 babel-plugin-polyfill-regenerator: "npm:^0.6.1"
1591 core-js-compat: "npm:^3.31.0"
1592 semver: "npm:^6.3.1"
1209 peerDependencies: 1593 peerDependencies:
1210 "@babel/core": ^7.0.0-0 1594 "@babel/core": ^7.0.0-0
1211 checksum: 10c0/4b7ef515702e8c91aa223f60f8a4c8e28ca202fcc090db5c62135e3af16980d7059ba8dc7faf01ba4b818837187d609fdb4d44a56fffa261aa81bfc3d1fa10c3 1595 checksum: 10c0/72a79d0cd38cb26f143509dd0c58db34b5b1ae90116863f55a404f0eb06a64a3cdcb1abd0b6435fafe463bbf55b82ffcf56aedee91e8d37797bf53e4ae74c413
1212 languageName: node 1596 languageName: node
1213 linkType: hard 1597 linkType: hard
1214 1598
1215"@babel/preset-modules@npm:^0.1.5": 1599"@babel/preset-modules@npm:0.1.6-no-external-plugins":
1216 version: 0.1.5 1600 version: 0.1.6-no-external-plugins
1217 resolution: "@babel/preset-modules@npm:0.1.5" 1601 resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins"
1218 dependencies: 1602 dependencies:
1219 "@babel/helper-plugin-utils": "npm:^7.0.0" 1603 "@babel/helper-plugin-utils": "npm:^7.0.0"
1220 "@babel/plugin-proposal-unicode-property-regex": "npm:^7.4.4"
1221 "@babel/plugin-transform-dotall-regex": "npm:^7.4.4"
1222 "@babel/types": "npm:^7.4.4" 1604 "@babel/types": "npm:^7.4.4"
1223 esutils: "npm:^2.0.2" 1605 esutils: "npm:^2.0.2"
1224 peerDependencies: 1606 peerDependencies:
1607 "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0
1608 checksum: 10c0/9d02f70d7052446c5f3a4fb39e6b632695fb6801e46d31d7f7c5001f7c18d31d1ea8369212331ca7ad4e7877b73231f470b0d559162624128f1b80fe591409e6
1609 languageName: node
1610 linkType: hard
1611
1612"@babel/preset-react@npm:^7.18.6, @babel/preset-react@npm:^7.22.5":
1613 version: 7.24.1
1614 resolution: "@babel/preset-react@npm:7.24.1"
1615 dependencies:
1616 "@babel/helper-plugin-utils": "npm:^7.24.0"
1617 "@babel/helper-validator-option": "npm:^7.23.5"
1618 "@babel/plugin-transform-react-display-name": "npm:^7.24.1"
1619 "@babel/plugin-transform-react-jsx": "npm:^7.23.4"
1620 "@babel/plugin-transform-react-jsx-development": "npm:^7.22.5"
1621 "@babel/plugin-transform-react-pure-annotations": "npm:^7.24.1"
1622 peerDependencies:
1623 "@babel/core": ^7.0.0-0
1624 checksum: 10c0/a842abc5a024ed68a0ce4c1244607d40165cb6f8cf1817ebda282e470f20302d81c6a61cb41c1a31aa6c4e99ce93df4dd9e998a8ded1417c25d7480f0e14103a
1625 languageName: node
1626 linkType: hard
1627
1628"@babel/preset-typescript@npm:^7.18.6, @babel/preset-typescript@npm:^7.22.5":
1629 version: 7.24.1
1630 resolution: "@babel/preset-typescript@npm:7.24.1"
1631 dependencies:
1632 "@babel/helper-plugin-utils": "npm:^7.24.0"
1633 "@babel/helper-validator-option": "npm:^7.23.5"
1634 "@babel/plugin-syntax-jsx": "npm:^7.24.1"
1635 "@babel/plugin-transform-modules-commonjs": "npm:^7.24.1"
1636 "@babel/plugin-transform-typescript": "npm:^7.24.1"
1637 peerDependencies:
1225 "@babel/core": ^7.0.0-0 1638 "@babel/core": ^7.0.0-0
1226 checksum: 10c0/bd90081d96b746c1940dc1ce056dee06ed3a128d20936aee1d1795199f789f9a61293ef738343ae10c6d53970c17285d5e147a945dded35423aacb75083b8a89 1639 checksum: 10c0/0033dc6fbc898ed0d8017c83a2dd5e095c82909e2f83e48cf9f305e3e9287148758c179ad90f27912cf98ca68bfec3643c57c70c0ca34d3a6c50dc8243aef406
1227 languageName: node 1640 languageName: node
1228 linkType: hard 1641 linkType: hard
1229 1642
@@ -1234,58 +1647,68 @@ __metadata:
1234 languageName: node 1647 languageName: node
1235 linkType: hard 1648 linkType: hard
1236 1649
1237"@babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.0, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.24.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7": 1650"@babel/runtime-corejs3@npm:^7.22.6":
1238 version: 7.24.1 1651 version: 7.24.4
1239 resolution: "@babel/runtime@npm:7.24.1" 1652 resolution: "@babel/runtime-corejs3@npm:7.24.4"
1240 dependencies: 1653 dependencies:
1654 core-js-pure: "npm:^3.30.2"
1241 regenerator-runtime: "npm:^0.14.0" 1655 regenerator-runtime: "npm:^0.14.0"
1242 checksum: 10c0/500c6a99ddd84f37c7bc5dbc84777af47b1372b20e879941670451d55484faf18a673c5ebee9ca2b0f36208a729417873b35b1b92e76f811620f6adf7b8cb0f1 1656 checksum: 10c0/121bec9a0b505e2995c4b71cf480167e006e8ee423f77bccc38975bfbfbfdb191192ff03557c18fad6de8f2b85c12c49aaa4b92d1d5fe0c0e136da664129be1e
1243 languageName: node 1657 languageName: node
1244 linkType: hard 1658 linkType: hard
1245 1659
1246"@babel/template@npm:^7.18.10, @babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5": 1660"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.3, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.0, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.24.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7":
1247 version: 7.22.15 1661 version: 7.24.4
1248 resolution: "@babel/template@npm:7.22.15" 1662 resolution: "@babel/runtime@npm:7.24.4"
1249 dependencies: 1663 dependencies:
1250 "@babel/code-frame": "npm:^7.22.13" 1664 regenerator-runtime: "npm:^0.14.0"
1251 "@babel/parser": "npm:^7.22.15" 1665 checksum: 10c0/785aff96a3aa8ff97f90958e1e8a7b1d47f793b204b47c6455eaadc3f694f48c97cd5c0a921fe3596d818e71f18106610a164fb0f1c71fd68c622a58269d537c
1252 "@babel/types": "npm:^7.22.15" 1666 languageName: node
1253 checksum: 10c0/9312edd37cf1311d738907003f2aa321a88a42ba223c69209abe4d7111db019d321805504f606c7fd75f21c6cf9d24d0a8223104cd21ebd207e241b6c551f454 1667 linkType: hard
1668
1669"@babel/template@npm:^7.22.15, @babel/template@npm:^7.24.0":
1670 version: 7.24.0
1671 resolution: "@babel/template@npm:7.24.0"
1672 dependencies:
1673 "@babel/code-frame": "npm:^7.23.5"
1674 "@babel/parser": "npm:^7.24.0"
1675 "@babel/types": "npm:^7.24.0"
1676 checksum: 10c0/9d3dd8d22fe1c36bc3bdef6118af1f4b030aaf6d7d2619f5da203efa818a2185d717523486c111de8d99a8649ddf4bbf6b2a7a64962d8411cf6a8fa89f010e54
1254 languageName: node 1677 languageName: node
1255 linkType: hard 1678 linkType: hard
1256 1679
1257"@babel/traverse@npm:^7.18.11, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.21.4, @babel/traverse@npm:^7.22.5": 1680"@babel/traverse@npm:^7.21.4, @babel/traverse@npm:^7.22.8, @babel/traverse@npm:^7.24.1":
1258 version: 7.23.2 1681 version: 7.24.1
1259 resolution: "@babel/traverse@npm:7.23.2" 1682 resolution: "@babel/traverse@npm:7.24.1"
1260 dependencies: 1683 dependencies:
1261 "@babel/code-frame": "npm:^7.22.13" 1684 "@babel/code-frame": "npm:^7.24.1"
1262 "@babel/generator": "npm:^7.23.0" 1685 "@babel/generator": "npm:^7.24.1"
1263 "@babel/helper-environment-visitor": "npm:^7.22.20" 1686 "@babel/helper-environment-visitor": "npm:^7.22.20"
1264 "@babel/helper-function-name": "npm:^7.23.0" 1687 "@babel/helper-function-name": "npm:^7.23.0"
1265 "@babel/helper-hoist-variables": "npm:^7.22.5" 1688 "@babel/helper-hoist-variables": "npm:^7.22.5"
1266 "@babel/helper-split-export-declaration": "npm:^7.22.6" 1689 "@babel/helper-split-export-declaration": "npm:^7.22.6"
1267 "@babel/parser": "npm:^7.23.0" 1690 "@babel/parser": "npm:^7.24.1"
1268 "@babel/types": "npm:^7.23.0" 1691 "@babel/types": "npm:^7.24.0"
1269 debug: "npm:^4.1.0" 1692 debug: "npm:^4.3.1"
1270 globals: "npm:^11.1.0" 1693 globals: "npm:^11.1.0"
1271 checksum: 10c0/d096c7c4bab9262a2f658298a3c630ae4a15a10755bb257ae91d5ab3e3b2877438934859c8d34018b7727379fe6b26c4fa2efc81cf4c462a7fe00caf79fa02ff 1694 checksum: 10c0/c087b918f6823776537ba246136c70e7ce0719fc05361ebcbfd16f4e6f2f6f1f8f4f9167f1d9b675f27d12074839605189cc9d689de20b89a85e7c140f23daab
1272 languageName: node 1695 languageName: node
1273 linkType: hard 1696 linkType: hard
1274 1697
1275"@babel/types@npm:^7.18.10, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.21.4, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": 1698"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.4, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.24.0, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3":
1276 version: 7.23.0 1699 version: 7.24.0
1277 resolution: "@babel/types@npm:7.23.0" 1700 resolution: "@babel/types@npm:7.24.0"
1278 dependencies: 1701 dependencies:
1279 "@babel/helper-string-parser": "npm:^7.22.5" 1702 "@babel/helper-string-parser": "npm:^7.23.4"
1280 "@babel/helper-validator-identifier": "npm:^7.22.20" 1703 "@babel/helper-validator-identifier": "npm:^7.22.20"
1281 to-fast-properties: "npm:^2.0.0" 1704 to-fast-properties: "npm:^2.0.0"
1282 checksum: 10c0/70e4db41acb6793d0eb8d81a2fa88f19ee661219b84bd5f703dbdb54eb3a4d3c0dfc55e69034c945b479df9f43fd4b1376480aaccfc19797ce5af1c5d2576b36 1705 checksum: 10c0/777a0bb5dbe038ca4c905fdafb1cdb6bdd10fe9d63ce13eca0bd91909363cbad554a53dc1f902004b78c1dcbc742056f877f2c99eeedff647333b1fadf51235d
1283 languageName: node 1706 languageName: node
1284 linkType: hard 1707 linkType: hard
1285 1708
1286"@codemirror/autocomplete@npm:^6.15.0": 1709"@codemirror/autocomplete@npm:^6.16.0":
1287 version: 6.15.0 1710 version: 6.16.0
1288 resolution: "@codemirror/autocomplete@npm:6.15.0" 1711 resolution: "@codemirror/autocomplete@npm:6.16.0"
1289 dependencies: 1712 dependencies:
1290 "@codemirror/language": "npm:^6.0.0" 1713 "@codemirror/language": "npm:^6.0.0"
1291 "@codemirror/state": "npm:^6.0.0" 1714 "@codemirror/state": "npm:^6.0.0"
@@ -1296,19 +1719,19 @@ __metadata:
1296 "@codemirror/state": ^6.0.0 1719 "@codemirror/state": ^6.0.0
1297 "@codemirror/view": ^6.0.0 1720 "@codemirror/view": ^6.0.0
1298 "@lezer/common": ^1.0.0 1721 "@lezer/common": ^1.0.0
1299 checksum: 10c0/bd4005a6a765dcf0132925f8050e088760d69ee1876dcec936e423609610fc35d60de3a9cdab017d330cef991fd0eb1fdb68d958aacc442fa7a191d593eaee35 1722 checksum: 10c0/629306843b348e39f3e8c6cc76dd0c1caf2a38e2ecbac391b095dcb97f94fa60130b33d9745020e0a95ede3f3ed0bf746ce0437d6db9dcbf8d14fa97e8fbc20f
1300 languageName: node 1723 languageName: node
1301 linkType: hard 1724 linkType: hard
1302 1725
1303"@codemirror/commands@npm:^6.3.3": 1726"@codemirror/commands@npm:^6.5.0":
1304 version: 6.3.3 1727 version: 6.5.0
1305 resolution: "@codemirror/commands@npm:6.3.3" 1728 resolution: "@codemirror/commands@npm:6.5.0"
1306 dependencies: 1729 dependencies:
1307 "@codemirror/language": "npm:^6.0.0" 1730 "@codemirror/language": "npm:^6.0.0"
1308 "@codemirror/state": "npm:^6.4.0" 1731 "@codemirror/state": "npm:^6.4.0"
1309 "@codemirror/view": "npm:^6.0.0" 1732 "@codemirror/view": "npm:^6.0.0"
1310 "@lezer/common": "npm:^1.1.0" 1733 "@lezer/common": "npm:^1.1.0"
1311 checksum: 10c0/0b8384e54232c4046a6a1a4fd56081b2040eb072f678b4f6918f0f792c2c66b52540938b7c7cc766e1f9d5173ab0c57707ff486fa351ed60540471ad7ce7dfdd 1734 checksum: 10c0/4a4a9870b5d53f6537245cfb1c13e56537b05914f998f949c79a1aecb902277f81e14d5f0e2e6a8cbfa2375752965c87c65321391791a250e0e2aab408447d85
1312 languageName: node 1735 languageName: node
1313 linkType: hard 1736 linkType: hard
1314 1737
@@ -1355,14 +1778,514 @@ __metadata:
1355 languageName: node 1778 languageName: node
1356 linkType: hard 1779 linkType: hard
1357 1780
1358"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.23.0, @codemirror/view@npm:^6.26.1": 1781"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.23.0, @codemirror/view@npm:^6.26.3":
1359 version: 6.26.1 1782 version: 6.26.3
1360 resolution: "@codemirror/view@npm:6.26.1" 1783 resolution: "@codemirror/view@npm:6.26.3"
1361 dependencies: 1784 dependencies:
1362 "@codemirror/state": "npm:^6.4.0" 1785 "@codemirror/state": "npm:^6.4.0"
1363 style-mod: "npm:^4.1.0" 1786 style-mod: "npm:^4.1.0"
1364 w3c-keyname: "npm:^2.2.4" 1787 w3c-keyname: "npm:^2.2.4"
1365 checksum: 10c0/5931fb3f2cbf8864fab59b817a19bbb894e739732022819e639992a9ad78fdf7f1b74208ca34a09b3067a7b985f7233eba6328c23d149b87eaa4f52c55330082 1788 checksum: 10c0/b2018bd4a0f738dcbfb609412784c7fb13d276d8be6044b513875710567c802c8d6ab5ad755c5669d09029b1c0f7dc739c2e5e5e1256df3d879b1899a07b8df8
1789 languageName: node
1790 linkType: hard
1791
1792"@colors/colors@npm:1.5.0":
1793 version: 1.5.0
1794 resolution: "@colors/colors@npm:1.5.0"
1795 checksum: 10c0/eb42729851adca56d19a08e48d5a1e95efd2a32c55ae0323de8119052be0510d4b7a1611f2abcbf28c044a6c11e6b7d38f99fccdad7429300c37a8ea5fb95b44
1796 languageName: node
1797 linkType: hard
1798
1799"@discoveryjs/json-ext@npm:0.5.7":
1800 version: 0.5.7
1801 resolution: "@discoveryjs/json-ext@npm:0.5.7"
1802 checksum: 10c0/e10f1b02b78e4812646ddf289b7d9f2cb567d336c363b266bd50cd223cf3de7c2c74018d91cd2613041568397ef3a4a2b500aba588c6e5bd78c38374ba68f38c
1803 languageName: node
1804 linkType: hard
1805
1806"@docsearch/css@npm:3.6.0":
1807 version: 3.6.0
1808 resolution: "@docsearch/css@npm:3.6.0"
1809 checksum: 10c0/125b144ce9b9f90a4e95e6ffccde2229e622d9cfedac4ad87018137cbeac0b87fd1b6245595f275e5f9b3c50553a0c53b55e8dbdc7a91aeb0eed217423acddf3
1810 languageName: node
1811 linkType: hard
1812
1813"@docsearch/react@npm:^3.5.2":
1814 version: 3.6.0
1815 resolution: "@docsearch/react@npm:3.6.0"
1816 dependencies:
1817 "@algolia/autocomplete-core": "npm:1.9.3"
1818 "@algolia/autocomplete-preset-algolia": "npm:1.9.3"
1819 "@docsearch/css": "npm:3.6.0"
1820 algoliasearch: "npm:^4.19.1"
1821 peerDependencies:
1822 "@types/react": ">= 16.8.0 < 19.0.0"
1823 react: ">= 16.8.0 < 19.0.0"
1824 react-dom: ">= 16.8.0 < 19.0.0"
1825 search-insights: ">= 1 < 3"
1826 peerDependenciesMeta:
1827 "@types/react":
1828 optional: true
1829 react:
1830 optional: true
1831 react-dom:
1832 optional: true
1833 search-insights:
1834 optional: true
1835 checksum: 10c0/15f8137b1aa611b8f3ab713b20ca80c638eeb67a6e79acc5d2aa1e7cbd60f3dd908bc95b50ec4b1482a98c7dbe5afa3b169a8219799b28b38816a7ded6807874
1836 languageName: node
1837 linkType: hard
1838
1839"@docusaurus/core@npm:3.2.1, @docusaurus/core@npm:^3.2.1":
1840 version: 3.2.1
1841 resolution: "@docusaurus/core@npm:3.2.1"
1842 dependencies:
1843 "@babel/core": "npm:^7.23.3"
1844 "@babel/generator": "npm:^7.23.3"
1845 "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3"
1846 "@babel/plugin-transform-runtime": "npm:^7.22.9"
1847 "@babel/preset-env": "npm:^7.22.9"
1848 "@babel/preset-react": "npm:^7.22.5"
1849 "@babel/preset-typescript": "npm:^7.22.5"
1850 "@babel/runtime": "npm:^7.22.6"
1851 "@babel/runtime-corejs3": "npm:^7.22.6"
1852 "@babel/traverse": "npm:^7.22.8"
1853 "@docusaurus/cssnano-preset": "npm:3.2.1"
1854 "@docusaurus/logger": "npm:3.2.1"
1855 "@docusaurus/mdx-loader": "npm:3.2.1"
1856 "@docusaurus/react-loadable": "npm:5.5.2"
1857 "@docusaurus/utils": "npm:3.2.1"
1858 "@docusaurus/utils-common": "npm:3.2.1"
1859 "@docusaurus/utils-validation": "npm:3.2.1"
1860 "@svgr/webpack": "npm:^6.5.1"
1861 autoprefixer: "npm:^10.4.14"
1862 babel-loader: "npm:^9.1.3"
1863 babel-plugin-dynamic-import-node: "npm:^2.3.3"
1864 boxen: "npm:^6.2.1"
1865 chalk: "npm:^4.1.2"
1866 chokidar: "npm:^3.5.3"
1867 clean-css: "npm:^5.3.2"
1868 cli-table3: "npm:^0.6.3"
1869 combine-promises: "npm:^1.1.0"
1870 commander: "npm:^5.1.0"
1871 copy-webpack-plugin: "npm:^11.0.0"
1872 core-js: "npm:^3.31.1"
1873 css-loader: "npm:^6.8.1"
1874 css-minimizer-webpack-plugin: "npm:^4.2.2"
1875 cssnano: "npm:^5.1.15"
1876 del: "npm:^6.1.1"
1877 detect-port: "npm:^1.5.1"
1878 escape-html: "npm:^1.0.3"
1879 eta: "npm:^2.2.0"
1880 eval: "npm:^0.1.8"
1881 file-loader: "npm:^6.2.0"
1882 fs-extra: "npm:^11.1.1"
1883 html-minifier-terser: "npm:^7.2.0"
1884 html-tags: "npm:^3.3.1"
1885 html-webpack-plugin: "npm:^5.5.3"
1886 leven: "npm:^3.1.0"
1887 lodash: "npm:^4.17.21"
1888 mini-css-extract-plugin: "npm:^2.7.6"
1889 p-map: "npm:^4.0.0"
1890 postcss: "npm:^8.4.26"
1891 postcss-loader: "npm:^7.3.3"
1892 prompts: "npm:^2.4.2"
1893 react-dev-utils: "npm:^12.0.1"
1894 react-helmet-async: "npm:^1.3.0"
1895 react-loadable: "npm:@docusaurus/react-loadable@5.5.2"
1896 react-loadable-ssr-addon-v5-slorber: "npm:^1.0.1"
1897 react-router: "npm:^5.3.4"
1898 react-router-config: "npm:^5.1.1"
1899 react-router-dom: "npm:^5.3.4"
1900 rtl-detect: "npm:^1.0.4"
1901 semver: "npm:^7.5.4"
1902 serve-handler: "npm:^6.1.5"
1903 shelljs: "npm:^0.8.5"
1904 terser-webpack-plugin: "npm:^5.3.9"
1905 tslib: "npm:^2.6.0"
1906 update-notifier: "npm:^6.0.2"
1907 url-loader: "npm:^4.1.1"
1908 webpack: "npm:^5.88.1"
1909 webpack-bundle-analyzer: "npm:^4.9.0"
1910 webpack-dev-server: "npm:^4.15.1"
1911 webpack-merge: "npm:^5.9.0"
1912 webpackbar: "npm:^5.0.2"
1913 peerDependencies:
1914 react: ^18.0.0
1915 react-dom: ^18.0.0
1916 bin:
1917 docusaurus: bin/docusaurus.mjs
1918 checksum: 10c0/f80d56027cf9ca3110eb75c6b416328f083c8ff99cc579e9f389783333b2934286c5748894dff27ead5678b6c3c11ce5db009690c248b130dad26678b68a2730
1919 languageName: node
1920 linkType: hard
1921
1922"@docusaurus/cssnano-preset@npm:3.2.1":
1923 version: 3.2.1
1924 resolution: "@docusaurus/cssnano-preset@npm:3.2.1"
1925 dependencies:
1926 cssnano-preset-advanced: "npm:^5.3.10"
1927 postcss: "npm:^8.4.26"
1928 postcss-sort-media-queries: "npm:^4.4.1"
1929 tslib: "npm:^2.6.0"
1930 checksum: 10c0/b06c7f8ddcc6e265b09f34f205fc65402514ea9b01e5223b0820ba6df9d68b6778e8ef594262b5aa8d2f0f05728d20cb2539d33bc94c08057131b28b4e3448b6
1931 languageName: node
1932 linkType: hard
1933
1934"@docusaurus/logger@npm:3.2.1":
1935 version: 3.2.1
1936 resolution: "@docusaurus/logger@npm:3.2.1"
1937 dependencies:
1938 chalk: "npm:^4.1.2"
1939 tslib: "npm:^2.6.0"
1940 checksum: 10c0/3b7c9418f9ca570bfcb16690394ff83551db60646cd3c883442d6ce05a88ea27bab70ba4ffe0160a299b03a2d471472668760e429be8f5255f39ec3edab9308b
1941 languageName: node
1942 linkType: hard
1943
1944"@docusaurus/mdx-loader@npm:3.2.1, @docusaurus/mdx-loader@npm:^3.2.1":
1945 version: 3.2.1
1946 resolution: "@docusaurus/mdx-loader@npm:3.2.1"
1947 dependencies:
1948 "@docusaurus/logger": "npm:3.2.1"
1949 "@docusaurus/utils": "npm:3.2.1"
1950 "@docusaurus/utils-validation": "npm:3.2.1"
1951 "@mdx-js/mdx": "npm:^3.0.0"
1952 "@slorber/remark-comment": "npm:^1.0.0"
1953 escape-html: "npm:^1.0.3"
1954 estree-util-value-to-estree: "npm:^3.0.1"
1955 file-loader: "npm:^6.2.0"
1956 fs-extra: "npm:^11.1.1"
1957 image-size: "npm:^1.0.2"
1958 mdast-util-mdx: "npm:^3.0.0"
1959 mdast-util-to-string: "npm:^4.0.0"
1960 rehype-raw: "npm:^7.0.0"
1961 remark-directive: "npm:^3.0.0"
1962 remark-emoji: "npm:^4.0.0"
1963 remark-frontmatter: "npm:^5.0.0"
1964 remark-gfm: "npm:^4.0.0"
1965 stringify-object: "npm:^3.3.0"
1966 tslib: "npm:^2.6.0"
1967 unified: "npm:^11.0.3"
1968 unist-util-visit: "npm:^5.0.0"
1969 url-loader: "npm:^4.1.1"
1970 vfile: "npm:^6.0.1"
1971 webpack: "npm:^5.88.1"
1972 peerDependencies:
1973 react: ^18.0.0
1974 react-dom: ^18.0.0
1975 checksum: 10c0/0e392229fb7d340f4c7b368f4b6669d2f4b586fd7ee97cef08a81026ba91f800c120b00afb3cd8cfa3318a1947984ba4bda27aee0eee4f01d2434c210ffdc91b
1976 languageName: node
1977 linkType: hard
1978
1979"@docusaurus/module-type-aliases@npm:3.2.1, @docusaurus/module-type-aliases@npm:^3.2.1":
1980 version: 3.2.1
1981 resolution: "@docusaurus/module-type-aliases@npm:3.2.1"
1982 dependencies:
1983 "@docusaurus/react-loadable": "npm:5.5.2"
1984 "@docusaurus/types": "npm:3.2.1"
1985 "@types/history": "npm:^4.7.11"
1986 "@types/react": "npm:*"
1987 "@types/react-router-config": "npm:*"
1988 "@types/react-router-dom": "npm:*"
1989 react-helmet-async: "npm:*"
1990 react-loadable: "npm:@docusaurus/react-loadable@5.5.2"
1991 peerDependencies:
1992 react: "*"
1993 react-dom: "*"
1994 checksum: 10c0/fbf7a9ac5832f45e6afa8356cbe33bc979dce1ae9bc3791056261a5d7b1ad1220ecd7b07d1d7cc6b5b2d8d2b437fb31b4ea7df2ec40aad48f245832ca1b067dd
1995 languageName: node
1996 linkType: hard
1997
1998"@docusaurus/plugin-content-blog@npm:3.2.1":
1999 version: 3.2.1
2000 resolution: "@docusaurus/plugin-content-blog@npm:3.2.1"
2001 dependencies:
2002 "@docusaurus/core": "npm:3.2.1"
2003 "@docusaurus/logger": "npm:3.2.1"
2004 "@docusaurus/mdx-loader": "npm:3.2.1"
2005 "@docusaurus/types": "npm:3.2.1"
2006 "@docusaurus/utils": "npm:3.2.1"
2007 "@docusaurus/utils-common": "npm:3.2.1"
2008 "@docusaurus/utils-validation": "npm:3.2.1"
2009 cheerio: "npm:^1.0.0-rc.12"
2010 feed: "npm:^4.2.2"
2011 fs-extra: "npm:^11.1.1"
2012 lodash: "npm:^4.17.21"
2013 reading-time: "npm:^1.5.0"
2014 srcset: "npm:^4.0.0"
2015 tslib: "npm:^2.6.0"
2016 unist-util-visit: "npm:^5.0.0"
2017 utility-types: "npm:^3.10.0"
2018 webpack: "npm:^5.88.1"
2019 peerDependencies:
2020 react: ^18.0.0
2021 react-dom: ^18.0.0
2022 checksum: 10c0/0d918a4e6a447488f9649cb01029cf040653e0d18122df360663a53ccb83f9f342f28597b80514ba9cac9d84d1bbf02d9679fe57d2832b36c59bcf1364977f41
2023 languageName: node
2024 linkType: hard
2025
2026"@docusaurus/plugin-content-docs@npm:3.2.1, @docusaurus/plugin-content-docs@npm:^3.2.1":
2027 version: 3.2.1
2028 resolution: "@docusaurus/plugin-content-docs@npm:3.2.1"
2029 dependencies:
2030 "@docusaurus/core": "npm:3.2.1"
2031 "@docusaurus/logger": "npm:3.2.1"
2032 "@docusaurus/mdx-loader": "npm:3.2.1"
2033 "@docusaurus/module-type-aliases": "npm:3.2.1"
2034 "@docusaurus/types": "npm:3.2.1"
2035 "@docusaurus/utils": "npm:3.2.1"
2036 "@docusaurus/utils-common": "npm:3.2.1"
2037 "@docusaurus/utils-validation": "npm:3.2.1"
2038 "@types/react-router-config": "npm:^5.0.7"
2039 combine-promises: "npm:^1.1.0"
2040 fs-extra: "npm:^11.1.1"
2041 js-yaml: "npm:^4.1.0"
2042 lodash: "npm:^4.17.21"
2043 tslib: "npm:^2.6.0"
2044 utility-types: "npm:^3.10.0"
2045 webpack: "npm:^5.88.1"
2046 peerDependencies:
2047 react: ^18.0.0
2048 react-dom: ^18.0.0
2049 checksum: 10c0/1f6412e92623d967d2104e68bd4f59e5c596b4f9726e582fce691d76be4491694f7e8dcbbb700232798f635ebb5a54f37a568b00f4eb91fe79ffc5ef8dcda09b
2050 languageName: node
2051 linkType: hard
2052
2053"@docusaurus/plugin-content-pages@npm:3.2.1, @docusaurus/plugin-content-pages@npm:^3.2.1":
2054 version: 3.2.1
2055 resolution: "@docusaurus/plugin-content-pages@npm:3.2.1"
2056 dependencies:
2057 "@docusaurus/core": "npm:3.2.1"
2058 "@docusaurus/mdx-loader": "npm:3.2.1"
2059 "@docusaurus/types": "npm:3.2.1"
2060 "@docusaurus/utils": "npm:3.2.1"
2061 "@docusaurus/utils-validation": "npm:3.2.1"
2062 fs-extra: "npm:^11.1.1"
2063 tslib: "npm:^2.6.0"
2064 webpack: "npm:^5.88.1"
2065 peerDependencies:
2066 react: ^18.0.0
2067 react-dom: ^18.0.0
2068 checksum: 10c0/cca2ec8d44d3a8d7db39ad728bcb60595feec51e56be14ef7755945421e22ac3faf39fcd3440497b072d282cb0616547da092e2ae46660eae1d4f8dfb268c182
2069 languageName: node
2070 linkType: hard
2071
2072"@docusaurus/plugin-sitemap@npm:^3.2.1":
2073 version: 3.2.1
2074 resolution: "@docusaurus/plugin-sitemap@npm:3.2.1"
2075 dependencies:
2076 "@docusaurus/core": "npm:3.2.1"
2077 "@docusaurus/logger": "npm:3.2.1"
2078 "@docusaurus/types": "npm:3.2.1"
2079 "@docusaurus/utils": "npm:3.2.1"
2080 "@docusaurus/utils-common": "npm:3.2.1"
2081 "@docusaurus/utils-validation": "npm:3.2.1"
2082 fs-extra: "npm:^11.1.1"
2083 sitemap: "npm:^7.1.1"
2084 tslib: "npm:^2.6.0"
2085 peerDependencies:
2086 react: ^18.0.0
2087 react-dom: ^18.0.0
2088 checksum: 10c0/24856320dcc039d5081d5c39834111aaa044880b98173c1193a5bef2556ccacf829e3623d48936142073daa58dac8d4220a6e0fa8756897fec811c580f03d491
2089 languageName: node
2090 linkType: hard
2091
2092"@docusaurus/react-loadable@npm:5.5.2, react-loadable@npm:@docusaurus/react-loadable@5.5.2":
2093 version: 5.5.2
2094 resolution: "@docusaurus/react-loadable@npm:5.5.2"
2095 dependencies:
2096 "@types/react": "npm:*"
2097 prop-types: "npm:^15.6.2"
2098 peerDependencies:
2099 react: "*"
2100 checksum: 10c0/3f6a335d55c811c4fd40300ff0d87ae88f44f96e9c43a4c3f54f1c19b7a55bae601e43d66f797074e204699fd6abb69affa65fc4c5a819e8f1c2adb8a912da46
2101 languageName: node
2102 linkType: hard
2103
2104"@docusaurus/theme-classic@npm:^3.2.1":
2105 version: 3.2.1
2106 resolution: "@docusaurus/theme-classic@npm:3.2.1"
2107 dependencies:
2108 "@docusaurus/core": "npm:3.2.1"
2109 "@docusaurus/mdx-loader": "npm:3.2.1"
2110 "@docusaurus/module-type-aliases": "npm:3.2.1"
2111 "@docusaurus/plugin-content-blog": "npm:3.2.1"
2112 "@docusaurus/plugin-content-docs": "npm:3.2.1"
2113 "@docusaurus/plugin-content-pages": "npm:3.2.1"
2114 "@docusaurus/theme-common": "npm:3.2.1"
2115 "@docusaurus/theme-translations": "npm:3.2.1"
2116 "@docusaurus/types": "npm:3.2.1"
2117 "@docusaurus/utils": "npm:3.2.1"
2118 "@docusaurus/utils-common": "npm:3.2.1"
2119 "@docusaurus/utils-validation": "npm:3.2.1"
2120 "@mdx-js/react": "npm:^3.0.0"
2121 clsx: "npm:^2.0.0"
2122 copy-text-to-clipboard: "npm:^3.2.0"
2123 infima: "npm:0.2.0-alpha.43"
2124 lodash: "npm:^4.17.21"
2125 nprogress: "npm:^0.2.0"
2126 postcss: "npm:^8.4.26"
2127 prism-react-renderer: "npm:^2.3.0"
2128 prismjs: "npm:^1.29.0"
2129 react-router-dom: "npm:^5.3.4"
2130 rtlcss: "npm:^4.1.0"
2131 tslib: "npm:^2.6.0"
2132 utility-types: "npm:^3.10.0"
2133 peerDependencies:
2134 react: ^18.0.0
2135 react-dom: ^18.0.0
2136 checksum: 10c0/bbd137d895fd4fa08bd389012721257766b7d9218249b8a45e92b376ab76f9dd39e5d8d747872fc8a4c0f47d2a7a5f30d838a9c1d331282f7c4f8795dd1abc5c
2137 languageName: node
2138 linkType: hard
2139
2140"@docusaurus/theme-common@npm:3.2.1, @docusaurus/theme-common@npm:^3.2.1":
2141 version: 3.2.1
2142 resolution: "@docusaurus/theme-common@npm:3.2.1"
2143 dependencies:
2144 "@docusaurus/mdx-loader": "npm:3.2.1"
2145 "@docusaurus/module-type-aliases": "npm:3.2.1"
2146 "@docusaurus/plugin-content-blog": "npm:3.2.1"
2147 "@docusaurus/plugin-content-docs": "npm:3.2.1"
2148 "@docusaurus/plugin-content-pages": "npm:3.2.1"
2149 "@docusaurus/utils": "npm:3.2.1"
2150 "@docusaurus/utils-common": "npm:3.2.1"
2151 "@types/history": "npm:^4.7.11"
2152 "@types/react": "npm:*"
2153 "@types/react-router-config": "npm:*"
2154 clsx: "npm:^2.0.0"
2155 parse-numeric-range: "npm:^1.3.0"
2156 prism-react-renderer: "npm:^2.3.0"
2157 tslib: "npm:^2.6.0"
2158 utility-types: "npm:^3.10.0"
2159 peerDependencies:
2160 react: ^18.0.0
2161 react-dom: ^18.0.0
2162 checksum: 10c0/f9da0e73740a6eb94ef6972d2f29fbe69f8924e10a034987c06ba3b64a898b4c52b2e618813d101c2a2608eb7d449eba672ceecad0449c5c8fde54b46255e0f3
2163 languageName: node
2164 linkType: hard
2165
2166"@docusaurus/theme-search-algolia@npm:^3.2.1":
2167 version: 3.2.1
2168 resolution: "@docusaurus/theme-search-algolia@npm:3.2.1"
2169 dependencies:
2170 "@docsearch/react": "npm:^3.5.2"
2171 "@docusaurus/core": "npm:3.2.1"
2172 "@docusaurus/logger": "npm:3.2.1"
2173 "@docusaurus/plugin-content-docs": "npm:3.2.1"
2174 "@docusaurus/theme-common": "npm:3.2.1"
2175 "@docusaurus/theme-translations": "npm:3.2.1"
2176 "@docusaurus/utils": "npm:3.2.1"
2177 "@docusaurus/utils-validation": "npm:3.2.1"
2178 algoliasearch: "npm:^4.18.0"
2179 algoliasearch-helper: "npm:^3.13.3"
2180 clsx: "npm:^2.0.0"
2181 eta: "npm:^2.2.0"
2182 fs-extra: "npm:^11.1.1"
2183 lodash: "npm:^4.17.21"
2184 tslib: "npm:^2.6.0"
2185 utility-types: "npm:^3.10.0"
2186 peerDependencies:
2187 react: ^18.0.0
2188 react-dom: ^18.0.0
2189 checksum: 10c0/47141800c81defe1511e5a7ca87ee1364e49edfbfb1bd181938a486f0d69a745380ba71ecb75a04fe4bb6571f301b60ddaba35007add9a0f8b06dea509b41f3e
2190 languageName: node
2191 linkType: hard
2192
2193"@docusaurus/theme-translations@npm:3.2.1":
2194 version: 3.2.1
2195 resolution: "@docusaurus/theme-translations@npm:3.2.1"
2196 dependencies:
2197 fs-extra: "npm:^11.1.1"
2198 tslib: "npm:^2.6.0"
2199 checksum: 10c0/b364cf03ba353b7188533539935578c5f7be942a0164fe878bf92bb21bb53a5a36ba3ee9f1dc18ae1a6f7d93b765e57d067ee663c1c749302a92eb5fe17311cf
2200 languageName: node
2201 linkType: hard
2202
2203"@docusaurus/types@npm:3.2.1, @docusaurus/types@npm:^3.2.1":
2204 version: 3.2.1
2205 resolution: "@docusaurus/types@npm:3.2.1"
2206 dependencies:
2207 "@mdx-js/mdx": "npm:^3.0.0"
2208 "@types/history": "npm:^4.7.11"
2209 "@types/react": "npm:*"
2210 commander: "npm:^5.1.0"
2211 joi: "npm:^17.9.2"
2212 react-helmet-async: "npm:^1.3.0"
2213 utility-types: "npm:^3.10.0"
2214 webpack: "npm:^5.88.1"
2215 webpack-merge: "npm:^5.9.0"
2216 peerDependencies:
2217 react: ^18.0.0
2218 react-dom: ^18.0.0
2219 checksum: 10c0/ea48d186a2f5a130dcc254147568343c884212e2951c8f34fa0aad123fc70d2da010c0ef8a7e223162d5d0e9a91f14fc7902ce25f9e5c2eed954b47d621ebf4f
2220 languageName: node
2221 linkType: hard
2222
2223"@docusaurus/utils-common@npm:3.2.1":
2224 version: 3.2.1
2225 resolution: "@docusaurus/utils-common@npm:3.2.1"
2226 dependencies:
2227 tslib: "npm:^2.6.0"
2228 peerDependencies:
2229 "@docusaurus/types": "*"
2230 peerDependenciesMeta:
2231 "@docusaurus/types":
2232 optional: true
2233 checksum: 10c0/64a47fd93b6e1b82da6a5e833ece380c474383430466a228263682396763b31dc901ffccfde393450fb9b0e6f6e7f7b98b70afb2c2cf37369ebb0cc2ca12db7c
2234 languageName: node
2235 linkType: hard
2236
2237"@docusaurus/utils-validation@npm:3.2.1":
2238 version: 3.2.1
2239 resolution: "@docusaurus/utils-validation@npm:3.2.1"
2240 dependencies:
2241 "@docusaurus/logger": "npm:3.2.1"
2242 "@docusaurus/utils": "npm:3.2.1"
2243 "@docusaurus/utils-common": "npm:3.2.1"
2244 joi: "npm:^17.9.2"
2245 js-yaml: "npm:^4.1.0"
2246 tslib: "npm:^2.6.0"
2247 checksum: 10c0/79dd6f85f0a8050ca35da28c7cc86d55c475718eda3bb4cfe5f17cca0da609592157149bab6d2704fdbeaaa2a108834879b28649d590a56fe6b83f1077ccd066
2248 languageName: node
2249 linkType: hard
2250
2251"@docusaurus/utils@npm:3.2.1":
2252 version: 3.2.1
2253 resolution: "@docusaurus/utils@npm:3.2.1"
2254 dependencies:
2255 "@docusaurus/logger": "npm:3.2.1"
2256 "@docusaurus/utils-common": "npm:3.2.1"
2257 "@svgr/webpack": "npm:^6.5.1"
2258 escape-string-regexp: "npm:^4.0.0"
2259 file-loader: "npm:^6.2.0"
2260 fs-extra: "npm:^11.1.1"
2261 github-slugger: "npm:^1.5.0"
2262 globby: "npm:^11.1.0"
2263 gray-matter: "npm:^4.0.3"
2264 jiti: "npm:^1.20.0"
2265 js-yaml: "npm:^4.1.0"
2266 lodash: "npm:^4.17.21"
2267 micromatch: "npm:^4.0.5"
2268 prompts: "npm:^2.4.2"
2269 resolve-pathname: "npm:^3.0.0"
2270 shelljs: "npm:^0.8.5"
2271 tslib: "npm:^2.6.0"
2272 url-loader: "npm:^4.1.1"
2273 webpack: "npm:^5.88.1"
2274 peerDependencies:
2275 "@docusaurus/types": "*"
2276 peerDependenciesMeta:
2277 "@docusaurus/types":
2278 optional: true
2279 checksum: 10c0/02e8caff070060d138a2c06e07af988c9905997084b77d1373dbde7dca7122b3cc90979a4c68e5cccc234eb62ba459bca6bb4be5b56d00272d8cf1c5842ff4b6
2280 languageName: node
2281 linkType: hard
2282
2283"@emnapi/runtime@npm:^1.1.0":
2284 version: 1.1.1
2285 resolution: "@emnapi/runtime@npm:1.1.1"
2286 dependencies:
2287 tslib: "npm:^2.4.0"
2288 checksum: 10c0/c11ee57abf0ec643e64ccdace4b4fcc0b0c7b1117a191f969e84ae3669841aa90d2c17fa35b73f5a66fc0c843c8caca7bf11187faaeaa526bcfb7dbfb9b85de9
1366 languageName: node 2289 languageName: node
1367 linkType: hard 2290 linkType: hard
1368 2291
@@ -1684,10 +2607,10 @@ __metadata:
1684 languageName: node 2607 languageName: node
1685 linkType: hard 2608 linkType: hard
1686 2609
1687"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": 2610"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1":
1688 version: 4.6.2 2611 version: 4.10.0
1689 resolution: "@eslint-community/regexpp@npm:4.6.2" 2612 resolution: "@eslint-community/regexpp@npm:4.10.0"
1690 checksum: 10c0/da800788298f8419f4c4e04eaa4e3c97e7f57537e822e7b150de662e420e3d437816b863e490807bd0b00e715b0989f9d8864bf54357cbcfa84e4255b910789d 2613 checksum: 10c0/c5f60ef1f1ea7649fa7af0e80a5a79f64b55a8a8fa5086de4727eb4c86c652aedee407a9c143b8995d2c0b2d75c1222bec9ba5d73dbfc1f314550554f0979ef4
1691 languageName: node 2614 languageName: node
1692 linkType: hard 2615 linkType: hard
1693 2616
@@ -1753,24 +2676,40 @@ __metadata:
1753 languageName: node 2676 languageName: node
1754 linkType: hard 2677 linkType: hard
1755 2678
1756"@fontsource-variable/jetbrains-mono@npm:^5.0.20": 2679"@fontsource-variable/jetbrains-mono@npm:^5.0.21":
1757 version: 5.0.20 2680 version: 5.0.21
1758 resolution: "@fontsource-variable/jetbrains-mono@npm:5.0.20" 2681 resolution: "@fontsource-variable/jetbrains-mono@npm:5.0.21"
1759 checksum: 10c0/c9ad58f20a6e65ce63b2cb62e1ba741a695578bb7e88c228bd0a4383e14abdf47b585a3f53464c47cf190f79ffe81d0fbaaa878035a0e40abc2b1c5756f6b0fc 2682 checksum: 10c0/3b5d9fab7eec1bcffe64ad8eec738ca8a03d848b4efd09975d56631121cd2f588aa43c77bb2a485dc3e8034c1a00a53063f0dc88f8738e91770adbf60cc69abf
2683 languageName: node
2684 linkType: hard
2685
2686"@fontsource-variable/open-sans@npm:^5.0.29":
2687 version: 5.0.29
2688 resolution: "@fontsource-variable/open-sans@npm:5.0.29"
2689 checksum: 10c0/e2f38906bba1782ec696582c78deeb6729afdf23ef37f34f138c80970b27bb3d02023a5f65797c8daaa26ac6945fd9a54f68622b2c7a29e4a888af3a289449a6
1760 languageName: node 2690 languageName: node
1761 linkType: hard 2691 linkType: hard
1762 2692
1763"@fontsource-variable/open-sans@npm:^5.0.28": 2693"@fontsource/open-sans@npm:^5.0.28":
1764 version: 5.0.28 2694 version: 5.0.28
1765 resolution: "@fontsource-variable/open-sans@npm:5.0.28" 2695 resolution: "@fontsource/open-sans@npm:5.0.28"
1766 checksum: 10c0/0851394dc06c476ace8ffc1a4f4592466c395ce11e92fdaf4d11ddf4bb717c07f186dfa6f375e6d02a5b0368e5d54d4b19a0e2aa49c7b3a7446f19cd99ef59a4 2696 checksum: 10c0/b5fea9c3703ffa22ceb1c4c1c3a7446348a9192af100aa2213640fab76b222beb08ed780d3ea84bb7b669c07eb5e415529df3352fc8a5118714e53e42fd20ceb
1767 languageName: node 2697 languageName: node
1768 linkType: hard 2698 linkType: hard
1769 2699
1770"@fontsource/open-sans@npm:^5.0.27": 2700"@hapi/hoek@npm:^9.0.0, @hapi/hoek@npm:^9.3.0":
1771 version: 5.0.27 2701 version: 9.3.0
1772 resolution: "@fontsource/open-sans@npm:5.0.27" 2702 resolution: "@hapi/hoek@npm:9.3.0"
1773 checksum: 10c0/cc8f22a5e5f59448589e7e00e0bd6867eeaadfafccf0cb9caf5cf6e60ab73538668189cce4d464d0e0ce0002f373b9031f409c3f7d664c6e449ffad4ed8602d6 2703 checksum: 10c0/a096063805051fb8bba4c947e293c664b05a32b47e13bc654c0dd43813a1cec993bdd8f29ceb838020299e1d0f89f68dc0d62a603c13c9cc8541963f0beca055
2704 languageName: node
2705 linkType: hard
2706
2707"@hapi/topo@npm:^5.1.0":
2708 version: 5.1.0
2709 resolution: "@hapi/topo@npm:5.1.0"
2710 dependencies:
2711 "@hapi/hoek": "npm:^9.0.0"
2712 checksum: 10c0/b16b06d9357947149e032bdf10151eb71aea8057c79c4046bf32393cb89d0d0f7ca501c40c0f7534a5ceca078de0700d2257ac855c15e59fe4e00bba2f25c86f
1774 languageName: node 2713 languageName: node
1775 linkType: hard 2714 linkType: hard
1776 2715
@@ -1810,6 +2749,181 @@ __metadata:
1810 languageName: node 2749 languageName: node
1811 linkType: hard 2750 linkType: hard
1812 2751
2752"@img/sharp-darwin-arm64@npm:0.33.3":
2753 version: 0.33.3
2754 resolution: "@img/sharp-darwin-arm64@npm:0.33.3"
2755 dependencies:
2756 "@img/sharp-libvips-darwin-arm64": "npm:1.0.2"
2757 dependenciesMeta:
2758 "@img/sharp-libvips-darwin-arm64":
2759 optional: true
2760 conditions: os=darwin & cpu=arm64
2761 languageName: node
2762 linkType: hard
2763
2764"@img/sharp-darwin-x64@npm:0.33.3":
2765 version: 0.33.3
2766 resolution: "@img/sharp-darwin-x64@npm:0.33.3"
2767 dependencies:
2768 "@img/sharp-libvips-darwin-x64": "npm:1.0.2"
2769 dependenciesMeta:
2770 "@img/sharp-libvips-darwin-x64":
2771 optional: true
2772 conditions: os=darwin & cpu=x64
2773 languageName: node
2774 linkType: hard
2775
2776"@img/sharp-libvips-darwin-arm64@npm:1.0.2":
2777 version: 1.0.2
2778 resolution: "@img/sharp-libvips-darwin-arm64@npm:1.0.2"
2779 conditions: os=darwin & cpu=arm64
2780 languageName: node
2781 linkType: hard
2782
2783"@img/sharp-libvips-darwin-x64@npm:1.0.2":
2784 version: 1.0.2
2785 resolution: "@img/sharp-libvips-darwin-x64@npm:1.0.2"
2786 conditions: os=darwin & cpu=x64
2787 languageName: node
2788 linkType: hard
2789
2790"@img/sharp-libvips-linux-arm64@npm:1.0.2":
2791 version: 1.0.2
2792 resolution: "@img/sharp-libvips-linux-arm64@npm:1.0.2"
2793 conditions: os=linux & cpu=arm64 & libc=glibc
2794 languageName: node
2795 linkType: hard
2796
2797"@img/sharp-libvips-linux-arm@npm:1.0.2":
2798 version: 1.0.2
2799 resolution: "@img/sharp-libvips-linux-arm@npm:1.0.2"
2800 conditions: os=linux & cpu=arm & libc=glibc
2801 languageName: node
2802 linkType: hard
2803
2804"@img/sharp-libvips-linux-s390x@npm:1.0.2":
2805 version: 1.0.2
2806 resolution: "@img/sharp-libvips-linux-s390x@npm:1.0.2"
2807 conditions: os=linux & cpu=s390x & libc=glibc
2808 languageName: node
2809 linkType: hard
2810
2811"@img/sharp-libvips-linux-x64@npm:1.0.2":
2812 version: 1.0.2
2813 resolution: "@img/sharp-libvips-linux-x64@npm:1.0.2"
2814 conditions: os=linux & cpu=x64 & libc=glibc
2815 languageName: node
2816 linkType: hard
2817
2818"@img/sharp-libvips-linuxmusl-arm64@npm:1.0.2":
2819 version: 1.0.2
2820 resolution: "@img/sharp-libvips-linuxmusl-arm64@npm:1.0.2"
2821 conditions: os=linux & cpu=arm64 & libc=musl
2822 languageName: node
2823 linkType: hard
2824
2825"@img/sharp-libvips-linuxmusl-x64@npm:1.0.2":
2826 version: 1.0.2
2827 resolution: "@img/sharp-libvips-linuxmusl-x64@npm:1.0.2"
2828 conditions: os=linux & cpu=x64 & libc=musl
2829 languageName: node
2830 linkType: hard
2831
2832"@img/sharp-linux-arm64@npm:0.33.3":
2833 version: 0.33.3
2834 resolution: "@img/sharp-linux-arm64@npm:0.33.3"
2835 dependencies:
2836 "@img/sharp-libvips-linux-arm64": "npm:1.0.2"
2837 dependenciesMeta:
2838 "@img/sharp-libvips-linux-arm64":
2839 optional: true
2840 conditions: os=linux & cpu=arm64 & libc=glibc
2841 languageName: node
2842 linkType: hard
2843
2844"@img/sharp-linux-arm@npm:0.33.3":
2845 version: 0.33.3
2846 resolution: "@img/sharp-linux-arm@npm:0.33.3"
2847 dependencies:
2848 "@img/sharp-libvips-linux-arm": "npm:1.0.2"
2849 dependenciesMeta:
2850 "@img/sharp-libvips-linux-arm":
2851 optional: true
2852 conditions: os=linux & cpu=arm & libc=glibc
2853 languageName: node
2854 linkType: hard
2855
2856"@img/sharp-linux-s390x@npm:0.33.3":
2857 version: 0.33.3
2858 resolution: "@img/sharp-linux-s390x@npm:0.33.3"
2859 dependencies:
2860 "@img/sharp-libvips-linux-s390x": "npm:1.0.2"
2861 dependenciesMeta:
2862 "@img/sharp-libvips-linux-s390x":
2863 optional: true
2864 conditions: os=linux & cpu=s390x & libc=glibc
2865 languageName: node
2866 linkType: hard
2867
2868"@img/sharp-linux-x64@npm:0.33.3":
2869 version: 0.33.3
2870 resolution: "@img/sharp-linux-x64@npm:0.33.3"
2871 dependencies:
2872 "@img/sharp-libvips-linux-x64": "npm:1.0.2"
2873 dependenciesMeta:
2874 "@img/sharp-libvips-linux-x64":
2875 optional: true
2876 conditions: os=linux & cpu=x64 & libc=glibc
2877 languageName: node
2878 linkType: hard
2879
2880"@img/sharp-linuxmusl-arm64@npm:0.33.3":
2881 version: 0.33.3
2882 resolution: "@img/sharp-linuxmusl-arm64@npm:0.33.3"
2883 dependencies:
2884 "@img/sharp-libvips-linuxmusl-arm64": "npm:1.0.2"
2885 dependenciesMeta:
2886 "@img/sharp-libvips-linuxmusl-arm64":
2887 optional: true
2888 conditions: os=linux & cpu=arm64 & libc=musl
2889 languageName: node
2890 linkType: hard
2891
2892"@img/sharp-linuxmusl-x64@npm:0.33.3":
2893 version: 0.33.3
2894 resolution: "@img/sharp-linuxmusl-x64@npm:0.33.3"
2895 dependencies:
2896 "@img/sharp-libvips-linuxmusl-x64": "npm:1.0.2"
2897 dependenciesMeta:
2898 "@img/sharp-libvips-linuxmusl-x64":
2899 optional: true
2900 conditions: os=linux & cpu=x64 & libc=musl
2901 languageName: node
2902 linkType: hard
2903
2904"@img/sharp-wasm32@npm:0.33.3":
2905 version: 0.33.3
2906 resolution: "@img/sharp-wasm32@npm:0.33.3"
2907 dependencies:
2908 "@emnapi/runtime": "npm:^1.1.0"
2909 conditions: cpu=wasm32
2910 languageName: node
2911 linkType: hard
2912
2913"@img/sharp-win32-ia32@npm:0.33.3":
2914 version: 0.33.3
2915 resolution: "@img/sharp-win32-ia32@npm:0.33.3"
2916 conditions: os=win32 & cpu=ia32
2917 languageName: node
2918 linkType: hard
2919
2920"@img/sharp-win32-x64@npm:0.33.3":
2921 version: 0.33.3
2922 resolution: "@img/sharp-win32-x64@npm:0.33.3"
2923 conditions: os=win32 & cpu=x64
2924 languageName: node
2925 linkType: hard
2926
1813"@isaacs/cliui@npm:^8.0.2": 2927"@isaacs/cliui@npm:^8.0.2":
1814 version: 8.0.2 2928 version: 8.0.2
1815 resolution: "@isaacs/cliui@npm:8.0.2" 2929 resolution: "@isaacs/cliui@npm:8.0.2"
@@ -1824,28 +2938,51 @@ __metadata:
1824 languageName: node 2938 languageName: node
1825 linkType: hard 2939 linkType: hard
1826 2940
1827"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": 2941"@jest/schemas@npm:^29.6.3":
1828 version: 0.3.2 2942 version: 29.6.3
1829 resolution: "@jridgewell/gen-mapping@npm:0.3.2" 2943 resolution: "@jest/schemas@npm:29.6.3"
2944 dependencies:
2945 "@sinclair/typebox": "npm:^0.27.8"
2946 checksum: 10c0/b329e89cd5f20b9278ae1233df74016ebf7b385e0d14b9f4c1ad18d096c4c19d1e687aa113a9c976b16ec07f021ae53dea811fb8c1248a50ac34fbe009fdf6be
2947 languageName: node
2948 linkType: hard
2949
2950"@jest/types@npm:^29.6.3":
2951 version: 29.6.3
2952 resolution: "@jest/types@npm:29.6.3"
1830 dependencies: 2953 dependencies:
1831 "@jridgewell/set-array": "npm:^1.0.1" 2954 "@jest/schemas": "npm:^29.6.3"
2955 "@types/istanbul-lib-coverage": "npm:^2.0.0"
2956 "@types/istanbul-reports": "npm:^3.0.0"
2957 "@types/node": "npm:*"
2958 "@types/yargs": "npm:^17.0.8"
2959 chalk: "npm:^4.0.0"
2960 checksum: 10c0/ea4e493dd3fb47933b8ccab201ae573dcc451f951dc44ed2a86123cd8541b82aa9d2b1031caf9b1080d6673c517e2dcc25a44b2dc4f3fbc37bfc965d444888c0
2961 languageName: node
2962 linkType: hard
2963
2964"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.5":
2965 version: 0.3.5
2966 resolution: "@jridgewell/gen-mapping@npm:0.3.5"
2967 dependencies:
2968 "@jridgewell/set-array": "npm:^1.2.1"
1832 "@jridgewell/sourcemap-codec": "npm:^1.4.10" 2969 "@jridgewell/sourcemap-codec": "npm:^1.4.10"
1833 "@jridgewell/trace-mapping": "npm:^0.3.9" 2970 "@jridgewell/trace-mapping": "npm:^0.3.24"
1834 checksum: 10c0/82685c8735c63fe388badee45e2970a6bc83eed1c84d46d8652863bafeca22a6c6cc15812f5999a4535366f4668ccc9ba6d5c67dfb72e846fa8a063806f10afd 2971 checksum: 10c0/1be4fd4a6b0f41337c4f5fdf4afc3bd19e39c3691924817108b82ffcb9c9e609c273f936932b9fba4b3a298ce2eb06d9bff4eb1cc3bd81c4f4ee1b4917e25feb
1835 languageName: node 2972 languageName: node
1836 linkType: hard 2973 linkType: hard
1837 2974
1838"@jridgewell/resolve-uri@npm:3.1.0": 2975"@jridgewell/resolve-uri@npm:^3.1.0":
1839 version: 3.1.0 2976 version: 3.1.2
1840 resolution: "@jridgewell/resolve-uri@npm:3.1.0" 2977 resolution: "@jridgewell/resolve-uri@npm:3.1.2"
1841 checksum: 10c0/78055e2526108331126366572045355051a930f017d1904a4f753d3f4acee8d92a14854948095626f6163cffc24ea4e3efa30637417bb866b84743dec7ef6fd9 2978 checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e
1842 languageName: node 2979 languageName: node
1843 linkType: hard 2980 linkType: hard
1844 2981
1845"@jridgewell/set-array@npm:^1.0.1": 2982"@jridgewell/set-array@npm:^1.2.1":
1846 version: 1.1.2 2983 version: 1.2.1
1847 resolution: "@jridgewell/set-array@npm:1.1.2" 2984 resolution: "@jridgewell/set-array@npm:1.2.1"
1848 checksum: 10c0/bc7ab4c4c00470de4e7562ecac3c0c84f53e7ee8a711e546d67c47da7febe7c45cd67d4d84ee3c9b2c05ae8e872656cdded8a707a283d30bd54fbc65aef821ab 2985 checksum: 10c0/2a5aa7b4b5c3464c895c802d8ae3f3d2b92fcbe84ad12f8d0bfbb1f5ad006717e7577ee1fd2eac00c088abe486c7adb27976f45d2941ff6b0b92b2c3302c60f4
1849 languageName: node 2986 languageName: node
1850 linkType: hard 2987 linkType: hard
1851 2988
@@ -1859,20 +2996,27 @@ __metadata:
1859 languageName: node 2996 languageName: node
1860 linkType: hard 2997 linkType: hard
1861 2998
1862"@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10": 2999"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14":
1863 version: 1.4.14 3000 version: 1.4.15
1864 resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" 3001 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15"
1865 checksum: 10c0/3fbaff1387c1338b097eeb6ff92890d7838f7de0dde259e4983763b44540bfd5ca6a1f7644dc8ad003a57f7e80670d5b96a8402f1386ba9aee074743ae9bad51 3002 checksum: 10c0/0c6b5ae663087558039052a626d2d7ed5208da36cfd707dcc5cea4a07cfc918248403dcb5989a8f7afaf245ce0573b7cc6fd94c4a30453bd10e44d9363940ba5
1866 languageName: node 3003 languageName: node
1867 linkType: hard 3004 linkType: hard
1868 3005
1869"@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9": 3006"@jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.9":
1870 version: 0.3.18 3007 version: 0.3.25
1871 resolution: "@jridgewell/trace-mapping@npm:0.3.18" 3008 resolution: "@jridgewell/trace-mapping@npm:0.3.25"
1872 dependencies: 3009 dependencies:
1873 "@jridgewell/resolve-uri": "npm:3.1.0" 3010 "@jridgewell/resolve-uri": "npm:^3.1.0"
1874 "@jridgewell/sourcemap-codec": "npm:1.4.14" 3011 "@jridgewell/sourcemap-codec": "npm:^1.4.14"
1875 checksum: 10c0/e5045775f076022b6c7cc64a7b55742faa5442301cb3389fd0e6712fafc46a2bb13c68fa1ffaf7b8bb665a91196f050b4115885fc802094ebc06a1cf665935ac 3012 checksum: 10c0/3d1ce6ebc69df9682a5a8896b414c6537e428a1d68b02fcc8363b04284a8ca0df04d0ee3013132252ab14f2527bc13bea6526a912ecb5658f0e39fd2860b4df4
3013 languageName: node
3014 linkType: hard
3015
3016"@leichtgewicht/ip-codec@npm:^2.0.1":
3017 version: 2.0.5
3018 resolution: "@leichtgewicht/ip-codec@npm:2.0.5"
3019 checksum: 10c0/14a0112bd59615eef9e3446fea018045720cd3da85a98f801a685a818b0d96ef2a1f7227e8d271def546b2e2a0fe91ef915ba9dc912ab7967d2317b1a051d66b
1876 languageName: node 3020 languageName: node
1877 linkType: hard 3021 linkType: hard
1878 3022
@@ -1920,6 +3064,49 @@ __metadata:
1920 languageName: node 3064 languageName: node
1921 linkType: hard 3065 linkType: hard
1922 3066
3067"@mdx-js/mdx@npm:^3.0.0":
3068 version: 3.0.1
3069 resolution: "@mdx-js/mdx@npm:3.0.1"
3070 dependencies:
3071 "@types/estree": "npm:^1.0.0"
3072 "@types/estree-jsx": "npm:^1.0.0"
3073 "@types/hast": "npm:^3.0.0"
3074 "@types/mdx": "npm:^2.0.0"
3075 collapse-white-space: "npm:^2.0.0"
3076 devlop: "npm:^1.0.0"
3077 estree-util-build-jsx: "npm:^3.0.0"
3078 estree-util-is-identifier-name: "npm:^3.0.0"
3079 estree-util-to-js: "npm:^2.0.0"
3080 estree-walker: "npm:^3.0.0"
3081 hast-util-to-estree: "npm:^3.0.0"
3082 hast-util-to-jsx-runtime: "npm:^2.0.0"
3083 markdown-extensions: "npm:^2.0.0"
3084 periscopic: "npm:^3.0.0"
3085 remark-mdx: "npm:^3.0.0"
3086 remark-parse: "npm:^11.0.0"
3087 remark-rehype: "npm:^11.0.0"
3088 source-map: "npm:^0.7.0"
3089 unified: "npm:^11.0.0"
3090 unist-util-position-from-estree: "npm:^2.0.0"
3091 unist-util-stringify-position: "npm:^4.0.0"
3092 unist-util-visit: "npm:^5.0.0"
3093 vfile: "npm:^6.0.0"
3094 checksum: 10c0/8cd7084f1242209bbeef81f69ea670ffffa0656dda2893bbd46b1b2b26078a57f9d993f8f82ad8ba16bc969189235140007185276d7673471827331521eae2e0
3095 languageName: node
3096 linkType: hard
3097
3098"@mdx-js/react@npm:^3.0.0, @mdx-js/react@npm:^3.0.1":
3099 version: 3.0.1
3100 resolution: "@mdx-js/react@npm:3.0.1"
3101 dependencies:
3102 "@types/mdx": "npm:^2.0.0"
3103 peerDependencies:
3104 "@types/react": ">=16"
3105 react: ">=16"
3106 checksum: 10c0/d210d926ef488d39ad65f04d821936b668eadcdde3b6421e94ec4200ca7ad17f17d24c5cbc543882586af9f08b10e2eea715c728ce6277487945e05c5199f532
3107 languageName: node
3108 linkType: hard
3109
1923"@mui/base@npm:5.0.0-beta.40": 3110"@mui/base@npm:5.0.0-beta.40":
1924 version: 5.0.0-beta.40 3111 version: 5.0.0-beta.40
1925 resolution: "@mui/base@npm:5.0.0-beta.40" 3112 resolution: "@mui/base@npm:5.0.0-beta.40"
@@ -2094,9 +3281,9 @@ __metadata:
2094 languageName: node 3281 languageName: node
2095 linkType: hard 3282 linkType: hard
2096 3283
2097"@mui/x-data-grid@npm:^7.1.1": 3284"@mui/x-data-grid@npm:^7.3.1":
2098 version: 7.1.1 3285 version: 7.3.1
2099 resolution: "@mui/x-data-grid@npm:7.1.1" 3286 resolution: "@mui/x-data-grid@npm:7.3.1"
2100 dependencies: 3287 dependencies:
2101 "@babel/runtime": "npm:^7.24.0" 3288 "@babel/runtime": "npm:^7.24.0"
2102 "@mui/system": "npm:^5.15.14" 3289 "@mui/system": "npm:^5.15.14"
@@ -2108,7 +3295,7 @@ __metadata:
2108 "@mui/material": ^5.15.14 3295 "@mui/material": ^5.15.14
2109 react: ^17.0.0 || ^18.0.0 3296 react: ^17.0.0 || ^18.0.0
2110 react-dom: ^17.0.0 || ^18.0.0 3297 react-dom: ^17.0.0 || ^18.0.0
2111 checksum: 10c0/e49ca6254eef36e8853a38b6149ad2bb30d5340ab696e2cdbb668e4afc305fe5bc9eb75f8453e5ff6af5f26244b42fc5feee20e942eb0b20c883aac09394c722 3298 checksum: 10c0/9941013d2f5739d01842c641d597a21d26e55403e6b7eeedd670305d9cab46e191ff2aebaaf1dcd8f679038074c326a2e168a1792a3baa67aead086fac384ece
2112 languageName: node 3299 languageName: node
2113 linkType: hard 3300 linkType: hard
2114 3301
@@ -2162,6 +3349,40 @@ __metadata:
2162 languageName: node 3349 languageName: node
2163 linkType: hard 3350 linkType: hard
2164 3351
3352"@pnpm/config.env-replace@npm:^1.1.0":
3353 version: 1.1.0
3354 resolution: "@pnpm/config.env-replace@npm:1.1.0"
3355 checksum: 10c0/4cfc4a5c49ab3d0c6a1f196cfd4146374768b0243d441c7de8fa7bd28eaab6290f514b98490472cc65dbd080d34369447b3e9302585e1d5c099befd7c8b5e55f
3356 languageName: node
3357 linkType: hard
3358
3359"@pnpm/network.ca-file@npm:^1.0.1":
3360 version: 1.0.2
3361 resolution: "@pnpm/network.ca-file@npm:1.0.2"
3362 dependencies:
3363 graceful-fs: "npm:4.2.10"
3364 checksum: 10c0/95f6e0e38d047aca3283550719155ce7304ac00d98911e4ab026daedaf640a63bd83e3d13e17c623fa41ac72f3801382ba21260bcce431c14fbbc06430ecb776
3365 languageName: node
3366 linkType: hard
3367
3368"@pnpm/npm-conf@npm:^2.1.0":
3369 version: 2.2.2
3370 resolution: "@pnpm/npm-conf@npm:2.2.2"
3371 dependencies:
3372 "@pnpm/config.env-replace": "npm:^1.1.0"
3373 "@pnpm/network.ca-file": "npm:^1.0.1"
3374 config-chain: "npm:^1.1.11"
3375 checksum: 10c0/71393dcfce85603fddd8484b486767163000afab03918303253ae97992615b91d25942f83751366cb40ad2ee32b0ae0a033561de9d878199a024286ff98b0296
3376 languageName: node
3377 linkType: hard
3378
3379"@polka/url@npm:^1.0.0-next.24":
3380 version: 1.0.0-next.25
3381 resolution: "@polka/url@npm:1.0.0-next.25"
3382 checksum: 10c0/ef61f0a0fe94bb6e1143fc5b9d5a12e6ca9dbd2c57843ebf81db432c21b9f1005c09e8a1ef8b6d5ddfa42146ca65b640feb2d353bd0d3546da46ba59e48a5349
3383 languageName: node
3384 linkType: hard
3385
2165"@popperjs/core@npm:^2.11.8": 3386"@popperjs/core@npm:^2.11.8":
2166 version: 2.11.8 3387 version: 2.11.8
2167 resolution: "@popperjs/core@npm:2.11.8" 3388 resolution: "@popperjs/core@npm:2.11.8"
@@ -2169,25 +3390,67 @@ __metadata:
2169 languageName: node 3390 languageName: node
2170 linkType: hard 3391 linkType: hard
2171 3392
3393"@refinery/docs@workspace:subprojects/docs":
3394 version: 0.0.0-use.local
3395 resolution: "@refinery/docs@workspace:subprojects/docs"
3396 dependencies:
3397 "@docusaurus/core": "npm:^3.2.1"
3398 "@docusaurus/mdx-loader": "npm:^3.2.1"
3399 "@docusaurus/module-type-aliases": "npm:^3.2.1"
3400 "@docusaurus/plugin-content-docs": "npm:^3.2.1"
3401 "@docusaurus/plugin-content-pages": "npm:^3.2.1"
3402 "@docusaurus/plugin-sitemap": "npm:^3.2.1"
3403 "@docusaurus/theme-classic": "npm:^3.2.1"
3404 "@docusaurus/theme-common": "npm:^3.2.1"
3405 "@docusaurus/theme-search-algolia": "npm:^3.2.1"
3406 "@docusaurus/types": "npm:^3.2.1"
3407 "@fontsource-variable/jetbrains-mono": "npm:^5.0.21"
3408 "@fontsource-variable/open-sans": "npm:^5.0.29"
3409 "@fontsource/open-sans": "npm:^5.0.28"
3410 "@material-icons/svg": "npm:^1.0.33"
3411 "@mdx-js/react": "npm:^3.0.1"
3412 "@swc/core": "npm:^1.5.0"
3413 "@types/babel__core": "npm:^7.20.5"
3414 "@types/mdast": "npm:^4.0.3"
3415 "@types/node": "npm:^20.12.7"
3416 "@types/react": "npm:^18.3.0"
3417 "@types/react-dom": "npm:^18.3.0"
3418 "@types/unist": "npm:^3.0.2"
3419 clsx: "npm:^2.1.1"
3420 mdast-util-mdx: "npm:^3.0.0"
3421 prism-react-renderer: "npm:^2.3.1"
3422 react: "npm:^18.3.1"
3423 react-dom: "npm:^18.3.1"
3424 remark-smartypants: "npm:^3.0.1"
3425 responsive-loader: "npm:^3.1.2"
3426 sharp: "npm:^0.33.3"
3427 swc-loader: "npm:^0.2.6"
3428 terser-webpack-plugin: "npm:^5.3.10"
3429 unified: "npm:^11.0.4"
3430 unist-util-visit: "npm:^5.0.0"
3431 webpack: "npm:^5.91.0"
3432 languageName: unknown
3433 linkType: soft
3434
2172"@refinery/frontend@workspace:subprojects/frontend": 3435"@refinery/frontend@workspace:subprojects/frontend":
2173 version: 0.0.0-use.local 3436 version: 0.0.0-use.local
2174 resolution: "@refinery/frontend@workspace:subprojects/frontend" 3437 resolution: "@refinery/frontend@workspace:subprojects/frontend"
2175 dependencies: 3438 dependencies:
2176 "@codemirror/autocomplete": "npm:^6.15.0" 3439 "@codemirror/autocomplete": "npm:^6.16.0"
2177 "@codemirror/commands": "npm:^6.3.3" 3440 "@codemirror/commands": "npm:^6.5.0"
2178 "@codemirror/language": "npm:^6.10.1" 3441 "@codemirror/language": "npm:^6.10.1"
2179 "@codemirror/lint": "npm:^6.5.0" 3442 "@codemirror/lint": "npm:^6.5.0"
2180 "@codemirror/search": "npm:^6.5.6" 3443 "@codemirror/search": "npm:^6.5.6"
2181 "@codemirror/state": "npm:^6.4.1" 3444 "@codemirror/state": "npm:^6.4.1"
2182 "@codemirror/view": "npm:^6.26.1" 3445 "@codemirror/view": "npm:^6.26.3"
2183 "@emotion/cache": "npm:^11.11.0" 3446 "@emotion/cache": "npm:^11.11.0"
2184 "@emotion/react": "npm:^11.11.4" 3447 "@emotion/react": "npm:^11.11.4"
2185 "@emotion/serialize": "npm:^1.1.4" 3448 "@emotion/serialize": "npm:^1.1.4"
2186 "@emotion/styled": "npm:^11.11.5" 3449 "@emotion/styled": "npm:^11.11.5"
2187 "@emotion/utils": "npm:^1.2.1" 3450 "@emotion/utils": "npm:^1.2.1"
2188 "@fontsource-variable/jetbrains-mono": "npm:^5.0.20" 3451 "@fontsource-variable/jetbrains-mono": "npm:^5.0.21"
2189 "@fontsource-variable/open-sans": "npm:^5.0.28" 3452 "@fontsource-variable/open-sans": "npm:^5.0.29"
2190 "@fontsource/open-sans": "npm:^5.0.27" 3453 "@fontsource/open-sans": "npm:^5.0.28"
2191 "@hpcc-js/wasm": "npm:^2.16.1" 3454 "@hpcc-js/wasm": "npm:^2.16.1"
2192 "@lezer/common": "npm:^1.2.1" 3455 "@lezer/common": "npm:^1.2.1"
2193 "@lezer/generator": "npm:^1.7.0" 3456 "@lezer/generator": "npm:^1.7.0"
@@ -2197,7 +3460,7 @@ __metadata:
2197 "@mui/icons-material": "npm:^5.15.15" 3460 "@mui/icons-material": "npm:^5.15.15"
2198 "@mui/material": "npm:^5.15.15" 3461 "@mui/material": "npm:^5.15.15"
2199 "@mui/system": "npm:^5.15.15" 3462 "@mui/system": "npm:^5.15.15"
2200 "@mui/x-data-grid": "npm:^7.1.1" 3463 "@mui/x-data-grid": "npm:^7.3.1"
2201 "@types/d3": "npm:^7.4.3" 3464 "@types/d3": "npm:^7.4.3"
2202 "@types/d3-color": "npm:^3.1.3" 3465 "@types/d3-color": "npm:^3.1.3"
2203 "@types/d3-graphviz": "npm:^2.6.10" 3466 "@types/d3-graphviz": "npm:^2.6.10"
@@ -2206,12 +3469,12 @@ __metadata:
2206 "@types/html-minifier-terser": "npm:^7.0.2" 3469 "@types/html-minifier-terser": "npm:^7.0.2"
2207 "@types/jspdf": "npm:^2.0.0" 3470 "@types/jspdf": "npm:^2.0.0"
2208 "@types/lodash-es": "npm:^4.17.12" 3471 "@types/lodash-es": "npm:^4.17.12"
2209 "@types/micromatch": "npm:^4.0.6" 3472 "@types/micromatch": "npm:^4.0.7"
2210 "@types/ms": "npm:^0.7.34" 3473 "@types/ms": "npm:^0.7.34"
2211 "@types/node": "npm:^20.12.5" 3474 "@types/node": "npm:^20.12.7"
2212 "@types/pnpapi": "npm:^0.0.5" 3475 "@types/pnpapi": "npm:^0.0.5"
2213 "@types/react": "npm:^18.2.74" 3476 "@types/react": "npm:^18.3.0"
2214 "@types/react-dom": "npm:^18.2.24" 3477 "@types/react-dom": "npm:^18.3.0"
2215 "@vitejs/plugin-react-swc": "npm:^3.6.0" 3478 "@vitejs/plugin-react-swc": "npm:^3.6.0"
2216 "@xstate/cli": "npm:^0.5.17" 3479 "@xstate/cli": "npm:^0.5.17"
2217 ansi-styles: "npm:^6.2.1" 3480 ansi-styles: "npm:^6.2.1"
@@ -2231,19 +3494,19 @@ __metadata:
2231 mobx: "npm:^6.12.3" 3494 mobx: "npm:^6.12.3"
2232 mobx-react-lite: "npm:^4.0.7" 3495 mobx-react-lite: "npm:^4.0.7"
2233 ms: "npm:^2.1.3" 3496 ms: "npm:^2.1.3"
2234 nanoid: "npm:^5.0.6" 3497 nanoid: "npm:^5.0.7"
2235 notistack: "npm:^3.0.1" 3498 notistack: "npm:^3.0.1"
2236 pnpapi: "npm:^0.0.0" 3499 pnpapi: "npm:^0.0.0"
2237 react: "npm:^18.2.0" 3500 react: "npm:^18.3.1"
2238 react-dom: "npm:^18.2.0" 3501 react-dom: "npm:^18.3.1"
2239 react-resize-detector: "npm:^10.0.1" 3502 react-resize-detector: "npm:^10.0.1"
2240 svg2pdf.js: "npm:^2.2.3" 3503 svg2pdf.js: "npm:^2.2.3"
2241 typescript: "npm:5.4.4" 3504 typescript: "npm:5.4.5"
2242 vite: "npm:^5.2.8" 3505 vite: "npm:^5.2.10"
2243 vite-plugin-pwa: "npm:^0.19.8" 3506 vite-plugin-pwa: "npm:^0.19.8"
2244 workbox-window: "npm:^7.0.0" 3507 workbox-window: "npm:^7.1.0"
2245 xstate: "npm:^4.38.3" 3508 xstate: "npm:^4.38.3"
2246 zod: "npm:^3.22.4" 3509 zod: "npm:^3.23.4"
2247 languageName: unknown 3510 languageName: unknown
2248 linkType: soft 3511 linkType: soft
2249 3512
@@ -2251,12 +3514,12 @@ __metadata:
2251 version: 0.0.0-use.local 3514 version: 0.0.0-use.local
2252 resolution: "@refinery/root@workspace:." 3515 resolution: "@refinery/root@workspace:."
2253 dependencies: 3516 dependencies:
2254 "@types/eslint": "npm:^8.56.7" 3517 "@types/eslint": "npm:^8.56.10"
2255 "@types/node": "npm:^20.12.5" 3518 "@types/node": "npm:^20.12.7"
2256 "@types/react": "npm:^18.2.74" 3519 "@types/react": "npm:^18.3.0"
2257 "@typescript-eslint/eslint-plugin": "npm:^7.5.0" 3520 "@typescript-eslint/eslint-plugin": "npm:^7.7.1"
2258 "@typescript-eslint/parser": "npm:^7.5.0" 3521 "@typescript-eslint/parser": "npm:^7.7.1"
2259 corepack: "npm:^0.26.0" 3522 corepack: "npm:^0.28.0"
2260 eslint: "npm:^8.57.0" 3523 eslint: "npm:^8.57.0"
2261 eslint-config-airbnb: "npm:^19.0.4" 3524 eslint-config-airbnb: "npm:^19.0.4"
2262 eslint-config-airbnb-typescript: "npm:^18.0.0" 3525 eslint-config-airbnb-typescript: "npm:^18.0.0"
@@ -2267,10 +3530,10 @@ __metadata:
2267 eslint-plugin-mobx: "npm:^0.0.9" 3530 eslint-plugin-mobx: "npm:^0.0.9"
2268 eslint-plugin-prettier: "npm:^5.1.3" 3531 eslint-plugin-prettier: "npm:^5.1.3"
2269 eslint-plugin-react: "npm:^7.34.1" 3532 eslint-plugin-react: "npm:^7.34.1"
2270 eslint-plugin-react-hooks: "npm:^4.6.0" 3533 eslint-plugin-react-hooks: "npm:^4.6.2"
2271 prettier: "npm:^3.2.5" 3534 prettier: "npm:^3.2.5"
2272 react: "npm:^18.2.0" 3535 react: "npm:^18.3.1"
2273 typescript: "npm:5.4.4" 3536 typescript: "npm:5.4.5"
2274 languageName: unknown 3537 languageName: unknown
2275 linkType: soft 3538 linkType: soft
2276 3539
@@ -2332,97 +3595,166 @@ __metadata:
2332 languageName: node 3595 languageName: node
2333 linkType: hard 3596 linkType: hard
2334 3597
2335"@rollup/rollup-android-arm-eabi@npm:4.13.0": 3598"@rollup/rollup-android-arm-eabi@npm:4.14.1":
2336 version: 4.13.0 3599 version: 4.14.1
2337 resolution: "@rollup/rollup-android-arm-eabi@npm:4.13.0" 3600 resolution: "@rollup/rollup-android-arm-eabi@npm:4.14.1"
2338 conditions: os=android & cpu=arm 3601 conditions: os=android & cpu=arm
2339 languageName: node 3602 languageName: node
2340 linkType: hard 3603 linkType: hard
2341 3604
2342"@rollup/rollup-android-arm64@npm:4.13.0": 3605"@rollup/rollup-android-arm64@npm:4.14.1":
2343 version: 4.13.0 3606 version: 4.14.1
2344 resolution: "@rollup/rollup-android-arm64@npm:4.13.0" 3607 resolution: "@rollup/rollup-android-arm64@npm:4.14.1"
2345 conditions: os=android & cpu=arm64 3608 conditions: os=android & cpu=arm64
2346 languageName: node 3609 languageName: node
2347 linkType: hard 3610 linkType: hard
2348 3611
2349"@rollup/rollup-darwin-arm64@npm:4.13.0": 3612"@rollup/rollup-darwin-arm64@npm:4.14.1":
2350 version: 4.13.0 3613 version: 4.14.1
2351 resolution: "@rollup/rollup-darwin-arm64@npm:4.13.0" 3614 resolution: "@rollup/rollup-darwin-arm64@npm:4.14.1"
2352 conditions: os=darwin & cpu=arm64 3615 conditions: os=darwin & cpu=arm64
2353 languageName: node 3616 languageName: node
2354 linkType: hard 3617 linkType: hard
2355 3618
2356"@rollup/rollup-darwin-x64@npm:4.13.0": 3619"@rollup/rollup-darwin-x64@npm:4.14.1":
2357 version: 4.13.0 3620 version: 4.14.1
2358 resolution: "@rollup/rollup-darwin-x64@npm:4.13.0" 3621 resolution: "@rollup/rollup-darwin-x64@npm:4.14.1"
2359 conditions: os=darwin & cpu=x64 3622 conditions: os=darwin & cpu=x64
2360 languageName: node 3623 languageName: node
2361 linkType: hard 3624 linkType: hard
2362 3625
2363"@rollup/rollup-linux-arm-gnueabihf@npm:4.13.0": 3626"@rollup/rollup-linux-arm-gnueabihf@npm:4.14.1":
2364 version: 4.13.0 3627 version: 4.14.1
2365 resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.13.0" 3628 resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.14.1"
2366 conditions: os=linux & cpu=arm 3629 conditions: os=linux & cpu=arm
2367 languageName: node 3630 languageName: node
2368 linkType: hard 3631 linkType: hard
2369 3632
2370"@rollup/rollup-linux-arm64-gnu@npm:4.13.0": 3633"@rollup/rollup-linux-arm64-gnu@npm:4.14.1":
2371 version: 4.13.0 3634 version: 4.14.1
2372 resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.13.0" 3635 resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.14.1"
2373 conditions: os=linux & cpu=arm64 & libc=glibc 3636 conditions: os=linux & cpu=arm64 & libc=glibc
2374 languageName: node 3637 languageName: node
2375 linkType: hard 3638 linkType: hard
2376 3639
2377"@rollup/rollup-linux-arm64-musl@npm:4.13.0": 3640"@rollup/rollup-linux-arm64-musl@npm:4.14.1":
2378 version: 4.13.0 3641 version: 4.14.1
2379 resolution: "@rollup/rollup-linux-arm64-musl@npm:4.13.0" 3642 resolution: "@rollup/rollup-linux-arm64-musl@npm:4.14.1"
2380 conditions: os=linux & cpu=arm64 & libc=musl 3643 conditions: os=linux & cpu=arm64 & libc=musl
2381 languageName: node 3644 languageName: node
2382 linkType: hard 3645 linkType: hard
2383 3646
2384"@rollup/rollup-linux-riscv64-gnu@npm:4.13.0": 3647"@rollup/rollup-linux-powerpc64le-gnu@npm:4.14.1":
2385 version: 4.13.0 3648 version: 4.14.1
2386 resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.13.0" 3649 resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.14.1"
3650 conditions: os=linux & cpu=ppc64le & libc=glibc
3651 languageName: node
3652 linkType: hard
3653
3654"@rollup/rollup-linux-riscv64-gnu@npm:4.14.1":
3655 version: 4.14.1
3656 resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.14.1"
2387 conditions: os=linux & cpu=riscv64 & libc=glibc 3657 conditions: os=linux & cpu=riscv64 & libc=glibc
2388 languageName: node 3658 languageName: node
2389 linkType: hard 3659 linkType: hard
2390 3660
2391"@rollup/rollup-linux-x64-gnu@npm:4.13.0": 3661"@rollup/rollup-linux-s390x-gnu@npm:4.14.1":
2392 version: 4.13.0 3662 version: 4.14.1
2393 resolution: "@rollup/rollup-linux-x64-gnu@npm:4.13.0" 3663 resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.14.1"
3664 conditions: os=linux & cpu=s390x & libc=glibc
3665 languageName: node
3666 linkType: hard
3667
3668"@rollup/rollup-linux-x64-gnu@npm:4.14.1":
3669 version: 4.14.1
3670 resolution: "@rollup/rollup-linux-x64-gnu@npm:4.14.1"
2394 conditions: os=linux & cpu=x64 & libc=glibc 3671 conditions: os=linux & cpu=x64 & libc=glibc
2395 languageName: node 3672 languageName: node
2396 linkType: hard 3673 linkType: hard
2397 3674
2398"@rollup/rollup-linux-x64-musl@npm:4.13.0": 3675"@rollup/rollup-linux-x64-musl@npm:4.14.1":
2399 version: 4.13.0 3676 version: 4.14.1
2400 resolution: "@rollup/rollup-linux-x64-musl@npm:4.13.0" 3677 resolution: "@rollup/rollup-linux-x64-musl@npm:4.14.1"
2401 conditions: os=linux & cpu=x64 & libc=musl 3678 conditions: os=linux & cpu=x64 & libc=musl
2402 languageName: node 3679 languageName: node
2403 linkType: hard 3680 linkType: hard
2404 3681
2405"@rollup/rollup-win32-arm64-msvc@npm:4.13.0": 3682"@rollup/rollup-win32-arm64-msvc@npm:4.14.1":
2406 version: 4.13.0 3683 version: 4.14.1
2407 resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.13.0" 3684 resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.14.1"
2408 conditions: os=win32 & cpu=arm64 3685 conditions: os=win32 & cpu=arm64
2409 languageName: node 3686 languageName: node
2410 linkType: hard 3687 linkType: hard
2411 3688
2412"@rollup/rollup-win32-ia32-msvc@npm:4.13.0": 3689"@rollup/rollup-win32-ia32-msvc@npm:4.14.1":
2413 version: 4.13.0 3690 version: 4.14.1
2414 resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.13.0" 3691 resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.14.1"
2415 conditions: os=win32 & cpu=ia32 3692 conditions: os=win32 & cpu=ia32
2416 languageName: node 3693 languageName: node
2417 linkType: hard 3694 linkType: hard
2418 3695
2419"@rollup/rollup-win32-x64-msvc@npm:4.13.0": 3696"@rollup/rollup-win32-x64-msvc@npm:4.14.1":
2420 version: 4.13.0 3697 version: 4.14.1
2421 resolution: "@rollup/rollup-win32-x64-msvc@npm:4.13.0" 3698 resolution: "@rollup/rollup-win32-x64-msvc@npm:4.14.1"
2422 conditions: os=win32 & cpu=x64 3699 conditions: os=win32 & cpu=x64
2423 languageName: node 3700 languageName: node
2424 linkType: hard 3701 linkType: hard
2425 3702
3703"@sideway/address@npm:^4.1.5":
3704 version: 4.1.5
3705 resolution: "@sideway/address@npm:4.1.5"
3706 dependencies:
3707 "@hapi/hoek": "npm:^9.0.0"
3708 checksum: 10c0/638eb6f7e7dba209053dd6c8da74d7cc995e2b791b97644d0303a7dd3119263bcb7225a4f6804d4db2bc4f96e5a9d262975a014f58eae4d1753c27cbc96ef959
3709 languageName: node
3710 linkType: hard
3711
3712"@sideway/formula@npm:^3.0.1":
3713 version: 3.0.1
3714 resolution: "@sideway/formula@npm:3.0.1"
3715 checksum: 10c0/3fe81fa9662efc076bf41612b060eb9b02e846ea4bea5bd114f1662b7f1541e9dedcf98aff0d24400bcb92f113964a50e0290b86e284edbdf6346fa9b7e2bf2c
3716 languageName: node
3717 linkType: hard
3718
3719"@sideway/pinpoint@npm:^2.0.0":
3720 version: 2.0.0
3721 resolution: "@sideway/pinpoint@npm:2.0.0"
3722 checksum: 10c0/d2ca75dacaf69b8fc0bb8916a204e01def3105ee44d8be16c355e5f58189eb94039e15ce831f3d544f229889ccfa35562a0ce2516179f3a7ee1bbe0b71e55b36
3723 languageName: node
3724 linkType: hard
3725
3726"@sinclair/typebox@npm:^0.27.8":
3727 version: 0.27.8
3728 resolution: "@sinclair/typebox@npm:0.27.8"
3729 checksum: 10c0/ef6351ae073c45c2ac89494dbb3e1f87cc60a93ce4cde797b782812b6f97da0d620ae81973f104b43c9b7eaa789ad20ba4f6a1359f1cc62f63729a55a7d22d4e
3730 languageName: node
3731 linkType: hard
3732
3733"@sindresorhus/is@npm:^4.6.0":
3734 version: 4.6.0
3735 resolution: "@sindresorhus/is@npm:4.6.0"
3736 checksum: 10c0/33b6fb1d0834ec8dd7689ddc0e2781c2bfd8b9c4e4bacbcb14111e0ae00621f2c264b8a7d36541799d74888b5dccdf422a891a5cb5a709ace26325eedc81e22e
3737 languageName: node
3738 linkType: hard
3739
3740"@sindresorhus/is@npm:^5.2.0":
3741 version: 5.6.0
3742 resolution: "@sindresorhus/is@npm:5.6.0"
3743 checksum: 10c0/66727344d0c92edde5760b5fd1f8092b717f2298a162a5f7f29e4953e001479927402d9d387e245fb9dc7d3b37c72e335e93ed5875edfc5203c53be8ecba1b52
3744 languageName: node
3745 linkType: hard
3746
3747"@slorber/remark-comment@npm:^1.0.0":
3748 version: 1.0.0
3749 resolution: "@slorber/remark-comment@npm:1.0.0"
3750 dependencies:
3751 micromark-factory-space: "npm:^1.0.0"
3752 micromark-util-character: "npm:^1.1.0"
3753 micromark-util-symbol: "npm:^1.0.1"
3754 checksum: 10c0/b8da9d8f560740959c421d3ce5be43952eace1c95cb65402d9473a15e66463346a37fb5f121a6b22a83af51e8845b0b4ff3c321f14ce31bd58fb126acf6c8ed9
3755 languageName: node
3756 linkType: hard
3757
2426"@surma/rollup-plugin-off-main-thread@npm:^2.2.3": 3758"@surma/rollup-plugin-off-main-thread@npm:^2.2.3":
2427 version: 2.2.3 3759 version: 2.2.3
2428 resolution: "@surma/rollup-plugin-off-main-thread@npm:2.2.3" 3760 resolution: "@surma/rollup-plugin-off-main-thread@npm:2.2.3"
@@ -2435,90 +3767,246 @@ __metadata:
2435 languageName: node 3767 languageName: node
2436 linkType: hard 3768 linkType: hard
2437 3769
2438"@swc/core-darwin-arm64@npm:1.4.1": 3770"@svgr/babel-plugin-add-jsx-attribute@npm:^6.5.1":
2439 version: 1.4.1 3771 version: 6.5.1
2440 resolution: "@swc/core-darwin-arm64@npm:1.4.1" 3772 resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:6.5.1"
3773 peerDependencies:
3774 "@babel/core": ^7.0.0-0
3775 checksum: 10c0/a13ed0797189d5497890530449029bec388310e260a96459e304e2729e7a2cf4d20d34f882d9a77ccce73dd3d36065afbb6987258fdff618d7d57955065a8ad4
3776 languageName: node
3777 linkType: hard
3778
3779"@svgr/babel-plugin-remove-jsx-attribute@npm:*":
3780 version: 8.0.0
3781 resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0"
3782 peerDependencies:
3783 "@babel/core": ^7.0.0-0
3784 checksum: 10c0/8a98e59bd9971e066815b4129409932f7a4db4866834fe75677ea6d517972fb40b380a69a4413189f20e7947411f9ab1b0f029dd5e8068686a5a0188d3ccd4c7
3785 languageName: node
3786 linkType: hard
3787
3788"@svgr/babel-plugin-remove-jsx-empty-expression@npm:*":
3789 version: 8.0.0
3790 resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0"
3791 peerDependencies:
3792 "@babel/core": ^7.0.0-0
3793 checksum: 10c0/517dcca75223bd05d3f056a8514dbba3031278bea4eadf0842c576d84f4651e7a4e0e7082d3ee4ef42456de0f9c4531d8a1917c04876ca64b014b859ca8f1bde
3794 languageName: node
3795 linkType: hard
3796
3797"@svgr/babel-plugin-replace-jsx-attribute-value@npm:^6.5.1":
3798 version: 6.5.1
3799 resolution: "@svgr/babel-plugin-replace-jsx-attribute-value@npm:6.5.1"
3800 peerDependencies:
3801 "@babel/core": ^7.0.0-0
3802 checksum: 10c0/318786787c9a217c33a7340c8856436858e1fffa5a6df635fedc6b9a371f3afea080ea074b9e3cfbbd9dd962ead924fde8bc9855a394c38dd60e391883a58c81
3803 languageName: node
3804 linkType: hard
3805
3806"@svgr/babel-plugin-svg-dynamic-title@npm:^6.5.1":
3807 version: 6.5.1
3808 resolution: "@svgr/babel-plugin-svg-dynamic-title@npm:6.5.1"
3809 peerDependencies:
3810 "@babel/core": ^7.0.0-0
3811 checksum: 10c0/16ef228c793b909fec47dd7dc05c1c3c2d77a824f42055df37e141e0534081b1bc4aec6dcc51be50c221df9f262f59270fc1c379923bfd4f5db302abafabfd8d
3812 languageName: node
3813 linkType: hard
3814
3815"@svgr/babel-plugin-svg-em-dimensions@npm:^6.5.1":
3816 version: 6.5.1
3817 resolution: "@svgr/babel-plugin-svg-em-dimensions@npm:6.5.1"
3818 peerDependencies:
3819 "@babel/core": ^7.0.0-0
3820 checksum: 10c0/dfdd5cbe6ae543505eaa0da69df0735b7407294c4b0504b3e74c0e7e371f1acb914eb99fd21ff39ef5bd626b3474f064a4cccc50f41b7c556ee834f9a6d6610a
3821 languageName: node
3822 linkType: hard
3823
3824"@svgr/babel-plugin-transform-react-native-svg@npm:^6.5.1":
3825 version: 6.5.1
3826 resolution: "@svgr/babel-plugin-transform-react-native-svg@npm:6.5.1"
3827 peerDependencies:
3828 "@babel/core": ^7.0.0-0
3829 checksum: 10c0/332fbf3bbc19d938b744440dbab9c8acd8f7a2ed6bf9c4e23f40e3f2c25615a60b3bf00902a4f1f6c20b5f382a1547b3acc6f2b2d70d80e532b5d45945f1b979
3830 languageName: node
3831 linkType: hard
3832
3833"@svgr/babel-plugin-transform-svg-component@npm:^6.5.1":
3834 version: 6.5.1
3835 resolution: "@svgr/babel-plugin-transform-svg-component@npm:6.5.1"
3836 peerDependencies:
3837 "@babel/core": ^7.0.0-0
3838 checksum: 10c0/8d9e1c7c62abce23837e53cdacc6d09bc1f1f2b0ad7322105001c097995e9aa8dca4fa41acf39148af69f342e40081c438106949fb083e997ca497cb0448f27d
3839 languageName: node
3840 linkType: hard
3841
3842"@svgr/babel-preset@npm:^6.5.1":
3843 version: 6.5.1
3844 resolution: "@svgr/babel-preset@npm:6.5.1"
3845 dependencies:
3846 "@svgr/babel-plugin-add-jsx-attribute": "npm:^6.5.1"
3847 "@svgr/babel-plugin-remove-jsx-attribute": "npm:*"
3848 "@svgr/babel-plugin-remove-jsx-empty-expression": "npm:*"
3849 "@svgr/babel-plugin-replace-jsx-attribute-value": "npm:^6.5.1"
3850 "@svgr/babel-plugin-svg-dynamic-title": "npm:^6.5.1"
3851 "@svgr/babel-plugin-svg-em-dimensions": "npm:^6.5.1"
3852 "@svgr/babel-plugin-transform-react-native-svg": "npm:^6.5.1"
3853 "@svgr/babel-plugin-transform-svg-component": "npm:^6.5.1"
3854 peerDependencies:
3855 "@babel/core": ^7.0.0-0
3856 checksum: 10c0/8e8d7a0049279152f9ac308fbfd4ce74063d8a376154718cba6309bae4316318804a32201c75c5839c629f8e1e5d641a87822764000998161d0fc1de24b0374a
3857 languageName: node
3858 linkType: hard
3859
3860"@svgr/core@npm:^6.5.1":
3861 version: 6.5.1
3862 resolution: "@svgr/core@npm:6.5.1"
3863 dependencies:
3864 "@babel/core": "npm:^7.19.6"
3865 "@svgr/babel-preset": "npm:^6.5.1"
3866 "@svgr/plugin-jsx": "npm:^6.5.1"
3867 camelcase: "npm:^6.2.0"
3868 cosmiconfig: "npm:^7.0.1"
3869 checksum: 10c0/60cce11e13391171132115dcc8da592d23e51f155ebadf9b819bd1836b8c13d40aa5c30a03a7d429f65e70a71c50669b2e10c94e4922de4e58bc898275f46c05
3870 languageName: node
3871 linkType: hard
3872
3873"@svgr/hast-util-to-babel-ast@npm:^6.5.1":
3874 version: 6.5.1
3875 resolution: "@svgr/hast-util-to-babel-ast@npm:6.5.1"
3876 dependencies:
3877 "@babel/types": "npm:^7.20.0"
3878 entities: "npm:^4.4.0"
3879 checksum: 10c0/18fa37b36581ba1678f5cc5a05ce0411e08df4db267f3cd900af7ffdf5bd90522f3a46465f315cd5d7345264949479133930aafdd27ce05c474e63756196256f
3880 languageName: node
3881 linkType: hard
3882
3883"@svgr/plugin-jsx@npm:^6.5.1":
3884 version: 6.5.1
3885 resolution: "@svgr/plugin-jsx@npm:6.5.1"
3886 dependencies:
3887 "@babel/core": "npm:^7.19.6"
3888 "@svgr/babel-preset": "npm:^6.5.1"
3889 "@svgr/hast-util-to-babel-ast": "npm:^6.5.1"
3890 svg-parser: "npm:^2.0.4"
3891 peerDependencies:
3892 "@svgr/core": ^6.0.0
3893 checksum: 10c0/365da6e43ceeff6b49258fa2fbb3c880210300e4a85ba74831e92d2dc9c53e6ab8dda422dc33fb6a339803227cf8d9a0024ce769401c46fd87209abe36d5ae43
3894 languageName: node
3895 linkType: hard
3896
3897"@svgr/plugin-svgo@npm:^6.5.1":
3898 version: 6.5.1
3899 resolution: "@svgr/plugin-svgo@npm:6.5.1"
3900 dependencies:
3901 cosmiconfig: "npm:^7.0.1"
3902 deepmerge: "npm:^4.2.2"
3903 svgo: "npm:^2.8.0"
3904 peerDependencies:
3905 "@svgr/core": "*"
3906 checksum: 10c0/da40e461145af1a92fd2ec50ea64626681fa73786f218497a4b4fb85393a58812999ca2744ee33bb7ab771aa5ce9ab1dbd08a189cb3d7a89fb58fd96913ddf91
3907 languageName: node
3908 linkType: hard
3909
3910"@svgr/webpack@npm:^6.5.1":
3911 version: 6.5.1
3912 resolution: "@svgr/webpack@npm:6.5.1"
3913 dependencies:
3914 "@babel/core": "npm:^7.19.6"
3915 "@babel/plugin-transform-react-constant-elements": "npm:^7.18.12"
3916 "@babel/preset-env": "npm:^7.19.4"
3917 "@babel/preset-react": "npm:^7.18.6"
3918 "@babel/preset-typescript": "npm:^7.18.6"
3919 "@svgr/core": "npm:^6.5.1"
3920 "@svgr/plugin-jsx": "npm:^6.5.1"
3921 "@svgr/plugin-svgo": "npm:^6.5.1"
3922 checksum: 10c0/3e9edfbc2ef3dc07b5f50c9c5ff5c951048511dff9dffb0407e6d15343849dfb36099fc7e1e3911429382cab81f7735a86ba1d6f77d21bb8f9ca33a5dec4824a
3923 languageName: node
3924 linkType: hard
3925
3926"@swc/core-darwin-arm64@npm:1.5.0":
3927 version: 1.5.0
3928 resolution: "@swc/core-darwin-arm64@npm:1.5.0"
2441 conditions: os=darwin & cpu=arm64 3929 conditions: os=darwin & cpu=arm64
2442 languageName: node 3930 languageName: node
2443 linkType: hard 3931 linkType: hard
2444 3932
2445"@swc/core-darwin-x64@npm:1.4.1": 3933"@swc/core-darwin-x64@npm:1.5.0":
2446 version: 1.4.1 3934 version: 1.5.0
2447 resolution: "@swc/core-darwin-x64@npm:1.4.1" 3935 resolution: "@swc/core-darwin-x64@npm:1.5.0"
2448 conditions: os=darwin & cpu=x64 3936 conditions: os=darwin & cpu=x64
2449 languageName: node 3937 languageName: node
2450 linkType: hard 3938 linkType: hard
2451 3939
2452"@swc/core-linux-arm-gnueabihf@npm:1.4.1": 3940"@swc/core-linux-arm-gnueabihf@npm:1.5.0":
2453 version: 1.4.1 3941 version: 1.5.0
2454 resolution: "@swc/core-linux-arm-gnueabihf@npm:1.4.1" 3942 resolution: "@swc/core-linux-arm-gnueabihf@npm:1.5.0"
2455 conditions: os=linux & cpu=arm 3943 conditions: os=linux & cpu=arm
2456 languageName: node 3944 languageName: node
2457 linkType: hard 3945 linkType: hard
2458 3946
2459"@swc/core-linux-arm64-gnu@npm:1.4.1": 3947"@swc/core-linux-arm64-gnu@npm:1.5.0":
2460 version: 1.4.1 3948 version: 1.5.0
2461 resolution: "@swc/core-linux-arm64-gnu@npm:1.4.1" 3949 resolution: "@swc/core-linux-arm64-gnu@npm:1.5.0"
2462 conditions: os=linux & cpu=arm64 & libc=glibc 3950 conditions: os=linux & cpu=arm64 & libc=glibc
2463 languageName: node 3951 languageName: node
2464 linkType: hard 3952 linkType: hard
2465 3953
2466"@swc/core-linux-arm64-musl@npm:1.4.1": 3954"@swc/core-linux-arm64-musl@npm:1.5.0":
2467 version: 1.4.1 3955 version: 1.5.0
2468 resolution: "@swc/core-linux-arm64-musl@npm:1.4.1" 3956 resolution: "@swc/core-linux-arm64-musl@npm:1.5.0"
2469 conditions: os=linux & cpu=arm64 & libc=musl 3957 conditions: os=linux & cpu=arm64 & libc=musl
2470 languageName: node 3958 languageName: node
2471 linkType: hard 3959 linkType: hard
2472 3960
2473"@swc/core-linux-x64-gnu@npm:1.4.1": 3961"@swc/core-linux-x64-gnu@npm:1.5.0":
2474 version: 1.4.1 3962 version: 1.5.0
2475 resolution: "@swc/core-linux-x64-gnu@npm:1.4.1" 3963 resolution: "@swc/core-linux-x64-gnu@npm:1.5.0"
2476 conditions: os=linux & cpu=x64 & libc=glibc 3964 conditions: os=linux & cpu=x64 & libc=glibc
2477 languageName: node 3965 languageName: node
2478 linkType: hard 3966 linkType: hard
2479 3967
2480"@swc/core-linux-x64-musl@npm:1.4.1": 3968"@swc/core-linux-x64-musl@npm:1.5.0":
2481 version: 1.4.1 3969 version: 1.5.0
2482 resolution: "@swc/core-linux-x64-musl@npm:1.4.1" 3970 resolution: "@swc/core-linux-x64-musl@npm:1.5.0"
2483 conditions: os=linux & cpu=x64 & libc=musl 3971 conditions: os=linux & cpu=x64 & libc=musl
2484 languageName: node 3972 languageName: node
2485 linkType: hard 3973 linkType: hard
2486 3974
2487"@swc/core-win32-arm64-msvc@npm:1.4.1": 3975"@swc/core-win32-arm64-msvc@npm:1.5.0":
2488 version: 1.4.1 3976 version: 1.5.0
2489 resolution: "@swc/core-win32-arm64-msvc@npm:1.4.1" 3977 resolution: "@swc/core-win32-arm64-msvc@npm:1.5.0"
2490 conditions: os=win32 & cpu=arm64 3978 conditions: os=win32 & cpu=arm64
2491 languageName: node 3979 languageName: node
2492 linkType: hard 3980 linkType: hard
2493 3981
2494"@swc/core-win32-ia32-msvc@npm:1.4.1": 3982"@swc/core-win32-ia32-msvc@npm:1.5.0":
2495 version: 1.4.1 3983 version: 1.5.0
2496 resolution: "@swc/core-win32-ia32-msvc@npm:1.4.1" 3984 resolution: "@swc/core-win32-ia32-msvc@npm:1.5.0"
2497 conditions: os=win32 & cpu=ia32 3985 conditions: os=win32 & cpu=ia32
2498 languageName: node 3986 languageName: node
2499 linkType: hard 3987 linkType: hard
2500 3988
2501"@swc/core-win32-x64-msvc@npm:1.4.1": 3989"@swc/core-win32-x64-msvc@npm:1.5.0":
2502 version: 1.4.1 3990 version: 1.5.0
2503 resolution: "@swc/core-win32-x64-msvc@npm:1.4.1" 3991 resolution: "@swc/core-win32-x64-msvc@npm:1.5.0"
2504 conditions: os=win32 & cpu=x64 3992 conditions: os=win32 & cpu=x64
2505 languageName: node 3993 languageName: node
2506 linkType: hard 3994 linkType: hard
2507 3995
2508"@swc/core@npm:^1.3.107": 3996"@swc/core@npm:^1.3.107, @swc/core@npm:^1.5.0":
2509 version: 1.4.1 3997 version: 1.5.0
2510 resolution: "@swc/core@npm:1.4.1" 3998 resolution: "@swc/core@npm:1.5.0"
2511 dependencies: 3999 dependencies:
2512 "@swc/core-darwin-arm64": "npm:1.4.1" 4000 "@swc/core-darwin-arm64": "npm:1.5.0"
2513 "@swc/core-darwin-x64": "npm:1.4.1" 4001 "@swc/core-darwin-x64": "npm:1.5.0"
2514 "@swc/core-linux-arm-gnueabihf": "npm:1.4.1" 4002 "@swc/core-linux-arm-gnueabihf": "npm:1.5.0"
2515 "@swc/core-linux-arm64-gnu": "npm:1.4.1" 4003 "@swc/core-linux-arm64-gnu": "npm:1.5.0"
2516 "@swc/core-linux-arm64-musl": "npm:1.4.1" 4004 "@swc/core-linux-arm64-musl": "npm:1.5.0"
2517 "@swc/core-linux-x64-gnu": "npm:1.4.1" 4005 "@swc/core-linux-x64-gnu": "npm:1.5.0"
2518 "@swc/core-linux-x64-musl": "npm:1.4.1" 4006 "@swc/core-linux-x64-musl": "npm:1.5.0"
2519 "@swc/core-win32-arm64-msvc": "npm:1.4.1" 4007 "@swc/core-win32-arm64-msvc": "npm:1.5.0"
2520 "@swc/core-win32-ia32-msvc": "npm:1.4.1" 4008 "@swc/core-win32-ia32-msvc": "npm:1.5.0"
2521 "@swc/core-win32-x64-msvc": "npm:1.4.1" 4009 "@swc/core-win32-x64-msvc": "npm:1.5.0"
2522 "@swc/counter": "npm:^0.1.2" 4010 "@swc/counter": "npm:^0.1.2"
2523 "@swc/types": "npm:^0.1.5" 4011 "@swc/types": "npm:^0.1.5"
2524 peerDependencies: 4012 peerDependencies:
@@ -2547,11 +4035,11 @@ __metadata:
2547 peerDependenciesMeta: 4035 peerDependenciesMeta:
2548 "@swc/helpers": 4036 "@swc/helpers":
2549 optional: true 4037 optional: true
2550 checksum: 10c0/ff5ac47c6a6b925292b82a98aefbf518dae6bb69300ff8aa231e10f0b4f68b346cbfce9a8dbe177119d43bdbf5bc7b0aaee8cc49d47385197bef8317df4c015c 4038 checksum: 10c0/ff740fd1a59a2f26bdec3d3236cbe8fe0780f21e320274595c5865d39bf85840f623a6af83b6a86869cd4255e28bf0c9f02dbd13b97fd6babd04d343dde4521d
2551 languageName: node 4039 languageName: node
2552 linkType: hard 4040 linkType: hard
2553 4041
2554"@swc/counter@npm:^0.1.2": 4042"@swc/counter@npm:^0.1.2, @swc/counter@npm:^0.1.3":
2555 version: 0.1.3 4043 version: 0.1.3
2556 resolution: "@swc/counter@npm:0.1.3" 4044 resolution: "@swc/counter@npm:0.1.3"
2557 checksum: 10c0/8424f60f6bf8694cfd2a9bca45845bce29f26105cda8cf19cdb9fd3e78dc6338699e4db77a89ae449260bafa1cc6bec307e81e7fb96dbf7dcfce0eea55151356 4045 checksum: 10c0/8424f60f6bf8694cfd2a9bca45845bce29f26105cda8cf19cdb9fd3e78dc6338699e4db77a89ae449260bafa1cc6bec307e81e7fb96dbf7dcfce0eea55151356
@@ -2565,6 +4053,15 @@ __metadata:
2565 languageName: node 4053 languageName: node
2566 linkType: hard 4054 linkType: hard
2567 4055
4056"@szmarczak/http-timer@npm:^5.0.1":
4057 version: 5.0.1
4058 resolution: "@szmarczak/http-timer@npm:5.0.1"
4059 dependencies:
4060 defer-to-connect: "npm:^2.0.1"
4061 checksum: 10c0/4629d2fbb2ea67c2e9dc03af235c0991c79ebdddcbc19aed5d5732fb29ce01c13331e9b1a491584b9069bd6ecde6581dcbf871f11b7eefdebbab34de6cf2197e
4062 languageName: node
4063 linkType: hard
4064
2568"@tootallnate/once@npm:2": 4065"@tootallnate/once@npm:2":
2569 version: 2.0.0 4066 version: 2.0.0
2570 resolution: "@tootallnate/once@npm:2.0.0" 4067 resolution: "@tootallnate/once@npm:2.0.0"
@@ -2572,6 +4069,82 @@ __metadata:
2572 languageName: node 4069 languageName: node
2573 linkType: hard 4070 linkType: hard
2574 4071
4072"@trysound/sax@npm:0.2.0":
4073 version: 0.2.0
4074 resolution: "@trysound/sax@npm:0.2.0"
4075 checksum: 10c0/44907308549ce775a41c38a815f747009ac45929a45d642b836aa6b0a536e4978d30b8d7d680bbd116e9dd73b7dbe2ef0d1369dcfc2d09e83ba381e485ecbe12
4076 languageName: node
4077 linkType: hard
4078
4079"@types/acorn@npm:^4.0.0":
4080 version: 4.0.6
4081 resolution: "@types/acorn@npm:4.0.6"
4082 dependencies:
4083 "@types/estree": "npm:*"
4084 checksum: 10c0/5a65a1d7e91fc95703f0a717897be60fa7ccd34b17f5462056274a246e6690259fe0a1baabc86fd3260354f87245cb3dc483346d7faad2b78fc199763978ede9
4085 languageName: node
4086 linkType: hard
4087
4088"@types/babel__core@npm:^7.20.5":
4089 version: 7.20.5
4090 resolution: "@types/babel__core@npm:7.20.5"
4091 dependencies:
4092 "@babel/parser": "npm:^7.20.7"
4093 "@babel/types": "npm:^7.20.7"
4094 "@types/babel__generator": "npm:*"
4095 "@types/babel__template": "npm:*"
4096 "@types/babel__traverse": "npm:*"
4097 checksum: 10c0/bdee3bb69951e833a4b811b8ee9356b69a61ed5b7a23e1a081ec9249769117fa83aaaf023bb06562a038eb5845155ff663e2d5c75dd95c1d5ccc91db012868ff
4098 languageName: node
4099 linkType: hard
4100
4101"@types/babel__generator@npm:*":
4102 version: 7.6.8
4103 resolution: "@types/babel__generator@npm:7.6.8"
4104 dependencies:
4105 "@babel/types": "npm:^7.0.0"
4106 checksum: 10c0/f0ba105e7d2296bf367d6e055bb22996886c114261e2cb70bf9359556d0076c7a57239d019dee42bb063f565bade5ccb46009bce2044b2952d964bf9a454d6d2
4107 languageName: node
4108 linkType: hard
4109
4110"@types/babel__template@npm:*":
4111 version: 7.4.4
4112 resolution: "@types/babel__template@npm:7.4.4"
4113 dependencies:
4114 "@babel/parser": "npm:^7.1.0"
4115 "@babel/types": "npm:^7.0.0"
4116 checksum: 10c0/cc84f6c6ab1eab1427e90dd2b76ccee65ce940b778a9a67be2c8c39e1994e6f5bbc8efa309f6cea8dc6754994524cd4d2896558df76d92e7a1f46ecffee7112b
4117 languageName: node
4118 linkType: hard
4119
4120"@types/babel__traverse@npm:*":
4121 version: 7.20.5
4122 resolution: "@types/babel__traverse@npm:7.20.5"
4123 dependencies:
4124 "@babel/types": "npm:^7.20.7"
4125 checksum: 10c0/033abcb2f4c084ad33e30c3efaad82161240f351e3c71b6154ed289946b33b363696c0fbd42502b68e4582a87413c418321f40eb1ea863e34fe525641345e05b
4126 languageName: node
4127 linkType: hard
4128
4129"@types/body-parser@npm:*":
4130 version: 1.19.5
4131 resolution: "@types/body-parser@npm:1.19.5"
4132 dependencies:
4133 "@types/connect": "npm:*"
4134 "@types/node": "npm:*"
4135 checksum: 10c0/aebeb200f25e8818d8cf39cd0209026750d77c9b85381cdd8deeb50913e4d18a1ebe4b74ca9b0b4d21952511eeaba5e9fbbf739b52731a2061e206ec60d568df
4136 languageName: node
4137 linkType: hard
4138
4139"@types/bonjour@npm:^3.5.9":
4140 version: 3.5.13
4141 resolution: "@types/bonjour@npm:3.5.13"
4142 dependencies:
4143 "@types/node": "npm:*"
4144 checksum: 10c0/eebedbca185ac3c39dd5992ef18d9e2a9f99e7f3c2f52f5561f90e9ed482c5d224c7962db95362712f580ed5713264e777a98d8f0bd8747f4eadf62937baed16
4145 languageName: node
4146 linkType: hard
4147
2575"@types/braces@npm:*": 4148"@types/braces@npm:*":
2576 version: 3.0.1 4149 version: 3.0.1
2577 resolution: "@types/braces@npm:3.0.1" 4150 resolution: "@types/braces@npm:3.0.1"
@@ -2579,6 +4152,25 @@ __metadata:
2579 languageName: node 4152 languageName: node
2580 linkType: hard 4153 linkType: hard
2581 4154
4155"@types/connect-history-api-fallback@npm:^1.3.5":
4156 version: 1.5.4
4157 resolution: "@types/connect-history-api-fallback@npm:1.5.4"
4158 dependencies:
4159 "@types/express-serve-static-core": "npm:*"
4160 "@types/node": "npm:*"
4161 checksum: 10c0/1b4035b627dcd714b05a22557f942e24a57ca48e7377dde0d2f86313fe685bc0a6566512a73257a55b5665b96c3041fb29228ac93331d8133011716215de8244
4162 languageName: node
4163 linkType: hard
4164
4165"@types/connect@npm:*":
4166 version: 3.4.38
4167 resolution: "@types/connect@npm:3.4.38"
4168 dependencies:
4169 "@types/node": "npm:*"
4170 checksum: 10c0/2e1cdba2c410f25649e77856505cd60223250fa12dff7a503e492208dbfdd25f62859918f28aba95315251fd1f5e1ffbfca1e25e73037189ab85dd3f8d0a148c
4171 languageName: node
4172 linkType: hard
4173
2582"@types/d3-array@npm:*": 4174"@types/d3-array@npm:*":
2583 version: 3.0.5 4175 version: 3.0.5
2584 resolution: "@types/d3-array@npm:3.0.5" 4176 resolution: "@types/d3-array@npm:3.0.5"
@@ -2904,17 +4496,45 @@ __metadata:
2904 languageName: node 4496 languageName: node
2905 linkType: hard 4497 linkType: hard
2906 4498
2907"@types/eslint@npm:^8.56.7": 4499"@types/debug@npm:^4.0.0":
2908 version: 8.56.7 4500 version: 4.1.12
2909 resolution: "@types/eslint@npm:8.56.7" 4501 resolution: "@types/debug@npm:4.1.12"
4502 dependencies:
4503 "@types/ms": "npm:*"
4504 checksum: 10c0/5dcd465edbb5a7f226e9a5efd1f399c6172407ef5840686b73e3608ce135eeca54ae8037dcd9f16bdb2768ac74925b820a8b9ecc588a58ca09eca6acabe33e2f
4505 languageName: node
4506 linkType: hard
4507
4508"@types/eslint-scope@npm:^3.7.3":
4509 version: 3.7.7
4510 resolution: "@types/eslint-scope@npm:3.7.7"
4511 dependencies:
4512 "@types/eslint": "npm:*"
4513 "@types/estree": "npm:*"
4514 checksum: 10c0/a0ecbdf2f03912679440550817ff77ef39a30fa8bfdacaf6372b88b1f931828aec392f52283240f0d648cf3055c5ddc564544a626bcf245f3d09fcb099ebe3cc
4515 languageName: node
4516 linkType: hard
4517
4518"@types/eslint@npm:*, @types/eslint@npm:^8.56.10":
4519 version: 8.56.10
4520 resolution: "@types/eslint@npm:8.56.10"
2910 dependencies: 4521 dependencies:
2911 "@types/estree": "npm:*" 4522 "@types/estree": "npm:*"
2912 "@types/json-schema": "npm:*" 4523 "@types/json-schema": "npm:*"
2913 checksum: 10c0/159bb5ae2f78d905b9263240c75d07b60c26e1bcaecee8c775a7bb0cf7362f5dcdd286259ba6289ab62f989b87048090b2420619f7170a0abbd83cb68b5e0699 4524 checksum: 10c0/674349d6c342c3864d70f4d5a9965f96fb253801532752c8c500ad6a1c2e8b219e01ccff5dc8791dcb58b5483012c495708bb9f3ff929f5c9322b3da126c15d3
2914 languageName: node 4525 languageName: node
2915 linkType: hard 4526 linkType: hard
2916 4527
2917"@types/estree@npm:*, @types/estree@npm:1.0.5": 4528"@types/estree-jsx@npm:^1.0.0":
4529 version: 1.0.5
4530 resolution: "@types/estree-jsx@npm:1.0.5"
4531 dependencies:
4532 "@types/estree": "npm:*"
4533 checksum: 10c0/07b354331516428b27a3ab99ee397547d47eb223c34053b48f84872fafb841770834b90cc1a0068398e7c7ccb15ec51ab00ec64b31dc5e3dbefd624638a35c6d
4534 languageName: node
4535 linkType: hard
4536
4537"@types/estree@npm:*, @types/estree@npm:1.0.5, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.5":
2918 version: 1.0.5 4538 version: 1.0.5
2919 resolution: "@types/estree@npm:1.0.5" 4539 resolution: "@types/estree@npm:1.0.5"
2920 checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d 4540 checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d
@@ -2928,6 +4548,30 @@ __metadata:
2928 languageName: node 4548 languageName: node
2929 linkType: hard 4549 linkType: hard
2930 4550
4551"@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^4.17.33":
4552 version: 4.19.0
4553 resolution: "@types/express-serve-static-core@npm:4.19.0"
4554 dependencies:
4555 "@types/node": "npm:*"
4556 "@types/qs": "npm:*"
4557 "@types/range-parser": "npm:*"
4558 "@types/send": "npm:*"
4559 checksum: 10c0/38a13dfbb38d18526276e68dae1097eb0ebef296e76bff2a9bf6831c052c2f87797e910c87bd3f0dd1a1b4136241c9d7c841779a00b22576d12aa9b483a63349
4560 languageName: node
4561 linkType: hard
4562
4563"@types/express@npm:*, @types/express@npm:^4.17.13":
4564 version: 4.17.21
4565 resolution: "@types/express@npm:4.17.21"
4566 dependencies:
4567 "@types/body-parser": "npm:*"
4568 "@types/express-serve-static-core": "npm:^4.17.33"
4569 "@types/qs": "npm:*"
4570 "@types/serve-static": "npm:*"
4571 checksum: 10c0/12e562c4571da50c7d239e117e688dc434db1bac8be55613294762f84fd77fbd0658ccd553c7d3ab02408f385bc93980992369dd30e2ecd2c68c358e6af8fabf
4572 languageName: node
4573 linkType: hard
4574
2931"@types/geojson@npm:*": 4575"@types/geojson@npm:*":
2932 version: 7946.0.10 4576 version: 7946.0.10
2933 resolution: "@types/geojson@npm:7946.0.10" 4577 resolution: "@types/geojson@npm:7946.0.10"
@@ -2935,6 +4579,29 @@ __metadata:
2935 languageName: node 4579 languageName: node
2936 linkType: hard 4580 linkType: hard
2937 4581
4582"@types/hast@npm:^3.0.0":
4583 version: 3.0.4
4584 resolution: "@types/hast@npm:3.0.4"
4585 dependencies:
4586 "@types/unist": "npm:*"
4587 checksum: 10c0/3249781a511b38f1d330fd1e3344eed3c4e7ea8eff82e835d35da78e637480d36fad37a78be5a7aed8465d237ad0446abc1150859d0fde395354ea634decf9f7
4588 languageName: node
4589 linkType: hard
4590
4591"@types/history@npm:^4.7.11":
4592 version: 4.7.11
4593 resolution: "@types/history@npm:4.7.11"
4594 checksum: 10c0/3facf37c2493d1f92b2e93a22cac7ea70b06351c2ab9aaceaa3c56aa6099fb63516f6c4ec1616deb5c56b4093c026a043ea2d3373e6c0644d55710364d02c934
4595 languageName: node
4596 linkType: hard
4597
4598"@types/html-minifier-terser@npm:^6.0.0":
4599 version: 6.1.0
4600 resolution: "@types/html-minifier-terser@npm:6.1.0"
4601 checksum: 10c0/a62fb8588e2f3818d82a2d7b953ad60a4a52fd767ae04671de1c16f5788bd72f1ed3a6109ed63fd190c06a37d919e3c39d8adbc1793a005def76c15a3f5f5dab
4602 languageName: node
4603 linkType: hard
4604
2938"@types/html-minifier-terser@npm:^7.0.2": 4605"@types/html-minifier-terser@npm:^7.0.2":
2939 version: 7.0.2 4606 version: 7.0.2
2940 resolution: "@types/html-minifier-terser@npm:7.0.2" 4607 resolution: "@types/html-minifier-terser@npm:7.0.2"
@@ -2942,10 +4609,58 @@ __metadata:
2942 languageName: node 4609 languageName: node
2943 linkType: hard 4610 linkType: hard
2944 4611
2945"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.12": 4612"@types/http-cache-semantics@npm:^4.0.2":
2946 version: 7.0.12 4613 version: 4.0.4
2947 resolution: "@types/json-schema@npm:7.0.12" 4614 resolution: "@types/http-cache-semantics@npm:4.0.4"
2948 checksum: 10c0/2c39946ae321fe42d085c61a85872a81bbee70f9b2054ad344e8811dfc478fdbaf1ebf5f2989bb87c895ba2dfc3b1dcba85db11e467bbcdc023708814207791c 4615 checksum: 10c0/51b72568b4b2863e0fe8d6ce8aad72a784b7510d72dc866215642da51d84945a9459fa89f49ec48f1e9a1752e6a78e85a4cda0ded06b1c73e727610c925f9ce6
4616 languageName: node
4617 linkType: hard
4618
4619"@types/http-errors@npm:*":
4620 version: 2.0.4
4621 resolution: "@types/http-errors@npm:2.0.4"
4622 checksum: 10c0/494670a57ad4062fee6c575047ad5782506dd35a6b9ed3894cea65830a94367bd84ba302eb3dde331871f6d70ca287bfedb1b2cf658e6132cd2cbd427ab56836
4623 languageName: node
4624 linkType: hard
4625
4626"@types/http-proxy@npm:^1.17.8":
4627 version: 1.17.14
4628 resolution: "@types/http-proxy@npm:1.17.14"
4629 dependencies:
4630 "@types/node": "npm:*"
4631 checksum: 10c0/c4bffd87be9aff7e879c05bd2c28716220e0eb39788e3f8d314eee665324ad8f5f0919041cbd710254d553cd9cea023f8b776d4b1ec31d2188eac60af18c3022
4632 languageName: node
4633 linkType: hard
4634
4635"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0":
4636 version: 2.0.6
4637 resolution: "@types/istanbul-lib-coverage@npm:2.0.6"
4638 checksum: 10c0/3948088654f3eeb45363f1db158354fb013b362dba2a5c2c18c559484d5eb9f6fd85b23d66c0a7c2fcfab7308d0a585b14dadaca6cc8bf89ebfdc7f8f5102fb7
4639 languageName: node
4640 linkType: hard
4641
4642"@types/istanbul-lib-report@npm:*":
4643 version: 3.0.3
4644 resolution: "@types/istanbul-lib-report@npm:3.0.3"
4645 dependencies:
4646 "@types/istanbul-lib-coverage": "npm:*"
4647 checksum: 10c0/247e477bbc1a77248f3c6de5dadaae85ff86ac2d76c5fc6ab1776f54512a745ff2a5f791d22b942e3990ddbd40f3ef5289317c4fca5741bedfaa4f01df89051c
4648 languageName: node
4649 linkType: hard
4650
4651"@types/istanbul-reports@npm:^3.0.0":
4652 version: 3.0.4
4653 resolution: "@types/istanbul-reports@npm:3.0.4"
4654 dependencies:
4655 "@types/istanbul-lib-report": "npm:*"
4656 checksum: 10c0/1647fd402aced5b6edac87274af14ebd6b3a85447ef9ad11853a70fd92a98d35f81a5d3ea9fcb5dbb5834e800c6e35b64475e33fcae6bfa9acc70d61497c54ee
4657 languageName: node
4658 linkType: hard
4659
4660"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.4, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9":
4661 version: 7.0.15
4662 resolution: "@types/json-schema@npm:7.0.15"
4663 checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db
2949 languageName: node 4664 languageName: node
2950 linkType: hard 4665 linkType: hard
2951 4666
@@ -2981,28 +4696,85 @@ __metadata:
2981 languageName: node 4696 languageName: node
2982 linkType: hard 4697 linkType: hard
2983 4698
2984"@types/micromatch@npm:^4.0.6": 4699"@types/mdast@npm:^4.0.0, @types/mdast@npm:^4.0.2, @types/mdast@npm:^4.0.3":
2985 version: 4.0.6 4700 version: 4.0.3
2986 resolution: "@types/micromatch@npm:4.0.6" 4701 resolution: "@types/mdast@npm:4.0.3"
4702 dependencies:
4703 "@types/unist": "npm:*"
4704 checksum: 10c0/e6994404f5ce58073aa6c1a37ceac3060326470a464e2d751580a9f89e2dbca3a2a6222b849bdaaa5bffbe89033c50a886d17e49fca3b040a4ffcf970e387a0c
4705 languageName: node
4706 linkType: hard
4707
4708"@types/mdx@npm:^2.0.0":
4709 version: 2.0.12
4710 resolution: "@types/mdx@npm:2.0.12"
4711 checksum: 10c0/a47ef3a7815c2e903244168e29177c64ed86cedbb005bba5e545dfe2dcabc0375a0a8f935d0909a701f575187e0a869c02ad279811e4be5d50058cf4e8240ca4
4712 languageName: node
4713 linkType: hard
4714
4715"@types/micromatch@npm:^4.0.7":
4716 version: 4.0.7
4717 resolution: "@types/micromatch@npm:4.0.7"
2987 dependencies: 4718 dependencies:
2988 "@types/braces": "npm:*" 4719 "@types/braces": "npm:*"
2989 checksum: 10c0/deba87b2bb740cb3f206c006baddc2d3f411fdba48e47452fb189a2a1a73cc3d6f6f2e6f52b970d1383e988afd9f12046e50f902ad740f1f8afa3faa273ab2a0 4720 checksum: 10c0/972cdc349b611f18e3e43123865a46c053490f16cbd1d97e95c7d04ff7c8aef69bbae831249518d374e7bc0378e51ba088da9950422fbfced4b5bedde9738d13
2990 languageName: node 4721 languageName: node
2991 linkType: hard 4722 linkType: hard
2992 4723
2993"@types/ms@npm:^0.7.34": 4724"@types/mime@npm:^1":
4725 version: 1.3.5
4726 resolution: "@types/mime@npm:1.3.5"
4727 checksum: 10c0/c2ee31cd9b993804df33a694d5aa3fa536511a49f2e06eeab0b484fef59b4483777dbb9e42a4198a0809ffbf698081fdbca1e5c2218b82b91603dfab10a10fbc
4728 languageName: node
4729 linkType: hard
4730
4731"@types/ms@npm:*, @types/ms@npm:^0.7.34":
2994 version: 0.7.34 4732 version: 0.7.34
2995 resolution: "@types/ms@npm:0.7.34" 4733 resolution: "@types/ms@npm:0.7.34"
2996 checksum: 10c0/ac80bd90012116ceb2d188fde62d96830ca847823e8ca71255616bc73991aa7d9f057b8bfab79e8ee44ffefb031ddd1bcce63ea82f9e66f7c31ec02d2d823ccc 4734 checksum: 10c0/ac80bd90012116ceb2d188fde62d96830ca847823e8ca71255616bc73991aa7d9f057b8bfab79e8ee44ffefb031ddd1bcce63ea82f9e66f7c31ec02d2d823ccc
2997 languageName: node 4735 languageName: node
2998 linkType: hard 4736 linkType: hard
2999 4737
3000"@types/node@npm:*, @types/node@npm:^20.12.5": 4738"@types/nlcst@npm:^2.0.0":
3001 version: 20.12.5 4739 version: 2.0.3
3002 resolution: "@types/node@npm:20.12.5" 4740 resolution: "@types/nlcst@npm:2.0.3"
4741 dependencies:
4742 "@types/unist": "npm:*"
4743 checksum: 10c0/d83549aaee59681ae8fa2a78d8a1b968a41eb7c0422773dff12acbf3661e4b2b2859740c3effdad9d0cd12ea14a0ec33ca302da12106476b627e09d2a029d3c1
4744 languageName: node
4745 linkType: hard
4746
4747"@types/node-forge@npm:^1.3.0":
4748 version: 1.3.11
4749 resolution: "@types/node-forge@npm:1.3.11"
4750 dependencies:
4751 "@types/node": "npm:*"
4752 checksum: 10c0/3d7d23ca0ba38ac0cf74028393bd70f31169ab9aba43f21deb787840170d307d662644bac07287495effe2812ddd7ac8a14dbd43f16c2936bbb06312e96fc3b9
4753 languageName: node
4754 linkType: hard
4755
4756"@types/node@npm:*, @types/node@npm:^20.12.7":
4757 version: 20.12.7
4758 resolution: "@types/node@npm:20.12.7"
4759 dependencies:
4760 undici-types: "npm:~5.26.4"
4761 checksum: 10c0/dce80d63a3b91892b321af823d624995c61e39c6a223cc0ac481a44d337640cc46931d33efb3beeed75f5c85c3bda1d97cef4c5cd4ec333caf5dee59cff6eca0
4762 languageName: node
4763 linkType: hard
4764
4765"@types/node@npm:^17.0.5":
4766 version: 17.0.45
4767 resolution: "@types/node@npm:17.0.45"
4768 checksum: 10c0/0db377133d709b33a47892581a21a41cd7958f22723a3cc6c71d55ac018121382de42fbfc7970d5ae3e7819dbe5f40e1c6a5174aedf7e7964e9cb8fa72b580b0
4769 languageName: node
4770 linkType: hard
4771
4772"@types/node@npm:^18.11.9":
4773 version: 18.19.31
4774 resolution: "@types/node@npm:18.19.31"
3003 dependencies: 4775 dependencies:
3004 undici-types: "npm:~5.26.4" 4776 undici-types: "npm:~5.26.4"
3005 checksum: 10c0/2da65516fba98f0417620e42bddbe53e144d4782d69cd37f99df2537c6850b9cfbdb8a017f02c61e9a074bcac84f9f3f221b250474ac8c6b95d507a47e8d53f9 4777 checksum: 10c0/bfebae8389220c0188492c82eaf328f4ba15e6e9b4abee33d6bf36d3b13f188c2f53eb695d427feb882fff09834f467405e2ed9be6aeb6ad4705509822d2ea08
3006 languageName: node 4778 languageName: node
3007 linkType: hard 4779 linkType: hard
3008 4780
@@ -3020,6 +4792,13 @@ __metadata:
3020 languageName: node 4792 languageName: node
3021 linkType: hard 4793 linkType: hard
3022 4794
4795"@types/prismjs@npm:^1.26.0":
4796 version: 1.26.3
4797 resolution: "@types/prismjs@npm:1.26.3"
4798 checksum: 10c0/3e8a64bcf0ab5f9a47ec2590938c5a8a20ac849b4949a95ed96e73e64cb890fc56e9c9b724286914717458267b28405f965709e1b9f80db5d68817a7ce5a18a9
4799 languageName: node
4800 linkType: hard
4801
3023"@types/prop-types@npm:*, @types/prop-types@npm:^15.7.11": 4802"@types/prop-types@npm:*, @types/prop-types@npm:^15.7.11":
3024 version: 15.7.11 4803 version: 15.7.11
3025 resolution: "@types/prop-types@npm:15.7.11" 4804 resolution: "@types/prop-types@npm:15.7.11"
@@ -3027,6 +4806,13 @@ __metadata:
3027 languageName: node 4806 languageName: node
3028 linkType: hard 4807 linkType: hard
3029 4808
4809"@types/qs@npm:*":
4810 version: 6.9.14
4811 resolution: "@types/qs@npm:6.9.14"
4812 checksum: 10c0/11ad1eb7f6d7c216002789959d88acc7c43f72854fa4335f01de0df41b4c4024668dace8a37ba12270314345ede0ec6b07f93053a45e7bd4cd7318a3dcf0b6b8
4813 languageName: node
4814 linkType: hard
4815
3030"@types/raf@npm:^3.4.0": 4816"@types/raf@npm:^3.4.0":
3031 version: 3.4.3 4817 version: 3.4.3
3032 resolution: "@types/raf@npm:3.4.3" 4818 resolution: "@types/raf@npm:3.4.3"
@@ -3034,12 +4820,51 @@ __metadata:
3034 languageName: node 4820 languageName: node
3035 linkType: hard 4821 linkType: hard
3036 4822
3037"@types/react-dom@npm:^18.2.24": 4823"@types/range-parser@npm:*":
3038 version: 18.2.24 4824 version: 1.2.7
3039 resolution: "@types/react-dom@npm:18.2.24" 4825 resolution: "@types/range-parser@npm:1.2.7"
4826 checksum: 10c0/361bb3e964ec5133fa40644a0b942279ed5df1949f21321d77de79f48b728d39253e5ce0408c9c17e4e0fd95ca7899da36841686393b9f7a1e209916e9381a3c
4827 languageName: node
4828 linkType: hard
4829
4830"@types/react-dom@npm:^18.3.0":
4831 version: 18.3.0
4832 resolution: "@types/react-dom@npm:18.3.0"
4833 dependencies:
4834 "@types/react": "npm:*"
4835 checksum: 10c0/6c90d2ed72c5a0e440d2c75d99287e4b5df3e7b011838cdc03ae5cd518ab52164d86990e73246b9d812eaf02ec351d74e3b4f5bd325bf341e13bf980392fd53b
4836 languageName: node
4837 linkType: hard
4838
4839"@types/react-router-config@npm:*, @types/react-router-config@npm:^5.0.7":
4840 version: 5.0.11
4841 resolution: "@types/react-router-config@npm:5.0.11"
4842 dependencies:
4843 "@types/history": "npm:^4.7.11"
4844 "@types/react": "npm:*"
4845 "@types/react-router": "npm:^5.1.0"
4846 checksum: 10c0/3fa4daf8c14689a05f34e289fc53c4a892e97f35715455c507a8048d9875b19cd3d3142934ca973effed6a6c38f33539b6e173cd254f67e2021ecd5458d551c8
4847 languageName: node
4848 linkType: hard
4849
4850"@types/react-router-dom@npm:*":
4851 version: 5.3.3
4852 resolution: "@types/react-router-dom@npm:5.3.3"
4853 dependencies:
4854 "@types/history": "npm:^4.7.11"
4855 "@types/react": "npm:*"
4856 "@types/react-router": "npm:*"
4857 checksum: 10c0/a9231a16afb9ed5142678147eafec9d48582809295754fb60946e29fcd3757a4c7a3180fa94b45763e4c7f6e3f02379e2fcb8dd986db479dcab40eff5fc62a91
4858 languageName: node
4859 linkType: hard
4860
4861"@types/react-router@npm:*, @types/react-router@npm:^5.1.0":
4862 version: 5.1.20
4863 resolution: "@types/react-router@npm:5.1.20"
3040 dependencies: 4864 dependencies:
4865 "@types/history": "npm:^4.7.11"
3041 "@types/react": "npm:*" 4866 "@types/react": "npm:*"
3042 checksum: 10c0/9ec38e5ab4727c56ef17bd8e938ead88748ba19db314b8d9807714a5cae430f5b799514667b221b4f2dc8d9b4ca17dd1c3da8c41c083c2de9eddcc31bec6b8ff 4867 checksum: 10c0/1f7eee61981d2f807fa01a34a0ef98ebc0774023832b6611a69c7f28fdff01de5a38cabf399f32e376bf8099dcb7afaf724775bea9d38870224492bea4cb5737
3043 languageName: node 4868 languageName: node
3044 linkType: hard 4869 linkType: hard
3045 4870
@@ -3052,13 +4877,13 @@ __metadata:
3052 languageName: node 4877 languageName: node
3053 linkType: hard 4878 linkType: hard
3054 4879
3055"@types/react@npm:*, @types/react@npm:^18.2.74": 4880"@types/react@npm:*, @types/react@npm:^18.3.0":
3056 version: 18.2.74 4881 version: 18.3.0
3057 resolution: "@types/react@npm:18.2.74" 4882 resolution: "@types/react@npm:18.3.0"
3058 dependencies: 4883 dependencies:
3059 "@types/prop-types": "npm:*" 4884 "@types/prop-types": "npm:*"
3060 csstype: "npm:^3.0.2" 4885 csstype: "npm:^3.0.2"
3061 checksum: 10c0/347e38b4c5dc20d50ff71bf04b7caaef490e5ff695e74a0088a13fbb2a0c5d125a5ecfd142adfa30f0176da0e2734942c91ba61d95ce269c43b3265bd7379361 4886 checksum: 10c0/6405f805700daf096a507a191bc4f8814ebed49120f156926b0a5b7b6f41424214320cea3dbb6df85f476b220f0554ef7e587baa88f59375e64bdbab525f58aa
3062 languageName: node 4887 languageName: node
3063 linkType: hard 4888 linkType: hard
3064 4889
@@ -3071,10 +4896,65 @@ __metadata:
3071 languageName: node 4896 languageName: node
3072 linkType: hard 4897 linkType: hard
3073 4898
3074"@types/semver@npm:^7.5.0": 4899"@types/retry@npm:0.12.0":
3075 version: 7.5.0 4900 version: 0.12.0
3076 resolution: "@types/semver@npm:7.5.0" 4901 resolution: "@types/retry@npm:0.12.0"
3077 checksum: 10c0/ca4ba4642b5972b6e88e73c5bc02bbaceb8d76bce71748d86e3e95042d4e5a44603113a1dcd2cb9b73ad6f91f6e4ab73185eb41bbfc9c73b11f0ed3db3b7443a 4902 checksum: 10c0/7c5c9086369826f569b83a4683661557cab1361bac0897a1cefa1a915ff739acd10ca0d62b01071046fe3f5a3f7f2aec80785fe283b75602dc6726781ea3e328
4903 languageName: node
4904 linkType: hard
4905
4906"@types/sax@npm:^1.2.1":
4907 version: 1.2.7
4908 resolution: "@types/sax@npm:1.2.7"
4909 dependencies:
4910 "@types/node": "npm:*"
4911 checksum: 10c0/d077a761a0753b079bf8279b3993948030ca86ed9125437b9b29c1de40db9b2deb7fddc369f014b58861d450e8b8cc75f163aa29dc8cea81952efbfd859168cf
4912 languageName: node
4913 linkType: hard
4914
4915"@types/semver@npm:^7.5.8":
4916 version: 7.5.8
4917 resolution: "@types/semver@npm:7.5.8"
4918 checksum: 10c0/8663ff927234d1c5fcc04b33062cb2b9fcfbe0f5f351ed26c4d1e1581657deebd506b41ff7fdf89e787e3d33ce05854bc01686379b89e9c49b564c4cfa988efa
4919 languageName: node
4920 linkType: hard
4921
4922"@types/send@npm:*":
4923 version: 0.17.4
4924 resolution: "@types/send@npm:0.17.4"
4925 dependencies:
4926 "@types/mime": "npm:^1"
4927 "@types/node": "npm:*"
4928 checksum: 10c0/7f17fa696cb83be0a104b04b424fdedc7eaba1c9a34b06027239aba513b398a0e2b7279778af521f516a397ced417c96960e5f50fcfce40c4bc4509fb1a5883c
4929 languageName: node
4930 linkType: hard
4931
4932"@types/serve-index@npm:^1.9.1":
4933 version: 1.9.4
4934 resolution: "@types/serve-index@npm:1.9.4"
4935 dependencies:
4936 "@types/express": "npm:*"
4937 checksum: 10c0/94c1b9e8f1ea36a229e098e1643d5665d9371f8c2658521718e259130a237c447059b903bac0dcc96ee2c15fd63f49aa647099b7d0d437a67a6946527a837438
4938 languageName: node
4939 linkType: hard
4940
4941"@types/serve-static@npm:*, @types/serve-static@npm:^1.13.10":
4942 version: 1.15.7
4943 resolution: "@types/serve-static@npm:1.15.7"
4944 dependencies:
4945 "@types/http-errors": "npm:*"
4946 "@types/node": "npm:*"
4947 "@types/send": "npm:*"
4948 checksum: 10c0/26ec864d3a626ea627f8b09c122b623499d2221bbf2f470127f4c9ebfe92bd8a6bb5157001372d4c4bd0dd37a1691620217d9dc4df5aa8f779f3fd996b1c60ae
4949 languageName: node
4950 linkType: hard
4951
4952"@types/sockjs@npm:^0.3.33":
4953 version: 0.3.36
4954 resolution: "@types/sockjs@npm:0.3.36"
4955 dependencies:
4956 "@types/node": "npm:*"
4957 checksum: 10c0/b20b7820ee813f22de4f2ce98bdd12c68c930e016a8912b1ed967595ac0d8a4cbbff44f4d486dd97f77f5927e7b5725bdac7472c9ec5b27f53a5a13179f0612f
3078 languageName: node 4958 languageName: node
3079 linkType: hard 4959 linkType: hard
3080 4960
@@ -3085,130 +4965,169 @@ __metadata:
3085 languageName: node 4965 languageName: node
3086 linkType: hard 4966 linkType: hard
3087 4967
3088"@typescript-eslint/eslint-plugin@npm:^7.5.0": 4968"@types/unist@npm:*, @types/unist@npm:^3.0.0, @types/unist@npm:^3.0.2":
3089 version: 7.5.0 4969 version: 3.0.2
3090 resolution: "@typescript-eslint/eslint-plugin@npm:7.5.0" 4970 resolution: "@types/unist@npm:3.0.2"
4971 checksum: 10c0/39f220ce184a773c55c18a127062bfc4d0d30c987250cd59bab544d97be6cfec93717a49ef96e81f024b575718f798d4d329eb81c452fc57d6d051af8b043ebf
4972 languageName: node
4973 linkType: hard
4974
4975"@types/unist@npm:^2.0.0":
4976 version: 2.0.10
4977 resolution: "@types/unist@npm:2.0.10"
4978 checksum: 10c0/5f247dc2229944355209ad5c8e83cfe29419fa7f0a6d557421b1985a1500444719cc9efcc42c652b55aab63c931813c88033e0202c1ac684bcd4829d66e44731
4979 languageName: node
4980 linkType: hard
4981
4982"@types/ws@npm:^8.5.5":
4983 version: 8.5.10
4984 resolution: "@types/ws@npm:8.5.10"
4985 dependencies:
4986 "@types/node": "npm:*"
4987 checksum: 10c0/e9af279b984c4a04ab53295a40aa95c3e9685f04888df5c6920860d1dd073fcc57c7bd33578a04b285b2c655a0b52258d34bee0a20569dca8defb8393e1e5d29
4988 languageName: node
4989 linkType: hard
4990
4991"@types/yargs-parser@npm:*":
4992 version: 21.0.3
4993 resolution: "@types/yargs-parser@npm:21.0.3"
4994 checksum: 10c0/e71c3bd9d0b73ca82e10bee2064c384ab70f61034bbfb78e74f5206283fc16a6d85267b606b5c22cb2a3338373586786fed595b2009825d6a9115afba36560a0
4995 languageName: node
4996 linkType: hard
4997
4998"@types/yargs@npm:^17.0.8":
4999 version: 17.0.32
5000 resolution: "@types/yargs@npm:17.0.32"
5001 dependencies:
5002 "@types/yargs-parser": "npm:*"
5003 checksum: 10c0/2095e8aad8a4e66b86147415364266b8d607a3b95b4239623423efd7e29df93ba81bb862784a6e08664f645cc1981b25fd598f532019174cd3e5e1e689e1cccf
5004 languageName: node
5005 linkType: hard
5006
5007"@typescript-eslint/eslint-plugin@npm:^7.7.1":
5008 version: 7.7.1
5009 resolution: "@typescript-eslint/eslint-plugin@npm:7.7.1"
3091 dependencies: 5010 dependencies:
3092 "@eslint-community/regexpp": "npm:^4.5.1" 5011 "@eslint-community/regexpp": "npm:^4.10.0"
3093 "@typescript-eslint/scope-manager": "npm:7.5.0" 5012 "@typescript-eslint/scope-manager": "npm:7.7.1"
3094 "@typescript-eslint/type-utils": "npm:7.5.0" 5013 "@typescript-eslint/type-utils": "npm:7.7.1"
3095 "@typescript-eslint/utils": "npm:7.5.0" 5014 "@typescript-eslint/utils": "npm:7.7.1"
3096 "@typescript-eslint/visitor-keys": "npm:7.5.0" 5015 "@typescript-eslint/visitor-keys": "npm:7.7.1"
3097 debug: "npm:^4.3.4" 5016 debug: "npm:^4.3.4"
3098 graphemer: "npm:^1.4.0" 5017 graphemer: "npm:^1.4.0"
3099 ignore: "npm:^5.2.4" 5018 ignore: "npm:^5.3.1"
3100 natural-compare: "npm:^1.4.0" 5019 natural-compare: "npm:^1.4.0"
3101 semver: "npm:^7.5.4" 5020 semver: "npm:^7.6.0"
3102 ts-api-utils: "npm:^1.0.1" 5021 ts-api-utils: "npm:^1.3.0"
3103 peerDependencies: 5022 peerDependencies:
3104 "@typescript-eslint/parser": ^7.0.0 5023 "@typescript-eslint/parser": ^7.0.0
3105 eslint: ^8.56.0 5024 eslint: ^8.56.0
3106 peerDependenciesMeta: 5025 peerDependenciesMeta:
3107 typescript: 5026 typescript:
3108 optional: true 5027 optional: true
3109 checksum: 10c0/932a7b5a09c0138ef5a0bf00f8e6039fa209d4047092ffc187de048543c21f7ce24dc14f25f4c87b6f3bbb62335fc952e259e271fde88baf793217bde6460cfa 5028 checksum: 10c0/11a085240e7daf4bdeb011aa53ac7cfeea6263c60d53607823f5c314eb5c9d559b28fce0d6686acb9702ee3d0cb0406534fafae61163e5a903eaf818c48194ad
3110 languageName: node 5029 languageName: node
3111 linkType: hard 5030 linkType: hard
3112 5031
3113"@typescript-eslint/parser@npm:^7.5.0": 5032"@typescript-eslint/parser@npm:^7.7.1":
3114 version: 7.5.0 5033 version: 7.7.1
3115 resolution: "@typescript-eslint/parser@npm:7.5.0" 5034 resolution: "@typescript-eslint/parser@npm:7.7.1"
3116 dependencies: 5035 dependencies:
3117 "@typescript-eslint/scope-manager": "npm:7.5.0" 5036 "@typescript-eslint/scope-manager": "npm:7.7.1"
3118 "@typescript-eslint/types": "npm:7.5.0" 5037 "@typescript-eslint/types": "npm:7.7.1"
3119 "@typescript-eslint/typescript-estree": "npm:7.5.0" 5038 "@typescript-eslint/typescript-estree": "npm:7.7.1"
3120 "@typescript-eslint/visitor-keys": "npm:7.5.0" 5039 "@typescript-eslint/visitor-keys": "npm:7.7.1"
3121 debug: "npm:^4.3.4" 5040 debug: "npm:^4.3.4"
3122 peerDependencies: 5041 peerDependencies:
3123 eslint: ^8.56.0 5042 eslint: ^8.56.0
3124 peerDependenciesMeta: 5043 peerDependenciesMeta:
3125 typescript: 5044 typescript:
3126 optional: true 5045 optional: true
3127 checksum: 10c0/65521202ff024e79594272fbb7e4731ecf9d2fdd2f58fc81450bfd2bca94ce9c17b0eadd7338c01701f5cf16d38b6c025ed3fc322380b1e4b5424b7484098cda 5046 checksum: 10c0/ace43eeb8123bbee61e936650e1d57a2cf70f2030870c6dcad8602fce3f7cdf2cce350121dbbc66cffd60bac36652f426a1c5293c45ed28998b90cd95673b5c9
3128 languageName: node 5047 languageName: node
3129 linkType: hard 5048 linkType: hard
3130 5049
3131"@typescript-eslint/scope-manager@npm:7.5.0": 5050"@typescript-eslint/scope-manager@npm:7.7.1":
3132 version: 7.5.0 5051 version: 7.7.1
3133 resolution: "@typescript-eslint/scope-manager@npm:7.5.0" 5052 resolution: "@typescript-eslint/scope-manager@npm:7.7.1"
3134 dependencies: 5053 dependencies:
3135 "@typescript-eslint/types": "npm:7.5.0" 5054 "@typescript-eslint/types": "npm:7.7.1"
3136 "@typescript-eslint/visitor-keys": "npm:7.5.0" 5055 "@typescript-eslint/visitor-keys": "npm:7.7.1"
3137 checksum: 10c0/a017b151a6b39ef591f8e2e65598e005e1b4b2d5494e4b91bddb5856b3a4d57dd8a58d2bc7a140e627eb574f93a2c8fe55f1307aa264c928ffd31d9e190bc5dd 5056 checksum: 10c0/4032da8fce8922044a6b659c8435ba203377778d5b7de6a5572c1172f2e3cf8ddd890a0f9e083c5d5315a9c2dba323707528ee4ad3cc1be2bd334de2527ef5cb
3138 languageName: node 5057 languageName: node
3139 linkType: hard 5058 linkType: hard
3140 5059
3141"@typescript-eslint/type-utils@npm:7.5.0": 5060"@typescript-eslint/type-utils@npm:7.7.1":
3142 version: 7.5.0 5061 version: 7.7.1
3143 resolution: "@typescript-eslint/type-utils@npm:7.5.0" 5062 resolution: "@typescript-eslint/type-utils@npm:7.7.1"
3144 dependencies: 5063 dependencies:
3145 "@typescript-eslint/typescript-estree": "npm:7.5.0" 5064 "@typescript-eslint/typescript-estree": "npm:7.7.1"
3146 "@typescript-eslint/utils": "npm:7.5.0" 5065 "@typescript-eslint/utils": "npm:7.7.1"
3147 debug: "npm:^4.3.4" 5066 debug: "npm:^4.3.4"
3148 ts-api-utils: "npm:^1.0.1" 5067 ts-api-utils: "npm:^1.3.0"
3149 peerDependencies: 5068 peerDependencies:
3150 eslint: ^8.56.0 5069 eslint: ^8.56.0
3151 peerDependenciesMeta: 5070 peerDependenciesMeta:
3152 typescript: 5071 typescript:
3153 optional: true 5072 optional: true
3154 checksum: 10c0/12915d4d1872638f5281e222a0d191676c478f250699c84864862e95a59e708222acefbf7ffdafc0872a007261219a3a2b1e667ff45eeafea7c4bcc5b955262c 5073 checksum: 10c0/bd083c4106e207aa8c2a71251eca52d23c7ea905399b8c62004f3bb1e85b9c88d601db9dcecae88beef0f8362d53450bb2721aab353ee731c1665496fea3fbda
3155 languageName: node 5074 languageName: node
3156 linkType: hard 5075 linkType: hard
3157 5076
3158"@typescript-eslint/types@npm:7.5.0": 5077"@typescript-eslint/types@npm:7.7.1":
3159 version: 7.5.0 5078 version: 7.7.1
3160 resolution: "@typescript-eslint/types@npm:7.5.0" 5079 resolution: "@typescript-eslint/types@npm:7.7.1"
3161 checksum: 10c0/f3394f71f422dbd89f63b230f20e9769c12e47a287ff30ca03a80714e57ea21279b6f12a8ab14bafb00b59926f20a88894b2d1e72679f7ff298bae112679d4b3 5080 checksum: 10c0/7d240503d9d0b12d68c8204167690609f02ededb77dcb035c1c8b932da08cf43553829c29a5f7889824a7337463c300343bc5abe532479726d4c83443a7e2704
3162 languageName: node 5081 languageName: node
3163 linkType: hard 5082 linkType: hard
3164 5083
3165"@typescript-eslint/typescript-estree@npm:7.5.0": 5084"@typescript-eslint/typescript-estree@npm:7.7.1":
3166 version: 7.5.0 5085 version: 7.7.1
3167 resolution: "@typescript-eslint/typescript-estree@npm:7.5.0" 5086 resolution: "@typescript-eslint/typescript-estree@npm:7.7.1"
3168 dependencies: 5087 dependencies:
3169 "@typescript-eslint/types": "npm:7.5.0" 5088 "@typescript-eslint/types": "npm:7.7.1"
3170 "@typescript-eslint/visitor-keys": "npm:7.5.0" 5089 "@typescript-eslint/visitor-keys": "npm:7.7.1"
3171 debug: "npm:^4.3.4" 5090 debug: "npm:^4.3.4"
3172 globby: "npm:^11.1.0" 5091 globby: "npm:^11.1.0"
3173 is-glob: "npm:^4.0.3" 5092 is-glob: "npm:^4.0.3"
3174 minimatch: "npm:9.0.3" 5093 minimatch: "npm:^9.0.4"
3175 semver: "npm:^7.5.4" 5094 semver: "npm:^7.6.0"
3176 ts-api-utils: "npm:^1.0.1" 5095 ts-api-utils: "npm:^1.3.0"
3177 peerDependenciesMeta: 5096 peerDependenciesMeta:
3178 typescript: 5097 typescript:
3179 optional: true 5098 optional: true
3180 checksum: 10c0/ea3a270c725d6be273188b86110e0393052cd64d1c54a56eb5ea405e6d3fbbe84fb3b1ce1b8496a4078ac1eefd37aedcf12be91876764f6de31d5aa5131c7bcd 5099 checksum: 10c0/c6b32bd96fd13b9da0a30de01935066f7505f6214f5759e3cd019f7d1852f7bf19358765f62e51de72be47647656aa0e8f07ac0ab316c4149a4e6bd1dd12cbb6
3181 languageName: node 5100 languageName: node
3182 linkType: hard 5101 linkType: hard
3183 5102
3184"@typescript-eslint/utils@npm:7.5.0": 5103"@typescript-eslint/utils@npm:7.7.1":
3185 version: 7.5.0 5104 version: 7.7.1
3186 resolution: "@typescript-eslint/utils@npm:7.5.0" 5105 resolution: "@typescript-eslint/utils@npm:7.7.1"
3187 dependencies: 5106 dependencies:
3188 "@eslint-community/eslint-utils": "npm:^4.4.0" 5107 "@eslint-community/eslint-utils": "npm:^4.4.0"
3189 "@types/json-schema": "npm:^7.0.12" 5108 "@types/json-schema": "npm:^7.0.15"
3190 "@types/semver": "npm:^7.5.0" 5109 "@types/semver": "npm:^7.5.8"
3191 "@typescript-eslint/scope-manager": "npm:7.5.0" 5110 "@typescript-eslint/scope-manager": "npm:7.7.1"
3192 "@typescript-eslint/types": "npm:7.5.0" 5111 "@typescript-eslint/types": "npm:7.7.1"
3193 "@typescript-eslint/typescript-estree": "npm:7.5.0" 5112 "@typescript-eslint/typescript-estree": "npm:7.7.1"
3194 semver: "npm:^7.5.4" 5113 semver: "npm:^7.6.0"
3195 peerDependencies: 5114 peerDependencies:
3196 eslint: ^8.56.0 5115 eslint: ^8.56.0
3197 checksum: 10c0/c815ed6909769648953d6963c069038f7cac0c979051b25718feb30e0d3337b9647b75b8de00ac03fe960f0cc8dc4e8a81d4aac4719090a99785e0068712bd24 5116 checksum: 10c0/0986b8c297d6bfdbd2ac8cd3bcf447ef9b934e2dae536771d3368a5c284a0b16c0ea041f82aa100c48d05acc33198e1a3d9d721d3319ae80abba0f5e69c21633
3198 languageName: node 5117 languageName: node
3199 linkType: hard 5118 linkType: hard
3200 5119
3201"@typescript-eslint/visitor-keys@npm:7.5.0": 5120"@typescript-eslint/visitor-keys@npm:7.7.1":
3202 version: 7.5.0 5121 version: 7.7.1
3203 resolution: "@typescript-eslint/visitor-keys@npm:7.5.0" 5122 resolution: "@typescript-eslint/visitor-keys@npm:7.7.1"
3204 dependencies: 5123 dependencies:
3205 "@typescript-eslint/types": "npm:7.5.0" 5124 "@typescript-eslint/types": "npm:7.7.1"
3206 eslint-visitor-keys: "npm:^3.4.1" 5125 eslint-visitor-keys: "npm:^3.4.3"
3207 checksum: 10c0/eecf02b8dd54e83738a143aca87b902af4b357028a90fd34ed7a2f40a3ae2f6a188b9ba53903f23c80e868f1fffbb039e9ddb63525438d659707cc7bfb269317 5126 checksum: 10c0/19cbd14ac9a234d847f457cbd880cbd98b83c331a46d2dc2d8c0e6cb54ce6159552f6dd2f7236035be1a71f13f48df4a2aa09e70ad1f1e2ff3da7c3622927bd3
3208 languageName: node 5127 languageName: node
3209 linkType: hard 5128 linkType: hard
3210 5129
3211"@ungap/structured-clone@npm:^1.2.0": 5130"@ungap/structured-clone@npm:^1.0.0, @ungap/structured-clone@npm:^1.2.0":
3212 version: 1.2.0 5131 version: 1.2.0
3213 resolution: "@ungap/structured-clone@npm:1.2.0" 5132 resolution: "@ungap/structured-clone@npm:1.2.0"
3214 checksum: 10c0/8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d 5133 checksum: 10c0/8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d
@@ -3226,6 +5145,157 @@ __metadata:
3226 languageName: node 5145 languageName: node
3227 linkType: hard 5146 linkType: hard
3228 5147
5148"@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1":
5149 version: 1.12.1
5150 resolution: "@webassemblyjs/ast@npm:1.12.1"
5151 dependencies:
5152 "@webassemblyjs/helper-numbers": "npm:1.11.6"
5153 "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6"
5154 checksum: 10c0/ba7f2b96c6e67e249df6156d02c69eb5f1bd18d5005303cdc42accb053bebbbde673826e54db0437c9748e97abd218366a1d13fa46859b23cde611b6b409998c
5155 languageName: node
5156 linkType: hard
5157
5158"@webassemblyjs/floating-point-hex-parser@npm:1.11.6":
5159 version: 1.11.6
5160 resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.6"
5161 checksum: 10c0/37fe26f89e18e4ca0e7d89cfe3b9f17cfa327d7daf906ae01400416dbb2e33c8a125b4dc55ad7ff405e5fcfb6cf0d764074c9bc532b9a31a71e762be57d2ea0a
5162 languageName: node
5163 linkType: hard
5164
5165"@webassemblyjs/helper-api-error@npm:1.11.6":
5166 version: 1.11.6
5167 resolution: "@webassemblyjs/helper-api-error@npm:1.11.6"
5168 checksum: 10c0/a681ed51863e4ff18cf38d223429f414894e5f7496856854d9a886eeddcee32d7c9f66290f2919c9bb6d2fc2b2fae3f989b6a1e02a81e829359738ea0c4d371a
5169 languageName: node
5170 linkType: hard
5171
5172"@webassemblyjs/helper-buffer@npm:1.12.1":
5173 version: 1.12.1
5174 resolution: "@webassemblyjs/helper-buffer@npm:1.12.1"
5175 checksum: 10c0/0270724afb4601237410f7fd845ab58ccda1d5456a8783aadfb16eaaf3f2c9610c28e4a5bcb6ad880cde5183c82f7f116d5ccfc2310502439d33f14b6888b48a
5176 languageName: node
5177 linkType: hard
5178
5179"@webassemblyjs/helper-numbers@npm:1.11.6":
5180 version: 1.11.6
5181 resolution: "@webassemblyjs/helper-numbers@npm:1.11.6"
5182 dependencies:
5183 "@webassemblyjs/floating-point-hex-parser": "npm:1.11.6"
5184 "@webassemblyjs/helper-api-error": "npm:1.11.6"
5185 "@xtuc/long": "npm:4.2.2"
5186 checksum: 10c0/c7d5afc0ff3bd748339b466d8d2f27b908208bf3ff26b2e8e72c39814479d486e0dca6f3d4d776fd9027c1efe05b5c0716c57a23041eb34473892b2731c33af3
5187 languageName: node
5188 linkType: hard
5189
5190"@webassemblyjs/helper-wasm-bytecode@npm:1.11.6":
5191 version: 1.11.6
5192 resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.6"
5193 checksum: 10c0/79d2bebdd11383d142745efa32781249745213af8e022651847382685ca76709f83e1d97adc5f0d3c2b8546bf02864f8b43a531fdf5ca0748cb9e4e0ef2acaa5
5194 languageName: node
5195 linkType: hard
5196
5197"@webassemblyjs/helper-wasm-section@npm:1.12.1":
5198 version: 1.12.1
5199 resolution: "@webassemblyjs/helper-wasm-section@npm:1.12.1"
5200 dependencies:
5201 "@webassemblyjs/ast": "npm:1.12.1"
5202 "@webassemblyjs/helper-buffer": "npm:1.12.1"
5203 "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6"
5204 "@webassemblyjs/wasm-gen": "npm:1.12.1"
5205 checksum: 10c0/0546350724d285ae3c26e6fc444be4c3b5fb824f3be0ec8ceb474179dc3f4430336dd2e36a44b3e3a1a6815960e5eec98cd9b3a8ec66dc53d86daedd3296a6a2
5206 languageName: node
5207 linkType: hard
5208
5209"@webassemblyjs/ieee754@npm:1.11.6":
5210 version: 1.11.6
5211 resolution: "@webassemblyjs/ieee754@npm:1.11.6"
5212 dependencies:
5213 "@xtuc/ieee754": "npm:^1.2.0"
5214 checksum: 10c0/59de0365da450322c958deadade5ec2d300c70f75e17ae55de3c9ce564deff5b429e757d107c7ec69bd0ba169c6b6cc2ff66293ab7264a7053c829b50ffa732f
5215 languageName: node
5216 linkType: hard
5217
5218"@webassemblyjs/leb128@npm:1.11.6":
5219 version: 1.11.6
5220 resolution: "@webassemblyjs/leb128@npm:1.11.6"
5221 dependencies:
5222 "@xtuc/long": "npm:4.2.2"
5223 checksum: 10c0/cb344fc04f1968209804de4da018679c5d4708a03b472a33e0fa75657bb024978f570d3ccf9263b7f341f77ecaa75d0e051b9cd4b7bb17a339032cfd1c37f96e
5224 languageName: node
5225 linkType: hard
5226
5227"@webassemblyjs/utf8@npm:1.11.6":
5228 version: 1.11.6
5229 resolution: "@webassemblyjs/utf8@npm:1.11.6"
5230 checksum: 10c0/14d6c24751a89ad9d801180b0d770f30a853c39f035a15fbc96266d6ac46355227abd27a3fd2eeaa97b4294ced2440a6b012750ae17bafe1a7633029a87b6bee
5231 languageName: node
5232 linkType: hard
5233
5234"@webassemblyjs/wasm-edit@npm:^1.12.1":
5235 version: 1.12.1
5236 resolution: "@webassemblyjs/wasm-edit@npm:1.12.1"
5237 dependencies:
5238 "@webassemblyjs/ast": "npm:1.12.1"
5239 "@webassemblyjs/helper-buffer": "npm:1.12.1"
5240 "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6"
5241 "@webassemblyjs/helper-wasm-section": "npm:1.12.1"
5242 "@webassemblyjs/wasm-gen": "npm:1.12.1"
5243 "@webassemblyjs/wasm-opt": "npm:1.12.1"
5244 "@webassemblyjs/wasm-parser": "npm:1.12.1"
5245 "@webassemblyjs/wast-printer": "npm:1.12.1"
5246 checksum: 10c0/972f5e6c522890743999e0ed45260aae728098801c6128856b310dd21f1ee63435fc7b518e30e0ba1cdafd0d1e38275829c1e4451c3536a1d9e726e07a5bba0b
5247 languageName: node
5248 linkType: hard
5249
5250"@webassemblyjs/wasm-gen@npm:1.12.1":
5251 version: 1.12.1
5252 resolution: "@webassemblyjs/wasm-gen@npm:1.12.1"
5253 dependencies:
5254 "@webassemblyjs/ast": "npm:1.12.1"
5255 "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6"
5256 "@webassemblyjs/ieee754": "npm:1.11.6"
5257 "@webassemblyjs/leb128": "npm:1.11.6"
5258 "@webassemblyjs/utf8": "npm:1.11.6"
5259 checksum: 10c0/1e257288177af9fa34c69cab94f4d9036ebed611f77f3897c988874e75182eeeec759c79b89a7a49dd24624fc2d3d48d5580b62b67c4a1c9bfbdcd266b281c16
5260 languageName: node
5261 linkType: hard
5262
5263"@webassemblyjs/wasm-opt@npm:1.12.1":
5264 version: 1.12.1
5265 resolution: "@webassemblyjs/wasm-opt@npm:1.12.1"
5266 dependencies:
5267 "@webassemblyjs/ast": "npm:1.12.1"
5268 "@webassemblyjs/helper-buffer": "npm:1.12.1"
5269 "@webassemblyjs/wasm-gen": "npm:1.12.1"
5270 "@webassemblyjs/wasm-parser": "npm:1.12.1"
5271 checksum: 10c0/992a45e1f1871033c36987459436ab4e6430642ca49328e6e32a13de9106fe69ae6c0ac27d7050efd76851e502d11cd1ac0e06b55655dfa889ad82f11a2712fb
5272 languageName: node
5273 linkType: hard
5274
5275"@webassemblyjs/wasm-parser@npm:1.12.1, @webassemblyjs/wasm-parser@npm:^1.12.1":
5276 version: 1.12.1
5277 resolution: "@webassemblyjs/wasm-parser@npm:1.12.1"
5278 dependencies:
5279 "@webassemblyjs/ast": "npm:1.12.1"
5280 "@webassemblyjs/helper-api-error": "npm:1.11.6"
5281 "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6"
5282 "@webassemblyjs/ieee754": "npm:1.11.6"
5283 "@webassemblyjs/leb128": "npm:1.11.6"
5284 "@webassemblyjs/utf8": "npm:1.11.6"
5285 checksum: 10c0/e85cec1acad07e5eb65b92d37c8e6ca09c6ca50d7ca58803a1532b452c7321050a0328c49810c337cc2dfd100c5326a54d5ebd1aa5c339ebe6ef10c250323a0e
5286 languageName: node
5287 linkType: hard
5288
5289"@webassemblyjs/wast-printer@npm:1.12.1":
5290 version: 1.12.1
5291 resolution: "@webassemblyjs/wast-printer@npm:1.12.1"
5292 dependencies:
5293 "@webassemblyjs/ast": "npm:1.12.1"
5294 "@xtuc/long": "npm:4.2.2"
5295 checksum: 10c0/39bf746eb7a79aa69953f194943bbc43bebae98bd7cadd4d8bc8c0df470ca6bf9d2b789effaa180e900fab4e2691983c1f7d41571458bd2a26267f2f0c73705a
5296 languageName: node
5297 linkType: hard
5298
3229"@xstate/cli@npm:^0.5.17": 5299"@xstate/cli@npm:^0.5.17":
3230 version: 0.5.17 5300 version: 0.5.17
3231 resolution: "@xstate/cli@npm:0.5.17" 5301 resolution: "@xstate/cli@npm:0.5.17"
@@ -3272,6 +5342,20 @@ __metadata:
3272 languageName: node 5342 languageName: node
3273 linkType: hard 5343 linkType: hard
3274 5344
5345"@xtuc/ieee754@npm:^1.2.0":
5346 version: 1.2.0
5347 resolution: "@xtuc/ieee754@npm:1.2.0"
5348 checksum: 10c0/a8565d29d135039bd99ae4b2220d3e167d22cf53f867e491ed479b3f84f895742d0097f935b19aab90265a23d5d46711e4204f14c479ae3637fbf06c4666882f
5349 languageName: node
5350 linkType: hard
5351
5352"@xtuc/long@npm:4.2.2":
5353 version: 4.2.2
5354 resolution: "@xtuc/long@npm:4.2.2"
5355 checksum: 10c0/8582cbc69c79ad2d31568c412129bf23d2b1210a1dfb60c82d5a1df93334da4ee51f3057051658569e2c196d8dc33bc05ae6b974a711d0d16e801e1d0647ccd1
5356 languageName: node
5357 linkType: hard
5358
3275"abbrev@npm:^1.0.0": 5359"abbrev@npm:^1.0.0":
3276 version: 1.1.1 5360 version: 1.1.1
3277 resolution: "abbrev@npm:1.1.1" 5361 resolution: "abbrev@npm:1.1.1"
@@ -3279,7 +5363,26 @@ __metadata:
3279 languageName: node 5363 languageName: node
3280 linkType: hard 5364 linkType: hard
3281 5365
3282"acorn-jsx@npm:^5.3.2": 5366"accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8":
5367 version: 1.3.8
5368 resolution: "accepts@npm:1.3.8"
5369 dependencies:
5370 mime-types: "npm:~2.1.34"
5371 negotiator: "npm:0.6.3"
5372 checksum: 10c0/3a35c5f5586cfb9a21163ca47a5f77ac34fa8ceb5d17d2fa2c0d81f41cbd7f8c6fa52c77e2c039acc0f4d09e71abdc51144246900f6bef5e3c4b333f77d89362
5373 languageName: node
5374 linkType: hard
5375
5376"acorn-import-assertions@npm:^1.9.0":
5377 version: 1.9.0
5378 resolution: "acorn-import-assertions@npm:1.9.0"
5379 peerDependencies:
5380 acorn: ^8
5381 checksum: 10c0/3b4a194e128efdc9b86c2b1544f623aba4c1aa70d638f8ab7dc3971a5b4aa4c57bd62f99af6e5325bb5973c55863b4112e708a6f408bad7a138647ca72283afe
5382 languageName: node
5383 linkType: hard
5384
5385"acorn-jsx@npm:^5.0.0, acorn-jsx@npm:^5.3.2":
3283 version: 5.3.2 5386 version: 5.3.2
3284 resolution: "acorn-jsx@npm:5.3.2" 5387 resolution: "acorn-jsx@npm:5.3.2"
3285 peerDependencies: 5388 peerDependencies:
@@ -3288,12 +5391,26 @@ __metadata:
3288 languageName: node 5391 languageName: node
3289 linkType: hard 5392 linkType: hard
3290 5393
3291"acorn@npm:^8.8.2, acorn@npm:^8.9.0": 5394"acorn-walk@npm:^8.0.0":
3292 version: 8.10.0 5395 version: 8.3.2
3293 resolution: "acorn@npm:8.10.0" 5396 resolution: "acorn-walk@npm:8.3.2"
5397 checksum: 10c0/7e2a8dad5480df7f872569b9dccff2f3da7e65f5353686b1d6032ab9f4ddf6e3a2cb83a9b52cf50b1497fd522154dda92f0abf7153290cc79cd14721ff121e52
5398 languageName: node
5399 linkType: hard
5400
5401"acorn@npm:^8.0.0, acorn@npm:^8.0.4, acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0":
5402 version: 8.11.3
5403 resolution: "acorn@npm:8.11.3"
3294 bin: 5404 bin:
3295 acorn: bin/acorn 5405 acorn: bin/acorn
3296 checksum: 10c0/deaeebfbea6e40f6c0e1070e9b0e16e76ba484de54cbd735914d1d41d19169a450de8630b7a3a0c4e271a3b0c0b075a3427ad1a40d8a69f8747c0e8cb02ee3e2 5406 checksum: 10c0/3ff155f8812e4a746fee8ecff1f227d527c4c45655bb1fad6347c3cb58e46190598217551b1500f18542d2bbe5c87120cb6927f5a074a59166fbdd9468f0a299
5407 languageName: node
5408 linkType: hard
5409
5410"address@npm:^1.0.1, address@npm:^1.1.2":
5411 version: 1.2.2
5412 resolution: "address@npm:1.2.2"
5413 checksum: 10c0/1c8056b77fb124456997b78ed682ecc19d2fd7ea8bd5850a2aa8c3e3134c913847c57bcae418622efd32ba858fa1e242a40a251ac31da0515664fc0ac03a047d
3297 languageName: node 5414 languageName: node
3298 linkType: hard 5415 linkType: hard
3299 5416
@@ -3325,7 +5442,41 @@ __metadata:
3325 languageName: node 5442 languageName: node
3326 linkType: hard 5443 linkType: hard
3327 5444
3328"ajv@npm:^6.12.4": 5445"ajv-formats@npm:^2.1.1":
5446 version: 2.1.1
5447 resolution: "ajv-formats@npm:2.1.1"
5448 dependencies:
5449 ajv: "npm:^8.0.0"
5450 peerDependencies:
5451 ajv: ^8.0.0
5452 peerDependenciesMeta:
5453 ajv:
5454 optional: true
5455 checksum: 10c0/e43ba22e91b6a48d96224b83d260d3a3a561b42d391f8d3c6d2c1559f9aa5b253bfb306bc94bbeca1d967c014e15a6efe9a207309e95b3eaae07fcbcdc2af662
5456 languageName: node
5457 linkType: hard
5458
5459"ajv-keywords@npm:^3.4.1, ajv-keywords@npm:^3.5.2":
5460 version: 3.5.2
5461 resolution: "ajv-keywords@npm:3.5.2"
5462 peerDependencies:
5463 ajv: ^6.9.1
5464 checksum: 10c0/0c57a47cbd656e8cdfd99d7c2264de5868918ffa207c8d7a72a7f63379d4333254b2ba03d69e3c035e996a3fd3eb6d5725d7a1597cca10694296e32510546360
5465 languageName: node
5466 linkType: hard
5467
5468"ajv-keywords@npm:^5.1.0":
5469 version: 5.1.0
5470 resolution: "ajv-keywords@npm:5.1.0"
5471 dependencies:
5472 fast-deep-equal: "npm:^3.1.3"
5473 peerDependencies:
5474 ajv: ^8.8.2
5475 checksum: 10c0/18bec51f0171b83123ba1d8883c126e60c6f420cef885250898bf77a8d3e65e3bfb9e8564f497e30bdbe762a83e0d144a36931328616a973ee669dc74d4a9590
5476 languageName: node
5477 linkType: hard
5478
5479"ajv@npm:^6.12.2, ajv@npm:^6.12.4, ajv@npm:^6.12.5":
3329 version: 6.12.6 5480 version: 6.12.6
3330 resolution: "ajv@npm:6.12.6" 5481 resolution: "ajv@npm:6.12.6"
3331 dependencies: 5482 dependencies:
@@ -3337,7 +5488,7 @@ __metadata:
3337 languageName: node 5488 languageName: node
3338 linkType: hard 5489 linkType: hard
3339 5490
3340"ajv@npm:^8.6.0": 5491"ajv@npm:^8.0.0, ajv@npm:^8.6.0, ajv@npm:^8.9.0":
3341 version: 8.12.0 5492 version: 8.12.0
3342 resolution: "ajv@npm:8.12.0" 5493 resolution: "ajv@npm:8.12.0"
3343 dependencies: 5494 dependencies:
@@ -3349,6 +5500,58 @@ __metadata:
3349 languageName: node 5500 languageName: node
3350 linkType: hard 5501 linkType: hard
3351 5502
5503"algoliasearch-helper@npm:^3.13.3":
5504 version: 3.17.0
5505 resolution: "algoliasearch-helper@npm:3.17.0"
5506 dependencies:
5507 "@algolia/events": "npm:^4.0.1"
5508 peerDependencies:
5509 algoliasearch: ">= 3.1 < 6"
5510 checksum: 10c0/409791d53f874b095b7217cb4a0117ad974460ee2a247e1c2cd75cefb15a154b399d21576122890e8ce091d2f8f7a5b0a99a77571c29d0b966bbfb7e3a9b77a4
5511 languageName: node
5512 linkType: hard
5513
5514"algoliasearch@npm:^4.18.0, algoliasearch@npm:^4.19.1":
5515 version: 4.23.3
5516 resolution: "algoliasearch@npm:4.23.3"
5517 dependencies:
5518 "@algolia/cache-browser-local-storage": "npm:4.23.3"
5519 "@algolia/cache-common": "npm:4.23.3"
5520 "@algolia/cache-in-memory": "npm:4.23.3"
5521 "@algolia/client-account": "npm:4.23.3"
5522 "@algolia/client-analytics": "npm:4.23.3"
5523 "@algolia/client-common": "npm:4.23.3"
5524 "@algolia/client-personalization": "npm:4.23.3"
5525 "@algolia/client-search": "npm:4.23.3"
5526 "@algolia/logger-common": "npm:4.23.3"
5527 "@algolia/logger-console": "npm:4.23.3"
5528 "@algolia/recommend": "npm:4.23.3"
5529 "@algolia/requester-browser-xhr": "npm:4.23.3"
5530 "@algolia/requester-common": "npm:4.23.3"
5531 "@algolia/requester-node-http": "npm:4.23.3"
5532 "@algolia/transporter": "npm:4.23.3"
5533 checksum: 10c0/1f06f033c47f94cdcb0af8835dc3bfc76f5e160126ea07db1f4e3823e136cde2cd391ecb82e2bc0a42bd36a5560ba74fd3d6d1293623abe04d52b9ca50304996
5534 languageName: node
5535 linkType: hard
5536
5537"ansi-align@npm:^3.0.1":
5538 version: 3.0.1
5539 resolution: "ansi-align@npm:3.0.1"
5540 dependencies:
5541 string-width: "npm:^4.1.0"
5542 checksum: 10c0/ad8b755a253a1bc8234eb341e0cec68a857ab18bf97ba2bda529e86f6e30460416523e0ec58c32e5c21f0ca470d779503244892873a5895dbd0c39c788e82467
5543 languageName: node
5544 linkType: hard
5545
5546"ansi-html-community@npm:^0.0.8":
5547 version: 0.0.8
5548 resolution: "ansi-html-community@npm:0.0.8"
5549 bin:
5550 ansi-html: bin/ansi-html
5551 checksum: 10c0/45d3a6f0b4f10b04fdd44bef62972e2470bfd917bf00439471fa7473d92d7cbe31369c73db863cc45dda115cb42527f39e232e9256115534b8ee5806b0caeed4
5552 languageName: node
5553 linkType: hard
5554
3352"ansi-regex@npm:^5.0.1": 5555"ansi-regex@npm:^5.0.1":
3353 version: 5.0.1 5556 version: 5.0.1
3354 resolution: "ansi-regex@npm:5.0.1" 5557 resolution: "ansi-regex@npm:5.0.1"
@@ -3415,6 +5618,22 @@ __metadata:
3415 languageName: node 5618 languageName: node
3416 linkType: hard 5619 linkType: hard
3417 5620
5621"arg@npm:^5.0.0":
5622 version: 5.0.2
5623 resolution: "arg@npm:5.0.2"
5624 checksum: 10c0/ccaf86f4e05d342af6666c569f844bec426595c567d32a8289715087825c2ca7edd8a3d204e4d2fb2aa4602e09a57d0c13ea8c9eea75aac3dbb4af5514e6800e
5625 languageName: node
5626 linkType: hard
5627
5628"argparse@npm:^1.0.7":
5629 version: 1.0.10
5630 resolution: "argparse@npm:1.0.10"
5631 dependencies:
5632 sprintf-js: "npm:~1.0.2"
5633 checksum: 10c0/b2972c5c23c63df66bca144dbc65d180efa74f25f8fd9b7d9a0a6c88ae839db32df3d54770dcb6460cf840d232b60695d1a6b1053f599d84e73f7437087712de
5634 languageName: node
5635 linkType: hard
5636
3418"argparse@npm:^2.0.1": 5637"argparse@npm:^2.0.1":
3419 version: 2.0.1 5638 version: 2.0.1
3420 resolution: "argparse@npm:2.0.1" 5639 resolution: "argparse@npm:2.0.1"
@@ -3441,6 +5660,13 @@ __metadata:
3441 languageName: node 5660 languageName: node
3442 linkType: hard 5661 linkType: hard
3443 5662
5663"array-flatten@npm:1.1.1":
5664 version: 1.1.1
5665 resolution: "array-flatten@npm:1.1.1"
5666 checksum: 10c0/806966c8abb2f858b08f5324d9d18d7737480610f3bd5d3498aaae6eb5efdc501a884ba019c9b4a8f02ff67002058749d05548fd42fa8643f02c9c7f22198b91
5667 languageName: node
5668 linkType: hard
5669
3444"array-includes@npm:^3.1.6, array-includes@npm:^3.1.7": 5670"array-includes@npm:^3.1.6, array-includes@npm:^3.1.7":
3445 version: 3.1.7 5671 version: 3.1.7
3446 resolution: "array-includes@npm:3.1.7" 5672 resolution: "array-includes@npm:3.1.7"
@@ -3454,6 +5680,13 @@ __metadata:
3454 languageName: node 5680 languageName: node
3455 linkType: hard 5681 linkType: hard
3456 5682
5683"array-iterate@npm:^2.0.0":
5684 version: 2.0.1
5685 resolution: "array-iterate@npm:2.0.1"
5686 checksum: 10c0/756c08334f95e290f03ab2141b034514af1311ef7b62f15b0f5ea6f8f3033ee9cc6a8f1c3e9ff4803d4d723cf992aa61460acf5fce884936972db966b1da287d
5687 languageName: node
5688 linkType: hard
5689
3457"array-union@npm:^2.1.0": 5690"array-union@npm:^2.1.0":
3458 version: 2.1.0 5691 version: 2.1.0
3459 resolution: "array-union@npm:2.1.0" 5692 resolution: "array-union@npm:2.1.0"
@@ -3581,6 +5814,15 @@ __metadata:
3581 languageName: node 5814 languageName: node
3582 linkType: hard 5815 linkType: hard
3583 5816
5817"astring@npm:^1.8.0":
5818 version: 1.8.6
5819 resolution: "astring@npm:1.8.6"
5820 bin:
5821 astring: bin/astring
5822 checksum: 10c0/31f09144597048c11072417959a412f208f8f95ba8dce408dfbc3367acb929f31fbcc00ed5eb61ccbf7c2f1173b9ac8bfcaaa37134a9455050c669b2b036ed88
5823 languageName: node
5824 linkType: hard
5825
3584"async@npm:^3.2.3": 5826"async@npm:^3.2.3":
3585 version: 3.2.4 5827 version: 3.2.4
3586 resolution: "async@npm:3.2.4" 5828 resolution: "async@npm:3.2.4"
@@ -3604,6 +5846,24 @@ __metadata:
3604 languageName: node 5846 languageName: node
3605 linkType: hard 5847 linkType: hard
3606 5848
5849"autoprefixer@npm:^10.4.12, autoprefixer@npm:^10.4.14":
5850 version: 10.4.19
5851 resolution: "autoprefixer@npm:10.4.19"
5852 dependencies:
5853 browserslist: "npm:^4.23.0"
5854 caniuse-lite: "npm:^1.0.30001599"
5855 fraction.js: "npm:^4.3.7"
5856 normalize-range: "npm:^0.1.2"
5857 picocolors: "npm:^1.0.0"
5858 postcss-value-parser: "npm:^4.2.0"
5859 peerDependencies:
5860 postcss: ^8.1.0
5861 bin:
5862 autoprefixer: bin/autoprefixer
5863 checksum: 10c0/fe0178eb8b1da4f15c6535cd329926609b22d1811e047371dccce50563623f8075dd06fb167daff059e4228da651b0bdff6d9b44281541eaf0ce0b79125bfd19
5864 languageName: node
5865 linkType: hard
5866
3607"available-typed-arrays@npm:^1.0.7": 5867"available-typed-arrays@npm:^1.0.7":
3608 version: 1.0.7 5868 version: 1.0.7
3609 resolution: "available-typed-arrays@npm:1.0.7" 5869 resolution: "available-typed-arrays@npm:1.0.7"
@@ -3629,6 +5889,19 @@ __metadata:
3629 languageName: node 5889 languageName: node
3630 linkType: hard 5890 linkType: hard
3631 5891
5892"babel-loader@npm:^9.1.3":
5893 version: 9.1.3
5894 resolution: "babel-loader@npm:9.1.3"
5895 dependencies:
5896 find-cache-dir: "npm:^4.0.0"
5897 schema-utils: "npm:^4.0.0"
5898 peerDependencies:
5899 "@babel/core": ^7.12.0
5900 webpack: ">=5"
5901 checksum: 10c0/e3fc3c9e02bd908b37e8e8cd4f3d7280cf6ac45e33fc203aedbb615135a0fecc33bf92573b71a166a827af029d302c0b060354985cd91d510320bd70a2f949eb
5902 languageName: node
5903 linkType: hard
5904
3632"babel-plugin-dynamic-import-node@npm:^2.3.3": 5905"babel-plugin-dynamic-import-node@npm:^2.3.3":
3633 version: 2.3.3 5906 version: 2.3.3
3634 resolution: "babel-plugin-dynamic-import-node@npm:2.3.3" 5907 resolution: "babel-plugin-dynamic-import-node@npm:2.3.3"
@@ -3649,39 +5922,46 @@ __metadata:
3649 languageName: node 5922 languageName: node
3650 linkType: hard 5923 linkType: hard
3651 5924
3652"babel-plugin-polyfill-corejs2@npm:^0.3.2": 5925"babel-plugin-polyfill-corejs2@npm:^0.4.10":
3653 version: 0.3.3 5926 version: 0.4.10
3654 resolution: "babel-plugin-polyfill-corejs2@npm:0.3.3" 5927 resolution: "babel-plugin-polyfill-corejs2@npm:0.4.10"
3655 dependencies: 5928 dependencies:
3656 "@babel/compat-data": "npm:^7.17.7" 5929 "@babel/compat-data": "npm:^7.22.6"
3657 "@babel/helper-define-polyfill-provider": "npm:^0.3.3" 5930 "@babel/helper-define-polyfill-provider": "npm:^0.6.1"
3658 semver: "npm:^6.1.1" 5931 semver: "npm:^6.3.1"
3659 peerDependencies: 5932 peerDependencies:
3660 "@babel/core": ^7.0.0-0 5933 "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
3661 checksum: 10c0/21e34d4ba961de66d3fe31f3fecca5612d5db99638949766a445d37de72c1f736552fe436f3bd3792e5cc307f48e8f78a498a01e858c84946627ddb662415cc4 5934 checksum: 10c0/910bfb1d809cae49cf43348f9b1e4a5e4c895aa25686fdd2ff8af7b7a996b88ad39597707905d097e08d4e70e14340ac935082ef4e035e77f68741f813f2a80d
3662 languageName: node 5935 languageName: node
3663 linkType: hard 5936 linkType: hard
3664 5937
3665"babel-plugin-polyfill-corejs3@npm:^0.5.3": 5938"babel-plugin-polyfill-corejs3@npm:^0.10.1, babel-plugin-polyfill-corejs3@npm:^0.10.4":
3666 version: 0.5.3 5939 version: 0.10.4
3667 resolution: "babel-plugin-polyfill-corejs3@npm:0.5.3" 5940 resolution: "babel-plugin-polyfill-corejs3@npm:0.10.4"
3668 dependencies: 5941 dependencies:
3669 "@babel/helper-define-polyfill-provider": "npm:^0.3.2" 5942 "@babel/helper-define-polyfill-provider": "npm:^0.6.1"
3670 core-js-compat: "npm:^3.21.0" 5943 core-js-compat: "npm:^3.36.1"
3671 peerDependencies: 5944 peerDependencies:
3672 "@babel/core": ^7.0.0-0 5945 "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
3673 checksum: 10c0/87f9eb8be5e8e115b930624c8e3e91b5396eca8d563120b0cd03853960addf587fd4cab8776ecf3a59ec94a774f214f2321a96c354a667a62fa2dc5eb122eaa0 5946 checksum: 10c0/31b92cd3dfb5b417da8dfcf0deaa4b8b032b476d7bb31ca51c66127cf25d41e89260e89d17bc004b2520faa38aa9515fafabf81d89f9d4976e9dc1163e4a7c41
3674 languageName: node 5947 languageName: node
3675 linkType: hard 5948 linkType: hard
3676 5949
3677"babel-plugin-polyfill-regenerator@npm:^0.4.0": 5950"babel-plugin-polyfill-regenerator@npm:^0.6.1":
3678 version: 0.4.1 5951 version: 0.6.1
3679 resolution: "babel-plugin-polyfill-regenerator@npm:0.4.1" 5952 resolution: "babel-plugin-polyfill-regenerator@npm:0.6.1"
3680 dependencies: 5953 dependencies:
3681 "@babel/helper-define-polyfill-provider": "npm:^0.3.3" 5954 "@babel/helper-define-polyfill-provider": "npm:^0.6.1"
3682 peerDependencies: 5955 peerDependencies:
3683 "@babel/core": ^7.0.0-0 5956 "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
3684 checksum: 10c0/bd915d51e30259201b289a58dfa46c8c1bc8827a38c275ff3134c8194d27e634d5c32ec62137d489d81c7dd5f6ea46b04057eb44b7180d06c19388e3a5f4f8c6 5957 checksum: 10c0/0b55a35a75a261f62477d8d0f0c4a8e3b66f109323ce301d7de6898e168c41224de3bc26a92f48f2c7fcc19dfd1fc60fe71098bfd4f804a0463ff78586892403
5958 languageName: node
5959 linkType: hard
5960
5961"bail@npm:^2.0.0":
5962 version: 2.0.2
5963 resolution: "bail@npm:2.0.2"
5964 checksum: 10c0/25cbea309ef6a1f56214187004e8f34014eb015713ea01fa5b9b7e9e776ca88d0fdffd64143ac42dc91966c915a4b7b683411b56e14929fad16153fc026ffb8b
3685 languageName: node 5965 languageName: node
3686 linkType: hard 5966 linkType: hard
3687 5967
@@ -3699,6 +5979,20 @@ __metadata:
3699 languageName: node 5979 languageName: node
3700 linkType: hard 5980 linkType: hard
3701 5981
5982"batch@npm:0.6.1":
5983 version: 0.6.1
5984 resolution: "batch@npm:0.6.1"
5985 checksum: 10c0/925a13897b4db80d4211082fe287bcf96d297af38e26448c857cee3e095c9792e3b8f26b37d268812e7f38a589f694609de8534a018b1937d7dc9f84e6b387c5
5986 languageName: node
5987 linkType: hard
5988
5989"big.js@npm:^5.2.2":
5990 version: 5.2.2
5991 resolution: "big.js@npm:5.2.2"
5992 checksum: 10c0/230520f1ff920b2d2ce3e372d77a33faa4fa60d802fe01ca4ffbc321ee06023fe9a741ac02793ee778040a16b7e497f7d60c504d1c402b8fdab6f03bb785a25f
5993 languageName: node
5994 linkType: hard
5995
3702"binary-extensions@npm:^2.0.0": 5996"binary-extensions@npm:^2.0.0":
3703 version: 2.2.0 5997 version: 2.2.0
3704 resolution: "binary-extensions@npm:2.2.0" 5998 resolution: "binary-extensions@npm:2.2.0"
@@ -3706,6 +6000,75 @@ __metadata:
3706 languageName: node 6000 languageName: node
3707 linkType: hard 6001 linkType: hard
3708 6002
6003"body-parser@npm:1.20.2":
6004 version: 1.20.2
6005 resolution: "body-parser@npm:1.20.2"
6006 dependencies:
6007 bytes: "npm:3.1.2"
6008 content-type: "npm:~1.0.5"
6009 debug: "npm:2.6.9"
6010 depd: "npm:2.0.0"
6011 destroy: "npm:1.2.0"
6012 http-errors: "npm:2.0.0"
6013 iconv-lite: "npm:0.4.24"
6014 on-finished: "npm:2.4.1"
6015 qs: "npm:6.11.0"
6016 raw-body: "npm:2.5.2"
6017 type-is: "npm:~1.6.18"
6018 unpipe: "npm:1.0.0"
6019 checksum: 10c0/06f1438fff388a2e2354c96aa3ea8147b79bfcb1262dfcc2aae68ec13723d01d5781680657b74e9f83c808266d5baf52804032fbde2b7382b89bd8cdb273ace9
6020 languageName: node
6021 linkType: hard
6022
6023"bonjour-service@npm:^1.0.11":
6024 version: 1.2.1
6025 resolution: "bonjour-service@npm:1.2.1"
6026 dependencies:
6027 fast-deep-equal: "npm:^3.1.3"
6028 multicast-dns: "npm:^7.2.5"
6029 checksum: 10c0/953cbfc27fc9e36e6f988012993ab2244817d82426603e0390d4715639031396c932b6657b1aa4ec30dbb5fa903d6b2c7f1be3af7a8ba24165c93e987c849730
6030 languageName: node
6031 linkType: hard
6032
6033"boolbase@npm:^1.0.0":
6034 version: 1.0.0
6035 resolution: "boolbase@npm:1.0.0"
6036 checksum: 10c0/e4b53deb4f2b85c52be0e21a273f2045c7b6a6ea002b0e139c744cb6f95e9ec044439a52883b0d74dedd1ff3da55ed140cfdddfed7fb0cccbed373de5dce1bcf
6037 languageName: node
6038 linkType: hard
6039
6040"boxen@npm:^6.2.1":
6041 version: 6.2.1
6042 resolution: "boxen@npm:6.2.1"
6043 dependencies:
6044 ansi-align: "npm:^3.0.1"
6045 camelcase: "npm:^6.2.0"
6046 chalk: "npm:^4.1.2"
6047 cli-boxes: "npm:^3.0.0"
6048 string-width: "npm:^5.0.1"
6049 type-fest: "npm:^2.5.0"
6050 widest-line: "npm:^4.0.1"
6051 wrap-ansi: "npm:^8.0.1"
6052 checksum: 10c0/2a50d059c950a50d9f3c873093702747740814ce8819225c4f8cbe92024c9f5a9219d2b7128f5cfa17c022644d929bbbc88b9591de67249c6ebe07f7486bdcfd
6053 languageName: node
6054 linkType: hard
6055
6056"boxen@npm:^7.0.0":
6057 version: 7.1.1
6058 resolution: "boxen@npm:7.1.1"
6059 dependencies:
6060 ansi-align: "npm:^3.0.1"
6061 camelcase: "npm:^7.0.1"
6062 chalk: "npm:^5.2.0"
6063 cli-boxes: "npm:^3.0.0"
6064 string-width: "npm:^5.1.2"
6065 type-fest: "npm:^2.13.0"
6066 widest-line: "npm:^4.0.1"
6067 wrap-ansi: "npm:^8.1.0"
6068 checksum: 10c0/3a9891dc98ac40d582c9879e8165628258e2c70420c919e70fff0a53ccc7b42825e73cda6298199b2fbc1f41f5d5b93b492490ad2ae27623bed3897ddb4267f8
6069 languageName: node
6070 linkType: hard
6071
3709"brace-expansion@npm:^1.1.7": 6072"brace-expansion@npm:^1.1.7":
3710 version: 1.1.11 6073 version: 1.1.11
3711 resolution: "brace-expansion@npm:1.1.11" 6074 resolution: "brace-expansion@npm:1.1.11"
@@ -3734,17 +6097,17 @@ __metadata:
3734 languageName: node 6097 languageName: node
3735 linkType: hard 6098 linkType: hard
3736 6099
3737"browserslist@npm:^4.21.3, browserslist@npm:^4.21.9": 6100"browserslist@npm:^4.0.0, browserslist@npm:^4.18.1, browserslist@npm:^4.21.10, browserslist@npm:^4.21.4, browserslist@npm:^4.22.2, browserslist@npm:^4.23.0":
3738 version: 4.21.10 6101 version: 4.23.0
3739 resolution: "browserslist@npm:4.21.10" 6102 resolution: "browserslist@npm:4.23.0"
3740 dependencies: 6103 dependencies:
3741 caniuse-lite: "npm:^1.0.30001517" 6104 caniuse-lite: "npm:^1.0.30001587"
3742 electron-to-chromium: "npm:^1.4.477" 6105 electron-to-chromium: "npm:^1.4.668"
3743 node-releases: "npm:^2.0.13" 6106 node-releases: "npm:^2.0.14"
3744 update-browserslist-db: "npm:^1.0.11" 6107 update-browserslist-db: "npm:^1.0.13"
3745 bin: 6108 bin:
3746 browserslist: cli.js 6109 browserslist: cli.js
3747 checksum: 10c0/e8c98496e5f2a5128d0e2f1f186dc0416bfc49c811e568b19c9e07a56cccc1f7f415fa4f532488e6a13dfacbe3332a9b55b152082ff125402696a11a158a0894 6110 checksum: 10c0/8e9cc154529062128d02a7af4d8adeead83ca1df8cd9ee65a88e2161039f3d68a4d40fea7353cab6bae4c16182dec2fdd9a1cf7dc2a2935498cee1af0e998943
3748 languageName: node 6111 languageName: node
3749 linkType: hard 6112 linkType: hard
3750 6113
@@ -3771,6 +6134,20 @@ __metadata:
3771 languageName: node 6134 languageName: node
3772 linkType: hard 6135 linkType: hard
3773 6136
6137"bytes@npm:3.0.0":
6138 version: 3.0.0
6139 resolution: "bytes@npm:3.0.0"
6140 checksum: 10c0/91d42c38601c76460519ffef88371caacaea483a354c8e4b8808e7b027574436a5713337c003ea3de63ee4991c2a9a637884fdfe7f761760d746929d9e8fec60
6141 languageName: node
6142 linkType: hard
6143
6144"bytes@npm:3.1.2":
6145 version: 3.1.2
6146 resolution: "bytes@npm:3.1.2"
6147 checksum: 10c0/76d1c43cbd602794ad8ad2ae94095cddeb1de78c5dddaa7005c51af10b0176c69971a6d88e805a90c2b6550d76636e43c40d8427a808b8645ede885de4a0358e
6148 languageName: node
6149 linkType: hard
6150
3774"cacache@npm:^17.0.0": 6151"cacache@npm:^17.0.0":
3775 version: 17.1.4 6152 version: 17.1.4
3776 resolution: "cacache@npm:17.1.4" 6153 resolution: "cacache@npm:17.1.4"
@@ -3791,6 +6168,28 @@ __metadata:
3791 languageName: node 6168 languageName: node
3792 linkType: hard 6169 linkType: hard
3793 6170
6171"cacheable-lookup@npm:^7.0.0":
6172 version: 7.0.0
6173 resolution: "cacheable-lookup@npm:7.0.0"
6174 checksum: 10c0/63a9c144c5b45cb5549251e3ea774c04d63063b29e469f7584171d059d3a88f650f47869a974e2d07de62116463d742c287a81a625e791539d987115cb081635
6175 languageName: node
6176 linkType: hard
6177
6178"cacheable-request@npm:^10.2.8":
6179 version: 10.2.14
6180 resolution: "cacheable-request@npm:10.2.14"
6181 dependencies:
6182 "@types/http-cache-semantics": "npm:^4.0.2"
6183 get-stream: "npm:^6.0.1"
6184 http-cache-semantics: "npm:^4.1.1"
6185 keyv: "npm:^4.5.3"
6186 mimic-response: "npm:^4.0.0"
6187 normalize-url: "npm:^8.0.0"
6188 responselike: "npm:^3.0.0"
6189 checksum: 10c0/41b6658db369f20c03128227ecd219ca7ac52a9d24fc0f499cc9aa5d40c097b48b73553504cebd137024d957c0ddb5b67cf3ac1439b136667f3586257763f88d
6190 languageName: node
6191 linkType: hard
6192
3794"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": 6193"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7":
3795 version: 1.0.7 6194 version: 1.0.7
3796 resolution: "call-bind@npm:1.0.7" 6195 resolution: "call-bind@npm:1.0.7"
@@ -3821,10 +6220,36 @@ __metadata:
3821 languageName: node 6220 languageName: node
3822 linkType: hard 6221 linkType: hard
3823 6222
3824"caniuse-lite@npm:^1.0.30001517": 6223"camelcase@npm:^6.2.0":
3825 version: 1.0.30001606 6224 version: 6.3.0
3826 resolution: "caniuse-lite@npm:1.0.30001606" 6225 resolution: "camelcase@npm:6.3.0"
3827 checksum: 10c0/fc9816f7d073e4f655c00acf9d6625f923e722430545b0aabefb9dc01347f3093608eb18841cf981acbd464fcac918a708908549738a8cd9517a14ac005bf8fc 6226 checksum: 10c0/0d701658219bd3116d12da3eab31acddb3f9440790c0792e0d398f0a520a6a4058018e546862b6fba89d7ae990efaeb97da71e1913e9ebf5a8b5621a3d55c710
6227 languageName: node
6228 linkType: hard
6229
6230"camelcase@npm:^7.0.1":
6231 version: 7.0.1
6232 resolution: "camelcase@npm:7.0.1"
6233 checksum: 10c0/3adfc9a0e96d51b3a2f4efe90a84dad3e206aaa81dfc664f1bd568270e1bf3b010aad31f01db16345b4ffe1910e16ab411c7273a19a859addd1b98ef7cf4cfbd
6234 languageName: node
6235 linkType: hard
6236
6237"caniuse-api@npm:^3.0.0":
6238 version: 3.0.0
6239 resolution: "caniuse-api@npm:3.0.0"
6240 dependencies:
6241 browserslist: "npm:^4.0.0"
6242 caniuse-lite: "npm:^1.0.0"
6243 lodash.memoize: "npm:^4.1.2"
6244 lodash.uniq: "npm:^4.5.0"
6245 checksum: 10c0/60f9e85a3331e6d761b1b03eec71ca38ef7d74146bece34694853033292156b815696573ed734b65583acf493e88163618eda915c6c826d46a024c71a9572b4c
6246 languageName: node
6247 linkType: hard
6248
6249"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001587, caniuse-lite@npm:^1.0.30001599":
6250 version: 1.0.30001612
6251 resolution: "caniuse-lite@npm:1.0.30001612"
6252 checksum: 10c0/d6b405ff06f4e913bc779f9183fa68001c9d6b8526a7dd1b99c60587dd21a01aa8def3d8462cf6214f0181f1c21b9245611ff65241cf9c967fc742e86ece5065
3828 languageName: node 6253 languageName: node
3829 linkType: hard 6254 linkType: hard
3830 6255
@@ -3844,6 +6269,13 @@ __metadata:
3844 languageName: node 6269 languageName: node
3845 linkType: hard 6270 linkType: hard
3846 6271
6272"ccount@npm:^2.0.0":
6273 version: 2.0.1
6274 resolution: "ccount@npm:2.0.1"
6275 checksum: 10c0/3939b1664390174484322bc3f45b798462e6c07ee6384cb3d645e0aa2f318502d174845198c1561930e1d431087f74cf1fe291ae9a4722821a9f4ba67e574350
6276 languageName: node
6277 linkType: hard
6278
3847"chalk@npm:^2.4.2": 6279"chalk@npm:^2.4.2":
3848 version: 2.4.2 6280 version: 2.4.2
3849 resolution: "chalk@npm:2.4.2" 6281 resolution: "chalk@npm:2.4.2"
@@ -3855,7 +6287,7 @@ __metadata:
3855 languageName: node 6287 languageName: node
3856 linkType: hard 6288 linkType: hard
3857 6289
3858"chalk@npm:^4.0.0, chalk@npm:^4.0.2": 6290"chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.2":
3859 version: 4.1.2 6291 version: 4.1.2
3860 resolution: "chalk@npm:4.1.2" 6292 resolution: "chalk@npm:4.1.2"
3861 dependencies: 6293 dependencies:
@@ -3865,9 +6297,80 @@ __metadata:
3865 languageName: node 6297 languageName: node
3866 linkType: hard 6298 linkType: hard
3867 6299
3868"chokidar@npm:^3.5.3": 6300"chalk@npm:^5.0.1, chalk@npm:^5.2.0":
3869 version: 3.5.3 6301 version: 5.3.0
3870 resolution: "chokidar@npm:3.5.3" 6302 resolution: "chalk@npm:5.3.0"
6303 checksum: 10c0/8297d436b2c0f95801103ff2ef67268d362021b8210daf8ddbe349695333eb3610a71122172ff3b0272f1ef2cf7cc2c41fdaa4715f52e49ffe04c56340feed09
6304 languageName: node
6305 linkType: hard
6306
6307"char-regex@npm:^1.0.2":
6308 version: 1.0.2
6309 resolution: "char-regex@npm:1.0.2"
6310 checksum: 10c0/57a09a86371331e0be35d9083ba429e86c4f4648ecbe27455dbfb343037c16ee6fdc7f6b61f433a57cc5ded5561d71c56a150e018f40c2ffb7bc93a26dae341e
6311 languageName: node
6312 linkType: hard
6313
6314"character-entities-html4@npm:^2.0.0":
6315 version: 2.1.0
6316 resolution: "character-entities-html4@npm:2.1.0"
6317 checksum: 10c0/fe61b553f083400c20c0b0fd65095df30a0b445d960f3bbf271536ae6c3ba676f39cb7af0b4bf2755812f08ab9b88f2feed68f9aebb73bb153f7a115fe5c6e40
6318 languageName: node
6319 linkType: hard
6320
6321"character-entities-legacy@npm:^3.0.0":
6322 version: 3.0.0
6323 resolution: "character-entities-legacy@npm:3.0.0"
6324 checksum: 10c0/ec4b430af873661aa754a896a2b55af089b4e938d3d010fad5219299a6b6d32ab175142699ee250640678cd64bdecd6db3c9af0b8759ab7b155d970d84c4c7d1
6325 languageName: node
6326 linkType: hard
6327
6328"character-entities@npm:^2.0.0":
6329 version: 2.0.2
6330 resolution: "character-entities@npm:2.0.2"
6331 checksum: 10c0/b0c645a45bcc90ff24f0e0140f4875a8436b8ef13b6bcd31ec02cfb2ca502b680362aa95386f7815bdc04b6464d48cf191210b3840d7c04241a149ede591a308
6332 languageName: node
6333 linkType: hard
6334
6335"character-reference-invalid@npm:^2.0.0":
6336 version: 2.0.1
6337 resolution: "character-reference-invalid@npm:2.0.1"
6338 checksum: 10c0/2ae0dec770cd8659d7e8b0ce24392d83b4c2f0eb4a3395c955dce5528edd4cc030a794cfa06600fcdd700b3f2de2f9b8e40e309c0011c4180e3be64a0b42e6a1
6339 languageName: node
6340 linkType: hard
6341
6342"cheerio-select@npm:^2.1.0":
6343 version: 2.1.0
6344 resolution: "cheerio-select@npm:2.1.0"
6345 dependencies:
6346 boolbase: "npm:^1.0.0"
6347 css-select: "npm:^5.1.0"
6348 css-what: "npm:^6.1.0"
6349 domelementtype: "npm:^2.3.0"
6350 domhandler: "npm:^5.0.3"
6351 domutils: "npm:^3.0.1"
6352 checksum: 10c0/2242097e593919dba4aacb97d7b8275def8b9ec70b00aa1f43335456870cfc9e284eae2080bdc832ed232dabb9eefcf56c722d152da4a154813fb8814a55d282
6353 languageName: node
6354 linkType: hard
6355
6356"cheerio@npm:^1.0.0-rc.12":
6357 version: 1.0.0-rc.12
6358 resolution: "cheerio@npm:1.0.0-rc.12"
6359 dependencies:
6360 cheerio-select: "npm:^2.1.0"
6361 dom-serializer: "npm:^2.0.0"
6362 domhandler: "npm:^5.0.3"
6363 domutils: "npm:^3.0.1"
6364 htmlparser2: "npm:^8.0.1"
6365 parse5: "npm:^7.0.0"
6366 parse5-htmlparser2-tree-adapter: "npm:^7.0.0"
6367 checksum: 10c0/c85d2f2461e3f024345b78e0bb16ad8e41492356210470dd1e7d5a91391da9fcf6c0a7cb48a9ba8820330153f0cedb4d0a60c7af15d96ecdb3092299b9d9c0cc
6368 languageName: node
6369 linkType: hard
6370
6371"chokidar@npm:^3.4.2, chokidar@npm:^3.5.3":
6372 version: 3.6.0
6373 resolution: "chokidar@npm:3.6.0"
3871 dependencies: 6374 dependencies:
3872 anymatch: "npm:~3.1.2" 6375 anymatch: "npm:~3.1.2"
3873 braces: "npm:~3.0.2" 6376 braces: "npm:~3.0.2"
@@ -3880,7 +6383,7 @@ __metadata:
3880 dependenciesMeta: 6383 dependenciesMeta:
3881 fsevents: 6384 fsevents:
3882 optional: true 6385 optional: true
3883 checksum: 10c0/1076953093e0707c882a92c66c0f56ba6187831aa51bb4de878c1fec59ae611a3bf02898f190efec8e77a086b8df61c2b2a3ea324642a0558bdf8ee6c5dc9ca1 6386 checksum: 10c0/8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462
3884 languageName: node 6387 languageName: node
3885 linkType: hard 6388 linkType: hard
3886 6389
@@ -3891,12 +6394,26 @@ __metadata:
3891 languageName: node 6394 languageName: node
3892 linkType: hard 6395 linkType: hard
3893 6396
3894"clean-css@npm:~5.3.2": 6397"chrome-trace-event@npm:^1.0.2":
3895 version: 5.3.2 6398 version: 1.0.3
3896 resolution: "clean-css@npm:5.3.2" 6399 resolution: "chrome-trace-event@npm:1.0.3"
6400 checksum: 10c0/080ce2d20c2b9e0f8461a380e9585686caa768b1c834a464470c9dc74cda07f27611c7b727a2cd768a9cecd033297fdec4ce01f1e58b62227882c1059dec321c
6401 languageName: node
6402 linkType: hard
6403
6404"ci-info@npm:^3.2.0":
6405 version: 3.9.0
6406 resolution: "ci-info@npm:3.9.0"
6407 checksum: 10c0/6f0109e36e111684291d46123d491bc4e7b7a1934c3a20dea28cba89f1d4a03acd892f5f6a81ed3855c38647e285a150e3c9ba062e38943bef57fee6c1554c3a
6408 languageName: node
6409 linkType: hard
6410
6411"clean-css@npm:^5.2.2, clean-css@npm:^5.3.2, clean-css@npm:~5.3.2":
6412 version: 5.3.3
6413 resolution: "clean-css@npm:5.3.3"
3897 dependencies: 6414 dependencies:
3898 source-map: "npm:~0.6.0" 6415 source-map: "npm:~0.6.0"
3899 checksum: 10c0/315e0e81306524bd2c1905fa6823bf7658be40799b78f446e5e6922808718d2b80266fb3e96842a06176fa683bc2c1a0d2827b08d154e2f9cf136d7bda909d33 6416 checksum: 10c0/381de7523e23f3762eb180e327dcc0cedafaf8cb1cd8c26b7cc1fc56e0829a92e734729c4f955394d65ed72fb62f82d8baf78af34b33b8a7d41ebad2accdd6fb
3900 languageName: node 6417 languageName: node
3901 linkType: hard 6418 linkType: hard
3902 6419
@@ -3907,6 +6424,26 @@ __metadata:
3907 languageName: node 6424 languageName: node
3908 linkType: hard 6425 linkType: hard
3909 6426
6427"cli-boxes@npm:^3.0.0":
6428 version: 3.0.0
6429 resolution: "cli-boxes@npm:3.0.0"
6430 checksum: 10c0/4db3e8fbfaf1aac4fb3a6cbe5a2d3fa048bee741a45371b906439b9ffc821c6e626b0f108bdcd3ddf126a4a319409aedcf39a0730573ff050fdd7b6731e99fb9
6431 languageName: node
6432 linkType: hard
6433
6434"cli-table3@npm:^0.6.3":
6435 version: 0.6.4
6436 resolution: "cli-table3@npm:0.6.4"
6437 dependencies:
6438 "@colors/colors": "npm:1.5.0"
6439 string-width: "npm:^4.2.0"
6440 dependenciesMeta:
6441 "@colors/colors":
6442 optional: true
6443 checksum: 10c0/8233c3d588db19122ed62a64256c7f0208232d2cece89a6cd7732481887fd9dcef69d976c4719149e77ccbf0a68f637bd5923536adccf6cdea051eeffa0ef1c2
6444 languageName: node
6445 linkType: hard
6446
3910"cliui@npm:^8.0.1": 6447"cliui@npm:^8.0.1":
3911 version: 8.0.1 6448 version: 8.0.1
3912 resolution: "cliui@npm:8.0.1" 6449 resolution: "cliui@npm:8.0.1"
@@ -3918,6 +6455,17 @@ __metadata:
3918 languageName: node 6455 languageName: node
3919 linkType: hard 6456 linkType: hard
3920 6457
6458"clone-deep@npm:^4.0.1":
6459 version: 4.0.1
6460 resolution: "clone-deep@npm:4.0.1"
6461 dependencies:
6462 is-plain-object: "npm:^2.0.4"
6463 kind-of: "npm:^6.0.2"
6464 shallow-clone: "npm:^3.0.0"
6465 checksum: 10c0/637753615aa24adf0f2d505947a1bb75e63964309034a1cf56ba4b1f30af155201edd38d26ffe26911adaae267a3c138b344a4947d39f5fc1b6d6108125aa758
6466 languageName: node
6467 linkType: hard
6468
3921"clsx@npm:^1.1.0": 6469"clsx@npm:^1.1.0":
3922 version: 1.2.1 6470 version: 1.2.1
3923 resolution: "clsx@npm:1.2.1" 6471 resolution: "clsx@npm:1.2.1"
@@ -3925,10 +6473,17 @@ __metadata:
3925 languageName: node 6473 languageName: node
3926 linkType: hard 6474 linkType: hard
3927 6475
3928"clsx@npm:^2.1.0": 6476"clsx@npm:^2.0.0, clsx@npm:^2.1.0, clsx@npm:^2.1.1":
6477 version: 2.1.1
6478 resolution: "clsx@npm:2.1.1"
6479 checksum: 10c0/c4c8eb865f8c82baab07e71bfa8897c73454881c4f99d6bc81585aecd7c441746c1399d08363dc096c550cceaf97bd4ce1e8854e1771e9998d9f94c4fe075839
6480 languageName: node
6481 linkType: hard
6482
6483"collapse-white-space@npm:^2.0.0":
3929 version: 2.1.0 6484 version: 2.1.0
3930 resolution: "clsx@npm:2.1.0" 6485 resolution: "collapse-white-space@npm:2.1.0"
3931 checksum: 10c0/c09c00ad14f638366ca814097e6cab533dfa1972a358da5b557be487168acbb25b4c1395e89ffa842a8a61ba87a462d2b4885bc9d4f8410b598f3cb339599cdb 6486 checksum: 10c0/b2e2800f4ab261e62eb27a1fbe853378296e3a726d6695117ed033e82d61fb6abeae4ffc1465d5454499e237005de9cfc52c9562dc7ca4ac759b9a222ef14453
3932 languageName: node 6487 languageName: node
3933 linkType: hard 6488 linkType: hard
3934 6489
@@ -3957,13 +6512,23 @@ __metadata:
3957 languageName: node 6512 languageName: node
3958 linkType: hard 6513 linkType: hard
3959 6514
3960"color-name@npm:~1.1.4": 6515"color-name@npm:^1.0.0, color-name@npm:~1.1.4":
3961 version: 1.1.4 6516 version: 1.1.4
3962 resolution: "color-name@npm:1.1.4" 6517 resolution: "color-name@npm:1.1.4"
3963 checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 6518 checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95
3964 languageName: node 6519 languageName: node
3965 linkType: hard 6520 linkType: hard
3966 6521
6522"color-string@npm:^1.9.0":
6523 version: 1.9.1
6524 resolution: "color-string@npm:1.9.1"
6525 dependencies:
6526 color-name: "npm:^1.0.0"
6527 simple-swizzle: "npm:^0.2.2"
6528 checksum: 10c0/b0bfd74c03b1f837f543898b512f5ea353f71630ccdd0d66f83028d1f0924a7d4272deb278b9aef376cacf1289b522ac3fb175e99895283645a2dc3a33af2404
6529 languageName: node
6530 linkType: hard
6531
3967"color-support@npm:^1.1.3": 6532"color-support@npm:^1.1.3":
3968 version: 1.1.3 6533 version: 1.1.3
3969 resolution: "color-support@npm:1.1.3" 6534 resolution: "color-support@npm:1.1.3"
@@ -3973,7 +6538,45 @@ __metadata:
3973 languageName: node 6538 languageName: node
3974 linkType: hard 6539 linkType: hard
3975 6540
3976"commander@npm:7": 6541"color@npm:^4.2.3":
6542 version: 4.2.3
6543 resolution: "color@npm:4.2.3"
6544 dependencies:
6545 color-convert: "npm:^2.0.1"
6546 color-string: "npm:^1.9.0"
6547 checksum: 10c0/7fbe7cfb811054c808349de19fb380252e5e34e61d7d168ec3353e9e9aacb1802674bddc657682e4e9730c2786592a4de6f8283e7e0d3870b829bb0b7b2f6118
6548 languageName: node
6549 linkType: hard
6550
6551"colord@npm:^2.9.1":
6552 version: 2.9.3
6553 resolution: "colord@npm:2.9.3"
6554 checksum: 10c0/9699e956894d8996b28c686afe8988720785f476f59335c80ce852ded76ab3ebe252703aec53d9bef54f6219aea6b960fb3d9a8300058a1d0c0d4026460cd110
6555 languageName: node
6556 linkType: hard
6557
6558"colorette@npm:^2.0.10":
6559 version: 2.0.20
6560 resolution: "colorette@npm:2.0.20"
6561 checksum: 10c0/e94116ff33b0ff56f3b83b9ace895e5bf87c2a7a47b3401b8c3f3226e050d5ef76cf4072fb3325f9dc24d1698f9b730baf4e05eeaf861d74a1883073f4c98a40
6562 languageName: node
6563 linkType: hard
6564
6565"combine-promises@npm:^1.1.0":
6566 version: 1.2.0
6567 resolution: "combine-promises@npm:1.2.0"
6568 checksum: 10c0/906ebf056006eff93c11548df0415053b6756145dae1f5a89579e743cb15fceeb0604555791321db4fba5072aa39bb4de6547e9cdf14589fe949b33d1613422c
6569 languageName: node
6570 linkType: hard
6571
6572"comma-separated-tokens@npm:^2.0.0":
6573 version: 2.0.3
6574 resolution: "comma-separated-tokens@npm:2.0.3"
6575 checksum: 10c0/91f90f1aae320f1755d6957ef0b864fe4f54737f3313bd95e0802686ee2ca38bff1dd381964d00ae5db42912dd1f4ae5c2709644e82706ffc6f6842a813cdd67
6576 languageName: node
6577 linkType: hard
6578
6579"commander@npm:7, commander@npm:^7.2.0":
3977 version: 7.2.0 6580 version: 7.2.0
3978 resolution: "commander@npm:7.2.0" 6581 resolution: "commander@npm:7.2.0"
3979 checksum: 10c0/8d690ff13b0356df7e0ebbe6c59b4712f754f4b724d4f473d3cc5b3fdcf978e3a5dc3078717858a2ceb50b0f84d0660a7f22a96cdc50fb877d0c9bb31593d23a 6582 checksum: 10c0/8d690ff13b0356df7e0ebbe6c59b4712f754f4b724d4f473d3cc5b3fdcf978e3a5dc3078717858a2ceb50b0f84d0660a7f22a96cdc50fb877d0c9bb31593d23a
@@ -3994,13 +6597,27 @@ __metadata:
3994 languageName: node 6597 languageName: node
3995 linkType: hard 6598 linkType: hard
3996 6599
3997"commander@npm:^8.0.0": 6600"commander@npm:^5.1.0":
6601 version: 5.1.0
6602 resolution: "commander@npm:5.1.0"
6603 checksum: 10c0/da9d71dbe4ce039faf1fe9eac3771dca8c11d66963341f62602f7b66e36d2a3f8883407af4f9a37b1db1a55c59c0c1325f186425764c2e963dc1d67aec2a4b6d
6604 languageName: node
6605 linkType: hard
6606
6607"commander@npm:^8.0.0, commander@npm:^8.3.0":
3998 version: 8.3.0 6608 version: 8.3.0
3999 resolution: "commander@npm:8.3.0" 6609 resolution: "commander@npm:8.3.0"
4000 checksum: 10c0/8b043bb8322ea1c39664a1598a95e0495bfe4ca2fad0d84a92d7d1d8d213e2a155b441d2470c8e08de7c4a28cf2bc6e169211c49e1b21d9f7edc6ae4d9356060 6610 checksum: 10c0/8b043bb8322ea1c39664a1598a95e0495bfe4ca2fad0d84a92d7d1d8d213e2a155b441d2470c8e08de7c4a28cf2bc6e169211c49e1b21d9f7edc6ae4d9356060
4001 languageName: node 6611 languageName: node
4002 linkType: hard 6612 linkType: hard
4003 6613
6614"common-path-prefix@npm:^3.0.0":
6615 version: 3.0.0
6616 resolution: "common-path-prefix@npm:3.0.0"
6617 checksum: 10c0/c4a74294e1b1570f4a8ab435285d185a03976c323caa16359053e749db4fde44e3e6586c29cd051100335e11895767cbbd27ea389108e327d62f38daf4548fdb
6618 languageName: node
6619 linkType: hard
6620
4004"common-tags@npm:^1.8.0": 6621"common-tags@npm:^1.8.0":
4005 version: 1.8.2 6622 version: 1.8.2
4006 resolution: "common-tags@npm:1.8.2" 6623 resolution: "common-tags@npm:1.8.2"
@@ -4008,6 +6625,37 @@ __metadata:
4008 languageName: node 6625 languageName: node
4009 linkType: hard 6626 linkType: hard
4010 6627
6628"commondir@npm:^1.0.1":
6629 version: 1.0.1
6630 resolution: "commondir@npm:1.0.1"
6631 checksum: 10c0/33a124960e471c25ee19280c9ce31ccc19574b566dc514fe4f4ca4c34fa8b0b57cf437671f5de380e11353ea9426213fca17687dd2ef03134fea2dbc53809fd6
6632 languageName: node
6633 linkType: hard
6634
6635"compressible@npm:~2.0.16":
6636 version: 2.0.18
6637 resolution: "compressible@npm:2.0.18"
6638 dependencies:
6639 mime-db: "npm:>= 1.43.0 < 2"
6640 checksum: 10c0/8a03712bc9f5b9fe530cc5a79e164e665550d5171a64575d7dcf3e0395d7b4afa2d79ab176c61b5b596e28228b350dd07c1a2a6ead12fd81d1b6cd632af2fef7
6641 languageName: node
6642 linkType: hard
6643
6644"compression@npm:^1.7.4":
6645 version: 1.7.4
6646 resolution: "compression@npm:1.7.4"
6647 dependencies:
6648 accepts: "npm:~1.3.5"
6649 bytes: "npm:3.0.0"
6650 compressible: "npm:~2.0.16"
6651 debug: "npm:2.6.9"
6652 on-headers: "npm:~1.0.2"
6653 safe-buffer: "npm:5.1.2"
6654 vary: "npm:~1.1.2"
6655 checksum: 10c0/138db836202a406d8a14156a5564fb1700632a76b6e7d1546939472895a5304f2b23c80d7a22bf44c767e87a26e070dbc342ea63bb45ee9c863354fa5556bbbc
6656 languageName: node
6657 linkType: hard
6658
4011"concat-map@npm:0.0.1": 6659"concat-map@npm:0.0.1":
4012 version: 0.0.1 6660 version: 0.0.1
4013 resolution: "concat-map@npm:0.0.1" 6661 resolution: "concat-map@npm:0.0.1"
@@ -4015,6 +6663,29 @@ __metadata:
4015 languageName: node 6663 languageName: node
4016 linkType: hard 6664 linkType: hard
4017 6665
6666"config-chain@npm:^1.1.11":
6667 version: 1.1.13
6668 resolution: "config-chain@npm:1.1.13"
6669 dependencies:
6670 ini: "npm:^1.3.4"
6671 proto-list: "npm:~1.2.1"
6672 checksum: 10c0/39d1df18739d7088736cc75695e98d7087aea43646351b028dfabd5508d79cf6ef4c5bcd90471f52cd87ae470d1c5490c0a8c1a292fbe6ee9ff688061ea0963e
6673 languageName: node
6674 linkType: hard
6675
6676"configstore@npm:^6.0.0":
6677 version: 6.0.0
6678 resolution: "configstore@npm:6.0.0"
6679 dependencies:
6680 dot-prop: "npm:^6.0.1"
6681 graceful-fs: "npm:^4.2.6"
6682 unique-string: "npm:^3.0.0"
6683 write-file-atomic: "npm:^3.0.3"
6684 xdg-basedir: "npm:^5.0.1"
6685 checksum: 10c0/6681a96038ab3e0397cbdf55e6e1624ac3dfa3afe955e219f683df060188a418bda043c9114a59a337e7aec9562b0a0c838ed7db24289e6d0c266bc8313b9580
6686 languageName: node
6687 linkType: hard
6688
4018"confusing-browser-globals@npm:^1.0.10": 6689"confusing-browser-globals@npm:^1.0.10":
4019 version: 1.0.11 6690 version: 1.0.11
4020 resolution: "confusing-browser-globals@npm:1.0.11" 6691 resolution: "confusing-browser-globals@npm:1.0.11"
@@ -4022,6 +6693,20 @@ __metadata:
4022 languageName: node 6693 languageName: node
4023 linkType: hard 6694 linkType: hard
4024 6695
6696"connect-history-api-fallback@npm:^2.0.0":
6697 version: 2.0.0
6698 resolution: "connect-history-api-fallback@npm:2.0.0"
6699 checksum: 10c0/90fa8b16ab76e9531646cc70b010b1dbd078153730c510d3142f6cf07479ae8a812c5a3c0e40a28528dd1681a62395d0cfdef67da9e914c4772ac85d69a3ed87
6700 languageName: node
6701 linkType: hard
6702
6703"consola@npm:^2.15.3":
6704 version: 2.15.3
6705 resolution: "consola@npm:2.15.3"
6706 checksum: 10c0/34a337e6b4a1349ee4d7b4c568484344418da8fdb829d7d71bfefcd724f608f273987633b6eef465e8de510929907a092e13cb7a28a5d3acb3be446fcc79fd5e
6707 languageName: node
6708 linkType: hard
6709
4025"console-control-strings@npm:^1.1.0": 6710"console-control-strings@npm:^1.1.0":
4026 version: 1.1.0 6711 version: 1.1.0
4027 resolution: "console-control-strings@npm:1.1.0" 6712 resolution: "console-control-strings@npm:1.1.0"
@@ -4029,43 +6714,137 @@ __metadata:
4029 languageName: node 6714 languageName: node
4030 linkType: hard 6715 linkType: hard
4031 6716
4032"convert-source-map@npm:^1.5.0, convert-source-map@npm:^1.7.0": 6717"content-disposition@npm:0.5.2":
6718 version: 0.5.2
6719 resolution: "content-disposition@npm:0.5.2"
6720 checksum: 10c0/49eebaa0da1f9609b192e99d7fec31d1178cb57baa9d01f5b63b29787ac31e9d18b5a1033e854c68c9b6cce790e700a6f7fa60e43f95e2e416404e114a8f2f49
6721 languageName: node
6722 linkType: hard
6723
6724"content-disposition@npm:0.5.4":
6725 version: 0.5.4
6726 resolution: "content-disposition@npm:0.5.4"
6727 dependencies:
6728 safe-buffer: "npm:5.2.1"
6729 checksum: 10c0/bac0316ebfeacb8f381b38285dc691c9939bf0a78b0b7c2d5758acadad242d04783cee5337ba7d12a565a19075af1b3c11c728e1e4946de73c6ff7ce45f3f1bb
6730 languageName: node
6731 linkType: hard
6732
6733"content-type@npm:~1.0.4, content-type@npm:~1.0.5":
6734 version: 1.0.5
6735 resolution: "content-type@npm:1.0.5"
6736 checksum: 10c0/b76ebed15c000aee4678c3707e0860cb6abd4e680a598c0a26e17f0bfae723ec9cc2802f0ff1bc6e4d80603719010431d2231018373d4dde10f9ccff9dadf5af
6737 languageName: node
6738 linkType: hard
6739
6740"convert-source-map@npm:^1.5.0":
4033 version: 1.9.0 6741 version: 1.9.0
4034 resolution: "convert-source-map@npm:1.9.0" 6742 resolution: "convert-source-map@npm:1.9.0"
4035 checksum: 10c0/281da55454bf8126cbc6625385928c43479f2060984180c42f3a86c8b8c12720a24eac260624a7d1e090004028d2dee78602330578ceec1a08e27cb8bb0a8a5b 6743 checksum: 10c0/281da55454bf8126cbc6625385928c43479f2060984180c42f3a86c8b8c12720a24eac260624a7d1e090004028d2dee78602330578ceec1a08e27cb8bb0a8a5b
4036 languageName: node 6744 languageName: node
4037 linkType: hard 6745 linkType: hard
4038 6746
4039"core-js-compat@npm:^3.21.0, core-js-compat@npm:^3.22.1": 6747"convert-source-map@npm:^2.0.0":
4040 version: 3.32.0 6748 version: 2.0.0
4041 resolution: "core-js-compat@npm:3.32.0" 6749 resolution: "convert-source-map@npm:2.0.0"
6750 checksum: 10c0/8f2f7a27a1a011cc6cc88cc4da2d7d0cfa5ee0369508baae3d98c260bb3ac520691464e5bbe4ae7cdf09860c1d69ecc6f70c63c6e7c7f7e3f18ec08484dc7d9b
6751 languageName: node
6752 linkType: hard
6753
6754"cookie-signature@npm:1.0.6":
6755 version: 1.0.6
6756 resolution: "cookie-signature@npm:1.0.6"
6757 checksum: 10c0/b36fd0d4e3fef8456915fcf7742e58fbfcc12a17a018e0eb9501c9d5ef6893b596466f03b0564b81af29ff2538fd0aa4b9d54fe5ccbfb4c90ea50ad29fe2d221
6758 languageName: node
6759 linkType: hard
6760
6761"cookie@npm:0.6.0":
6762 version: 0.6.0
6763 resolution: "cookie@npm:0.6.0"
6764 checksum: 10c0/f2318b31af7a31b4ddb4a678d024514df5e705f9be5909a192d7f116cfb6d45cbacf96a473fa733faa95050e7cff26e7832bb3ef94751592f1387b71c8956686
6765 languageName: node
6766 linkType: hard
6767
6768"copy-text-to-clipboard@npm:^3.2.0":
6769 version: 3.2.0
6770 resolution: "copy-text-to-clipboard@npm:3.2.0"
6771 checksum: 10c0/d60fdadc59d526e19d56ad23cec2b292d33c771a5091621bd322d138804edd3c10eb2367d46ec71b39f5f7f7116a2910b332281aeb36a5b679199d746a8a5381
6772 languageName: node
6773 linkType: hard
6774
6775"copy-webpack-plugin@npm:^11.0.0":
6776 version: 11.0.0
6777 resolution: "copy-webpack-plugin@npm:11.0.0"
6778 dependencies:
6779 fast-glob: "npm:^3.2.11"
6780 glob-parent: "npm:^6.0.1"
6781 globby: "npm:^13.1.1"
6782 normalize-path: "npm:^3.0.0"
6783 schema-utils: "npm:^4.0.0"
6784 serialize-javascript: "npm:^6.0.0"
6785 peerDependencies:
6786 webpack: ^5.1.0
6787 checksum: 10c0/a667dd226b26f148584a35fb705f5af926d872584912cf9fd203c14f2b3a68f473a1f5cf768ec1dd5da23820823b850e5d50458b685c468e4a224b25c12a15b4
6788 languageName: node
6789 linkType: hard
6790
6791"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.36.1":
6792 version: 3.36.1
6793 resolution: "core-js-compat@npm:3.36.1"
4042 dependencies: 6794 dependencies:
4043 browserslist: "npm:^4.21.9" 6795 browserslist: "npm:^4.23.0"
4044 checksum: 10c0/9d3164c4c2ab602d22a6f653611a72fc3fe875b69379dad974786b01e8f93ba338bdb27c0b46d9aaf40ebd97c275a0004d3051c33691de3b2da3e636399a63a0 6796 checksum: 10c0/70fba18a4095cd8ac04e5ba8cee251e328935859cf2851c1f67770068ea9f9fe71accb1b7de17cd3c9a28d304a4c41712bd9aa895110ebb6e3be71b666b029d1
6797 languageName: node
6798 linkType: hard
6799
6800"core-js-pure@npm:^3.30.2":
6801 version: 3.36.1
6802 resolution: "core-js-pure@npm:3.36.1"
6803 checksum: 10c0/b964c7aa35665a4ecd513f62d695d99e96bb9e42621f7fcc823a613fab4155525d5c2875e46fcc4e6a3396c1fb7d543aee8f7afd83aa34531261b30af759c3d6
6804 languageName: node
6805 linkType: hard
6806
6807"core-js@npm:^3.31.1, core-js@npm:^3.6.0, core-js@npm:^3.8.3":
6808 version: 3.36.1
6809 resolution: "core-js@npm:3.36.1"
6810 checksum: 10c0/4f0ad2464535d809ba659226feca15bff14b9b5452518bddff8d81b9c94b0227b3027d9838f22f1dce664958acb4107b935cc0037695ae545edc2a303bca98bf
4045 languageName: node 6811 languageName: node
4046 linkType: hard 6812 linkType: hard
4047 6813
4048"core-js@npm:^3.6.0, core-js@npm:^3.8.3": 6814"core-util-is@npm:~1.0.0":
4049 version: 3.36.0 6815 version: 1.0.3
4050 resolution: "core-js@npm:3.36.0" 6816 resolution: "core-util-is@npm:1.0.3"
4051 checksum: 10c0/62dcb41ba79ead581e4c5b2740ae18bfe6ee230e853893736d16edb01b580574d8645ff6c5513d1c75d59620f8451aee45c119d3c4f5ebc66cff5f003a816864 6817 checksum: 10c0/90a0e40abbddfd7618f8ccd63a74d88deea94e77d0e8dbbea059fa7ebebb8fbb4e2909667fe26f3a467073de1a542ebe6ae4c73a73745ac5833786759cd906c9
4052 languageName: node 6818 languageName: node
4053 linkType: hard 6819 linkType: hard
4054 6820
4055"corepack@npm:^0.26.0": 6821"corepack@npm:^0.28.0":
4056 version: 0.26.0 6822 version: 0.28.0
4057 resolution: "corepack@npm:0.26.0" 6823 resolution: "corepack@npm:0.28.0"
4058 bin: 6824 bin:
4059 corepack: ./dist/corepack.js 6825 corepack: ./dist/corepack.js
4060 pnpm: ./dist/pnpm.js 6826 pnpm: ./dist/pnpm.js
4061 pnpx: ./dist/pnpx.js 6827 pnpx: ./dist/pnpx.js
4062 yarn: ./dist/yarn.js 6828 yarn: ./dist/yarn.js
4063 yarnpkg: ./dist/yarnpkg.js 6829 yarnpkg: ./dist/yarnpkg.js
4064 checksum: 10c0/1c345ff83ec2c0949fb9eb6637e96de8c2ecdb3c84bba3a4a20487316a8b8d5b0145c8c10bf0b25b8ec12e1aba36f703fe0507aa43a96d78b1948ca125d30d06 6830 checksum: 10c0/bb66aea56e7d5c672e3434e95c0157b18871f5a4e8c6434131885c8d8116d0fc02da6ed51d515e31367aca9e23f9d688c1ca66f628c6d0eddbd987ac7b4dc107
6831 languageName: node
6832 linkType: hard
6833
6834"cosmiconfig@npm:^6.0.0":
6835 version: 6.0.0
6836 resolution: "cosmiconfig@npm:6.0.0"
6837 dependencies:
6838 "@types/parse-json": "npm:^4.0.0"
6839 import-fresh: "npm:^3.1.0"
6840 parse-json: "npm:^5.0.0"
6841 path-type: "npm:^4.0.0"
6842 yaml: "npm:^1.7.2"
6843 checksum: 10c0/666ed8732d0bf7d7fe6f8516c8ee6041e0622032e8fa26201577b883d2767ad105d03f38b34b93d1f02f26b22a89e7bab4443b9d2e7f931f48d0e944ffa038b5
4065 languageName: node 6844 languageName: node
4066 linkType: hard 6845 linkType: hard
4067 6846
4068"cosmiconfig@npm:^7.0.0": 6847"cosmiconfig@npm:^7.0.0, cosmiconfig@npm:^7.0.1":
4069 version: 7.1.0 6848 version: 7.1.0
4070 resolution: "cosmiconfig@npm:7.1.0" 6849 resolution: "cosmiconfig@npm:7.1.0"
4071 dependencies: 6850 dependencies:
@@ -4078,6 +6857,23 @@ __metadata:
4078 languageName: node 6857 languageName: node
4079 linkType: hard 6858 linkType: hard
4080 6859
6860"cosmiconfig@npm:^8.3.5":
6861 version: 8.3.6
6862 resolution: "cosmiconfig@npm:8.3.6"
6863 dependencies:
6864 import-fresh: "npm:^3.3.0"
6865 js-yaml: "npm:^4.1.0"
6866 parse-json: "npm:^5.2.0"
6867 path-type: "npm:^4.0.0"
6868 peerDependencies:
6869 typescript: ">=4.9.5"
6870 peerDependenciesMeta:
6871 typescript:
6872 optional: true
6873 checksum: 10c0/0382a9ed13208f8bfc22ca2f62b364855207dffdb73dc26e150ade78c3093f1cf56172df2dd460c8caf2afa91c0ed4ec8a88c62f8f9cd1cf423d26506aa8797a
6874 languageName: node
6875 linkType: hard
6876
4081"crelt@npm:^1.0.5": 6877"crelt@npm:^1.0.5":
4082 version: 1.0.6 6878 version: 1.0.6
4083 resolution: "crelt@npm:1.0.6" 6879 resolution: "crelt@npm:1.0.6"
@@ -4085,7 +6881,7 @@ __metadata:
4085 languageName: node 6881 languageName: node
4086 linkType: hard 6882 linkType: hard
4087 6883
4088"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2": 6884"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3":
4089 version: 7.0.3 6885 version: 7.0.3
4090 resolution: "cross-spawn@npm:7.0.3" 6886 resolution: "cross-spawn@npm:7.0.3"
4091 dependencies: 6887 dependencies:
@@ -4103,6 +6899,24 @@ __metadata:
4103 languageName: node 6899 languageName: node
4104 linkType: hard 6900 linkType: hard
4105 6901
6902"crypto-random-string@npm:^4.0.0":
6903 version: 4.0.0
6904 resolution: "crypto-random-string@npm:4.0.0"
6905 dependencies:
6906 type-fest: "npm:^1.0.1"
6907 checksum: 10c0/16e11a3c8140398f5408b7fded35a961b9423c5dac39a60cbbd08bd3f0e07d7de130e87262adea7db03ec1a7a4b7551054e0db07ee5408b012bac5400cfc07a5
6908 languageName: node
6909 linkType: hard
6910
6911"css-declaration-sorter@npm:^6.3.1":
6912 version: 6.4.1
6913 resolution: "css-declaration-sorter@npm:6.4.1"
6914 peerDependencies:
6915 postcss: ^8.0.9
6916 checksum: 10c0/b8b664338dac528266a1ed9b27927ac51a907fb16bc1954fa9038b5286c442603bd494cc920c6a3616111309d18ee6b5a85b6d9927938efc942af452a5145160
6917 languageName: node
6918 linkType: hard
6919
4106"css-line-break@npm:^2.1.0": 6920"css-line-break@npm:^2.1.0":
4107 version: 2.1.0 6921 version: 2.1.0
4108 resolution: "css-line-break@npm:2.1.0" 6922 resolution: "css-line-break@npm:2.1.0"
@@ -4112,6 +6926,102 @@ __metadata:
4112 languageName: node 6926 languageName: node
4113 linkType: hard 6927 linkType: hard
4114 6928
6929"css-loader@npm:^6.8.1":
6930 version: 6.11.0
6931 resolution: "css-loader@npm:6.11.0"
6932 dependencies:
6933 icss-utils: "npm:^5.1.0"
6934 postcss: "npm:^8.4.33"
6935 postcss-modules-extract-imports: "npm:^3.1.0"
6936 postcss-modules-local-by-default: "npm:^4.0.5"
6937 postcss-modules-scope: "npm:^3.2.0"
6938 postcss-modules-values: "npm:^4.0.0"
6939 postcss-value-parser: "npm:^4.2.0"
6940 semver: "npm:^7.5.4"
6941 peerDependencies:
6942 "@rspack/core": 0.x || 1.x
6943 webpack: ^5.0.0
6944 peerDependenciesMeta:
6945 "@rspack/core":
6946 optional: true
6947 webpack:
6948 optional: true
6949 checksum: 10c0/bb52434138085fed06a33e2ffbdae9ee9014ad23bf60f59d6b7ee67f28f26c6b1764024d3030bd19fd884d6ee6ee2224eaed64ad19eb18fbbb23d148d353a965
6950 languageName: node
6951 linkType: hard
6952
6953"css-minimizer-webpack-plugin@npm:^4.2.2":
6954 version: 4.2.2
6955 resolution: "css-minimizer-webpack-plugin@npm:4.2.2"
6956 dependencies:
6957 cssnano: "npm:^5.1.8"
6958 jest-worker: "npm:^29.1.2"
6959 postcss: "npm:^8.4.17"
6960 schema-utils: "npm:^4.0.0"
6961 serialize-javascript: "npm:^6.0.0"
6962 source-map: "npm:^0.6.1"
6963 peerDependencies:
6964 webpack: ^5.0.0
6965 peerDependenciesMeta:
6966 "@parcel/css":
6967 optional: true
6968 "@swc/css":
6969 optional: true
6970 clean-css:
6971 optional: true
6972 csso:
6973 optional: true
6974 esbuild:
6975 optional: true
6976 lightningcss:
6977 optional: true
6978 checksum: 10c0/05cd1460b83d9a5f8878fd63d3a80fd100cbb10f48e295a6ad52519761f3390e1e1bc0e269ff28d15b062a1b11379e04608d50ee30424e177c281bd845fef9fb
6979 languageName: node
6980 linkType: hard
6981
6982"css-select@npm:^4.1.3":
6983 version: 4.3.0
6984 resolution: "css-select@npm:4.3.0"
6985 dependencies:
6986 boolbase: "npm:^1.0.0"
6987 css-what: "npm:^6.0.1"
6988 domhandler: "npm:^4.3.1"
6989 domutils: "npm:^2.8.0"
6990 nth-check: "npm:^2.0.1"
6991 checksum: 10c0/a489d8e5628e61063d5a8fe0fa1cc7ae2478cb334a388a354e91cf2908154be97eac9fa7ed4dffe87a3e06cf6fcaa6016553115335c4fd3377e13dac7bd5a8e1
6992 languageName: node
6993 linkType: hard
6994
6995"css-select@npm:^5.1.0":
6996 version: 5.1.0
6997 resolution: "css-select@npm:5.1.0"
6998 dependencies:
6999 boolbase: "npm:^1.0.0"
7000 css-what: "npm:^6.1.0"
7001 domhandler: "npm:^5.0.2"
7002 domutils: "npm:^3.0.1"
7003 nth-check: "npm:^2.0.1"
7004 checksum: 10c0/551c60dba5b54054741032c1793b5734f6ba45e23ae9e82761a3c0ed1acbb8cfedfa443aaba3a3c1a54cac12b456d2012a09d2cd5f0e82e430454c1b9d84d500
7005 languageName: node
7006 linkType: hard
7007
7008"css-tree@npm:^1.1.2, css-tree@npm:^1.1.3":
7009 version: 1.1.3
7010 resolution: "css-tree@npm:1.1.3"
7011 dependencies:
7012 mdn-data: "npm:2.0.14"
7013 source-map: "npm:^0.6.1"
7014 checksum: 10c0/499a507bfa39b8b2128f49736882c0dd636b0cd3370f2c69f4558ec86d269113286b7df469afc955de6a68b0dba00bc533e40022a73698081d600072d5d83c1c
7015 languageName: node
7016 linkType: hard
7017
7018"css-what@npm:^6.0.1, css-what@npm:^6.1.0":
7019 version: 6.1.0
7020 resolution: "css-what@npm:6.1.0"
7021 checksum: 10c0/a09f5a6b14ba8dcf57ae9a59474722e80f20406c53a61e9aedb0eedc693b135113ffe2983f4efc4b5065ae639442e9ae88df24941ef159c218b231011d733746
7022 languageName: node
7023 linkType: hard
7024
4115"cssesc@npm:^3.0.0": 7025"cssesc@npm:^3.0.0":
4116 version: 3.0.0 7026 version: 3.0.0
4117 resolution: "cssesc@npm:3.0.0" 7027 resolution: "cssesc@npm:3.0.0"
@@ -4121,6 +7031,92 @@ __metadata:
4121 languageName: node 7031 languageName: node
4122 linkType: hard 7032 linkType: hard
4123 7033
7034"cssnano-preset-advanced@npm:^5.3.10":
7035 version: 5.3.10
7036 resolution: "cssnano-preset-advanced@npm:5.3.10"
7037 dependencies:
7038 autoprefixer: "npm:^10.4.12"
7039 cssnano-preset-default: "npm:^5.2.14"
7040 postcss-discard-unused: "npm:^5.1.0"
7041 postcss-merge-idents: "npm:^5.1.1"
7042 postcss-reduce-idents: "npm:^5.2.0"
7043 postcss-zindex: "npm:^5.1.0"
7044 peerDependencies:
7045 postcss: ^8.2.15
7046 checksum: 10c0/abfa870a6e3ab52cddfea7cac83f49b510efb941c7f2960ca9d41ae11fabbe03e9453cad7f81fd1b35cf6080c94094cd7bb1b58c07fad4cf0453f6e4bb9a07ae
7047 languageName: node
7048 linkType: hard
7049
7050"cssnano-preset-default@npm:^5.2.14":
7051 version: 5.2.14
7052 resolution: "cssnano-preset-default@npm:5.2.14"
7053 dependencies:
7054 css-declaration-sorter: "npm:^6.3.1"
7055 cssnano-utils: "npm:^3.1.0"
7056 postcss-calc: "npm:^8.2.3"
7057 postcss-colormin: "npm:^5.3.1"
7058 postcss-convert-values: "npm:^5.1.3"
7059 postcss-discard-comments: "npm:^5.1.2"
7060 postcss-discard-duplicates: "npm:^5.1.0"
7061 postcss-discard-empty: "npm:^5.1.1"
7062 postcss-discard-overridden: "npm:^5.1.0"
7063 postcss-merge-longhand: "npm:^5.1.7"
7064 postcss-merge-rules: "npm:^5.1.4"
7065 postcss-minify-font-values: "npm:^5.1.0"
7066 postcss-minify-gradients: "npm:^5.1.1"
7067 postcss-minify-params: "npm:^5.1.4"
7068 postcss-minify-selectors: "npm:^5.2.1"
7069 postcss-normalize-charset: "npm:^5.1.0"
7070 postcss-normalize-display-values: "npm:^5.1.0"
7071 postcss-normalize-positions: "npm:^5.1.1"
7072 postcss-normalize-repeat-style: "npm:^5.1.1"
7073 postcss-normalize-string: "npm:^5.1.0"
7074 postcss-normalize-timing-functions: "npm:^5.1.0"
7075 postcss-normalize-unicode: "npm:^5.1.1"
7076 postcss-normalize-url: "npm:^5.1.0"
7077 postcss-normalize-whitespace: "npm:^5.1.1"
7078 postcss-ordered-values: "npm:^5.1.3"
7079 postcss-reduce-initial: "npm:^5.1.2"
7080 postcss-reduce-transforms: "npm:^5.1.0"
7081 postcss-svgo: "npm:^5.1.0"
7082 postcss-unique-selectors: "npm:^5.1.1"
7083 peerDependencies:
7084 postcss: ^8.2.15
7085 checksum: 10c0/d125bdb9ac007f97f920e30be953c550a8e7de0cb9298f67e0bc9744f4b920039046b5a6b817e345872836b08689af747f82fbf2189c8bd48da3e6f0c1087b89
7086 languageName: node
7087 linkType: hard
7088
7089"cssnano-utils@npm:^3.1.0":
7090 version: 3.1.0
7091 resolution: "cssnano-utils@npm:3.1.0"
7092 peerDependencies:
7093 postcss: ^8.2.15
7094 checksum: 10c0/057508645a3e7584decede1045daa5b362dbfa2f5df96c3527c7d52e41e787a3442a56a8ea0c0af6a757f518e79a459ee580a35c323ad0d0eec912afd67d7630
7095 languageName: node
7096 linkType: hard
7097
7098"cssnano@npm:^5.1.15, cssnano@npm:^5.1.8":
7099 version: 5.1.15
7100 resolution: "cssnano@npm:5.1.15"
7101 dependencies:
7102 cssnano-preset-default: "npm:^5.2.14"
7103 lilconfig: "npm:^2.0.3"
7104 yaml: "npm:^1.10.2"
7105 peerDependencies:
7106 postcss: ^8.2.15
7107 checksum: 10c0/4252e4f4edd7a0fbdd4017825c0f8632b7a12ecbfdd432d2ff7ec268d48eb956a0a10bbf209602181f9f84ceeecea4a864719ecde03aa2cc48f5d9636fcf5f9a
7108 languageName: node
7109 linkType: hard
7110
7111"csso@npm:^4.2.0":
7112 version: 4.2.0
7113 resolution: "csso@npm:4.2.0"
7114 dependencies:
7115 css-tree: "npm:^1.1.2"
7116 checksum: 10c0/f8c6b1300efaa0f8855a7905ae3794a29c6496e7f16a71dec31eb6ca7cfb1f058a4b03fd39b66c4deac6cb06bf6b4ba86da7b67d7320389cb9994d52b924b903
7117 languageName: node
7118 linkType: hard
7119
4124"csstype@npm:^3.0.2, csstype@npm:^3.1.3": 7120"csstype@npm:^3.0.2, csstype@npm:^3.1.3":
4125 version: 3.1.3 7121 version: 3.1.3
4126 resolution: "csstype@npm:3.1.3" 7122 resolution: "csstype@npm:3.1.3"
@@ -4535,7 +7531,23 @@ __metadata:
4535 languageName: node 7531 languageName: node
4536 linkType: hard 7532 linkType: hard
4537 7533
4538"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": 7534"debounce@npm:^1.2.1":
7535 version: 1.2.1
7536 resolution: "debounce@npm:1.2.1"
7537 checksum: 10c0/6c9320aa0973fc42050814621a7a8a78146c1975799b5b3cc1becf1f77ba9a5aa583987884230da0842a03f385def452fad5d60db97c3d1c8b824e38a8edf500
7538 languageName: node
7539 linkType: hard
7540
7541"debug@npm:2.6.9, debug@npm:^2.6.0":
7542 version: 2.6.9
7543 resolution: "debug@npm:2.6.9"
7544 dependencies:
7545 ms: "npm:2.0.0"
7546 checksum: 10c0/121908fb839f7801180b69a7e218a40b5a0b718813b886b7d6bdb82001b931c938e2941d1e4450f33a1b1df1da653f5f7a0440c197f29fbf8a6e9d45ff6ef589
7547 languageName: node
7548 linkType: hard
7549
7550"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4":
4539 version: 4.3.4 7551 version: 4.3.4
4540 resolution: "debug@npm:4.3.4" 7552 resolution: "debug@npm:4.3.4"
4541 dependencies: 7553 dependencies:
@@ -4556,6 +7568,31 @@ __metadata:
4556 languageName: node 7568 languageName: node
4557 linkType: hard 7569 linkType: hard
4558 7570
7571"decode-named-character-reference@npm:^1.0.0":
7572 version: 1.0.2
7573 resolution: "decode-named-character-reference@npm:1.0.2"
7574 dependencies:
7575 character-entities: "npm:^2.0.0"
7576 checksum: 10c0/66a9fc5d9b5385a2b3675c69ba0d8e893393d64057f7dbbb585265bb4fc05ec513d76943b8e5aac7d8016d20eea4499322cbf4cd6d54b466976b78f3a7587a4c
7577 languageName: node
7578 linkType: hard
7579
7580"decompress-response@npm:^6.0.0":
7581 version: 6.0.0
7582 resolution: "decompress-response@npm:6.0.0"
7583 dependencies:
7584 mimic-response: "npm:^3.1.0"
7585 checksum: 10c0/bd89d23141b96d80577e70c54fb226b2f40e74a6817652b80a116d7befb8758261ad073a8895648a29cc0a5947021ab66705cb542fa9c143c82022b27c5b175e
7586 languageName: node
7587 linkType: hard
7588
7589"deep-extend@npm:^0.6.0":
7590 version: 0.6.0
7591 resolution: "deep-extend@npm:0.6.0"
7592 checksum: 10c0/1c6b0abcdb901e13a44c7d699116d3d4279fdb261983122a3783e7273844d5f2537dc2e1c454a23fcf645917f93fbf8d07101c1d03c015a87faa662755212566
7593 languageName: node
7594 linkType: hard
7595
4559"deep-is@npm:^0.1.3": 7596"deep-is@npm:^0.1.3":
4560 version: 0.1.4 7597 version: 0.1.4
4561 resolution: "deep-is@npm:0.1.4" 7598 resolution: "deep-is@npm:0.1.4"
@@ -4570,6 +7607,22 @@ __metadata:
4570 languageName: node 7607 languageName: node
4571 linkType: hard 7608 linkType: hard
4572 7609
7610"default-gateway@npm:^6.0.3":
7611 version: 6.0.3
7612 resolution: "default-gateway@npm:6.0.3"
7613 dependencies:
7614 execa: "npm:^5.0.0"
7615 checksum: 10c0/5184f9e6e105d24fb44ade9e8741efa54bb75e84625c1ea78c4ef8b81dff09ca52d6dbdd1185cf0dc655bb6b282a64fffaf7ed2dd561b8d9ad6f322b1f039aba
7616 languageName: node
7617 linkType: hard
7618
7619"defer-to-connect@npm:^2.0.1":
7620 version: 2.0.1
7621 resolution: "defer-to-connect@npm:2.0.1"
7622 checksum: 10c0/625ce28e1b5ad10cf77057b9a6a727bf84780c17660f6644dab61dd34c23de3001f03cedc401f7d30a4ed9965c2e8a7336e220a329146f2cf85d4eddea429782
7623 languageName: node
7624 linkType: hard
7625
4573"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4": 7626"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4":
4574 version: 1.1.4 7627 version: 1.1.4
4575 resolution: "define-data-property@npm:1.1.4" 7628 resolution: "define-data-property@npm:1.1.4"
@@ -4581,6 +7634,13 @@ __metadata:
4581 languageName: node 7634 languageName: node
4582 linkType: hard 7635 linkType: hard
4583 7636
7637"define-lazy-prop@npm:^2.0.0":
7638 version: 2.0.0
7639 resolution: "define-lazy-prop@npm:2.0.0"
7640 checksum: 10c0/db6c63864a9d3b7dc9def55d52764968a5af296de87c1b2cc71d8be8142e445208071953649e0386a8cc37cfcf9a2067a47207f1eb9ff250c2a269658fdae422
7641 languageName: node
7642 linkType: hard
7643
4584"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": 7644"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1":
4585 version: 1.2.1 7645 version: 1.2.1
4586 resolution: "define-properties@npm:1.2.1" 7646 resolution: "define-properties@npm:1.2.1"
@@ -4592,6 +7652,22 @@ __metadata:
4592 languageName: node 7652 languageName: node
4593 linkType: hard 7653 linkType: hard
4594 7654
7655"del@npm:^6.1.1":
7656 version: 6.1.1
7657 resolution: "del@npm:6.1.1"
7658 dependencies:
7659 globby: "npm:^11.0.1"
7660 graceful-fs: "npm:^4.2.4"
7661 is-glob: "npm:^4.0.1"
7662 is-path-cwd: "npm:^2.2.0"
7663 is-path-inside: "npm:^3.0.2"
7664 p-map: "npm:^4.0.0"
7665 rimraf: "npm:^3.0.2"
7666 slash: "npm:^3.0.0"
7667 checksum: 10c0/8a095c5ccade42c867a60252914ae485ec90da243d735d1f63ec1e64c1cfbc2b8810ad69a29ab6326d159d4fddaa2f5bad067808c42072351ec458efff86708f
7668 languageName: node
7669 linkType: hard
7670
4595"delaunator@npm:5": 7671"delaunator@npm:5":
4596 version: 5.0.0 7672 version: 5.0.0
4597 resolution: "delaunator@npm:5.0.0" 7673 resolution: "delaunator@npm:5.0.0"
@@ -4608,13 +7684,83 @@ __metadata:
4608 languageName: node 7684 languageName: node
4609 linkType: hard 7685 linkType: hard
4610 7686
4611"dequal@npm:^2.0.3": 7687"depd@npm:2.0.0":
7688 version: 2.0.0
7689 resolution: "depd@npm:2.0.0"
7690 checksum: 10c0/58bd06ec20e19529b06f7ad07ddab60e504d9e0faca4bd23079fac2d279c3594334d736508dc350e06e510aba5e22e4594483b3a6562ce7c17dd797f4cc4ad2c
7691 languageName: node
7692 linkType: hard
7693
7694"depd@npm:~1.1.2":
7695 version: 1.1.2
7696 resolution: "depd@npm:1.1.2"
7697 checksum: 10c0/acb24aaf936ef9a227b6be6d495f0d2eb20108a9a6ad40585c5bda1a897031512fef6484e4fdbb80bd249fdaa82841fa1039f416ece03188e677ba11bcfda249
7698 languageName: node
7699 linkType: hard
7700
7701"dequal@npm:^2.0.0, dequal@npm:^2.0.3":
4612 version: 2.0.3 7702 version: 2.0.3
4613 resolution: "dequal@npm:2.0.3" 7703 resolution: "dequal@npm:2.0.3"
4614 checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888 7704 checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888
4615 languageName: node 7705 languageName: node
4616 linkType: hard 7706 linkType: hard
4617 7707
7708"destroy@npm:1.2.0":
7709 version: 1.2.0
7710 resolution: "destroy@npm:1.2.0"
7711 checksum: 10c0/bd7633942f57418f5a3b80d5cb53898127bcf53e24cdf5d5f4396be471417671f0fee48a4ebe9a1e9defbde2a31280011af58a57e090ff822f589b443ed4e643
7712 languageName: node
7713 linkType: hard
7714
7715"detect-libc@npm:^2.0.3":
7716 version: 2.0.3
7717 resolution: "detect-libc@npm:2.0.3"
7718 checksum: 10c0/88095bda8f90220c95f162bf92cad70bd0e424913e655c20578600e35b91edc261af27531cf160a331e185c0ced93944bc7e09939143225f56312d7fd800fdb7
7719 languageName: node
7720 linkType: hard
7721
7722"detect-node@npm:^2.0.4":
7723 version: 2.1.0
7724 resolution: "detect-node@npm:2.1.0"
7725 checksum: 10c0/f039f601790f2e9d4654e499913259a798b1f5246ae24f86ab5e8bd4aaf3bce50484234c494f11fb00aecb0c6e2733aa7b1cf3f530865640b65fbbd65b2c4e09
7726 languageName: node
7727 linkType: hard
7728
7729"detect-port-alt@npm:^1.1.6":
7730 version: 1.1.6
7731 resolution: "detect-port-alt@npm:1.1.6"
7732 dependencies:
7733 address: "npm:^1.0.1"
7734 debug: "npm:^2.6.0"
7735 bin:
7736 detect: ./bin/detect-port
7737 detect-port: ./bin/detect-port
7738 checksum: 10c0/7269e6aef7b782d98c77505c07a7a0f5e2ee98a9607dc791035fc0192fc58aa03cc833fae605e10eaf239a2a5a55cd938e0bb141dea764ac6180ca082fd62b23
7739 languageName: node
7740 linkType: hard
7741
7742"detect-port@npm:^1.5.1":
7743 version: 1.5.1
7744 resolution: "detect-port@npm:1.5.1"
7745 dependencies:
7746 address: "npm:^1.0.1"
7747 debug: "npm:4"
7748 bin:
7749 detect: bin/detect-port.js
7750 detect-port: bin/detect-port.js
7751 checksum: 10c0/f2b204ad3a9f8e8b53fea35fcc97469f31a8e3e786a2f59fbc886397e33b5f130c5f964bf001b9a64d990047c3824f6a439308461ff19801df04ab48a754639e
7752 languageName: node
7753 linkType: hard
7754
7755"devlop@npm:^1.0.0, devlop@npm:^1.1.0":
7756 version: 1.1.0
7757 resolution: "devlop@npm:1.1.0"
7758 dependencies:
7759 dequal: "npm:^2.0.0"
7760 checksum: 10c0/e0928ab8f94c59417a2b8389c45c55ce0a02d9ac7fd74ef62d01ba48060129e1d594501b77de01f3eeafc7cb00773819b0df74d96251cf20b31c5b3071f45c0e
7761 languageName: node
7762 linkType: hard
7763
4618"dir-glob@npm:^3.0.1": 7764"dir-glob@npm:^3.0.1":
4619 version: 3.0.1 7765 version: 3.0.1
4620 resolution: "dir-glob@npm:3.0.1" 7766 resolution: "dir-glob@npm:3.0.1"
@@ -4624,6 +7770,15 @@ __metadata:
4624 languageName: node 7770 languageName: node
4625 linkType: hard 7771 linkType: hard
4626 7772
7773"dns-packet@npm:^5.2.2":
7774 version: 5.6.1
7775 resolution: "dns-packet@npm:5.6.1"
7776 dependencies:
7777 "@leichtgewicht/ip-codec": "npm:^2.0.1"
7778 checksum: 10c0/8948d3d03063fb68e04a1e386875f8c3bcc398fc375f535f2b438fad8f41bf1afa6f5e70893ba44f4ae884c089247e0a31045722fa6ff0f01d228da103f1811d
7779 languageName: node
7780 linkType: hard
7781
4627"doctrine@npm:^2.1.0": 7782"doctrine@npm:^2.1.0":
4628 version: 2.1.0 7783 version: 2.1.0
4629 resolution: "doctrine@npm:2.1.0" 7784 resolution: "doctrine@npm:2.1.0"
@@ -4642,6 +7797,15 @@ __metadata:
4642 languageName: node 7797 languageName: node
4643 linkType: hard 7798 linkType: hard
4644 7799
7800"dom-converter@npm:^0.2.0":
7801 version: 0.2.0
7802 resolution: "dom-converter@npm:0.2.0"
7803 dependencies:
7804 utila: "npm:~0.4"
7805 checksum: 10c0/e96aa63bd8c6ee3cd9ce19c3aecfc2c42e50a460e8087114794d4f5ecf3a4f052b34ea3bf2d73b5d80b4da619073b49905e6d7d788ceb7814ca4c29be5354a11
7806 languageName: node
7807 linkType: hard
7808
4645"dom-helpers@npm:^5.0.1": 7809"dom-helpers@npm:^5.0.1":
4646 version: 5.2.1 7810 version: 5.2.1
4647 resolution: "dom-helpers@npm:5.2.1" 7811 resolution: "dom-helpers@npm:5.2.1"
@@ -4652,6 +7816,53 @@ __metadata:
4652 languageName: node 7816 languageName: node
4653 linkType: hard 7817 linkType: hard
4654 7818
7819"dom-serializer@npm:^1.0.1":
7820 version: 1.4.1
7821 resolution: "dom-serializer@npm:1.4.1"
7822 dependencies:
7823 domelementtype: "npm:^2.0.1"
7824 domhandler: "npm:^4.2.0"
7825 entities: "npm:^2.0.0"
7826 checksum: 10c0/67d775fa1ea3de52035c98168ddcd59418356943b5eccb80e3c8b3da53adb8e37edb2cc2f885802b7b1765bf5022aec21dfc32910d7f9e6de4c3148f095ab5e0
7827 languageName: node
7828 linkType: hard
7829
7830"dom-serializer@npm:^2.0.0":
7831 version: 2.0.0
7832 resolution: "dom-serializer@npm:2.0.0"
7833 dependencies:
7834 domelementtype: "npm:^2.3.0"
7835 domhandler: "npm:^5.0.2"
7836 entities: "npm:^4.2.0"
7837 checksum: 10c0/d5ae2b7110ca3746b3643d3ef60ef823f5f078667baf530cec096433f1627ec4b6fa8c072f09d079d7cda915fd2c7bc1b7b935681e9b09e591e1e15f4040b8e2
7838 languageName: node
7839 linkType: hard
7840
7841"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0, domelementtype@npm:^2.3.0":
7842 version: 2.3.0
7843 resolution: "domelementtype@npm:2.3.0"
7844 checksum: 10c0/686f5a9ef0fff078c1412c05db73a0dce096190036f33e400a07e2a4518e9f56b1e324f5c576a0a747ef0e75b5d985c040b0d51945ce780c0dd3c625a18cd8c9
7845 languageName: node
7846 linkType: hard
7847
7848"domhandler@npm:^4.0.0, domhandler@npm:^4.2.0, domhandler@npm:^4.3.1":
7849 version: 4.3.1
7850 resolution: "domhandler@npm:4.3.1"
7851 dependencies:
7852 domelementtype: "npm:^2.2.0"
7853 checksum: 10c0/5c199c7468cb052a8b5ab80b13528f0db3d794c64fc050ba793b574e158e67c93f8336e87fd81e9d5ee43b0e04aea4d8b93ed7be4899cb726a1601b3ba18538b
7854 languageName: node
7855 linkType: hard
7856
7857"domhandler@npm:^5.0.2, domhandler@npm:^5.0.3":
7858 version: 5.0.3
7859 resolution: "domhandler@npm:5.0.3"
7860 dependencies:
7861 domelementtype: "npm:^2.3.0"
7862 checksum: 10c0/bba1e5932b3e196ad6862286d76adc89a0dbf0c773e5ced1eb01f9af930c50093a084eff14b8de5ea60b895c56a04d5de8bbc4930c5543d029091916770b2d2a
7863 languageName: node
7864 linkType: hard
7865
4655"dompurify@npm:^2.2.0": 7866"dompurify@npm:^2.2.0":
4656 version: 2.4.7 7867 version: 2.4.7
4657 resolution: "dompurify@npm:2.4.7" 7868 resolution: "dompurify@npm:2.4.7"
@@ -4659,6 +7870,28 @@ __metadata:
4659 languageName: node 7870 languageName: node
4660 linkType: hard 7871 linkType: hard
4661 7872
7873"domutils@npm:^2.5.2, domutils@npm:^2.8.0":
7874 version: 2.8.0
7875 resolution: "domutils@npm:2.8.0"
7876 dependencies:
7877 dom-serializer: "npm:^1.0.1"
7878 domelementtype: "npm:^2.2.0"
7879 domhandler: "npm:^4.2.0"
7880 checksum: 10c0/d58e2ae01922f0dd55894e61d18119924d88091837887bf1438f2327f32c65eb76426bd9384f81e7d6dcfb048e0f83c19b222ad7101176ad68cdc9c695b563db
7881 languageName: node
7882 linkType: hard
7883
7884"domutils@npm:^3.0.1":
7885 version: 3.1.0
7886 resolution: "domutils@npm:3.1.0"
7887 dependencies:
7888 dom-serializer: "npm:^2.0.0"
7889 domelementtype: "npm:^2.3.0"
7890 domhandler: "npm:^5.0.3"
7891 checksum: 10c0/342d64cf4d07b8a0573fb51e0a6312a88fb520c7fefd751870bf72fa5fc0f2e0cb9a3958a573610b1d608c6e2a69b8e9b4b40f0bfb8f87a71bce4f180cca1887
7892 languageName: node
7893 linkType: hard
7894
4662"dot-case@npm:^3.0.4": 7895"dot-case@npm:^3.0.4":
4663 version: 3.0.4 7896 version: 3.0.4
4664 resolution: "dot-case@npm:3.0.4" 7897 resolution: "dot-case@npm:3.0.4"
@@ -4669,6 +7902,15 @@ __metadata:
4669 languageName: node 7902 languageName: node
4670 linkType: hard 7903 linkType: hard
4671 7904
7905"dot-prop@npm:^6.0.1":
7906 version: 6.0.1
7907 resolution: "dot-prop@npm:6.0.1"
7908 dependencies:
7909 is-obj: "npm:^2.0.0"
7910 checksum: 10c0/30e51ec6408978a6951b21e7bc4938aad01a86f2fdf779efe52330205c6bb8a8ea12f35925c2029d6dc9d1df22f916f32f828ce1e9b259b1371c580541c22b5a
7911 languageName: node
7912 linkType: hard
7913
4672"dotenv@npm:^16.0.3": 7914"dotenv@npm:^16.0.3":
4673 version: 16.3.1 7915 version: 16.3.1
4674 resolution: "dotenv@npm:16.3.1" 7916 resolution: "dotenv@npm:16.3.1"
@@ -4676,6 +7918,13 @@ __metadata:
4676 languageName: node 7918 languageName: node
4677 linkType: hard 7919 linkType: hard
4678 7920
7921"duplexer@npm:^0.1.2":
7922 version: 0.1.2
7923 resolution: "duplexer@npm:0.1.2"
7924 checksum: 10c0/c57bcd4bdf7e623abab2df43a7b5b23d18152154529d166c1e0da6bee341d84c432d157d7e97b32fecb1bf3a8b8857dd85ed81a915789f550637ed25b8e64fc2
7925 languageName: node
7926 linkType: hard
7927
4679"eastasianwidth@npm:^0.2.0": 7928"eastasianwidth@npm:^0.2.0":
4680 version: 0.2.0 7929 version: 0.2.0
4681 resolution: "eastasianwidth@npm:0.2.0" 7930 resolution: "eastasianwidth@npm:0.2.0"
@@ -4683,6 +7932,13 @@ __metadata:
4683 languageName: node 7932 languageName: node
4684 linkType: hard 7933 linkType: hard
4685 7934
7935"ee-first@npm:1.1.1":
7936 version: 1.1.1
7937 resolution: "ee-first@npm:1.1.1"
7938 checksum: 10c0/b5bb125ee93161bc16bfe6e56c6b04de5ad2aa44234d8f644813cc95d861a6910903132b05093706de2b706599367c4130eb6d170f6b46895686b95f87d017b7
7939 languageName: node
7940 linkType: hard
7941
4686"ejs@npm:^3.1.6": 7942"ejs@npm:^3.1.6":
4687 version: 3.1.9 7943 version: 3.1.9
4688 resolution: "ejs@npm:3.1.9" 7944 resolution: "ejs@npm:3.1.9"
@@ -4694,10 +7950,10 @@ __metadata:
4694 languageName: node 7950 languageName: node
4695 linkType: hard 7951 linkType: hard
4696 7952
4697"electron-to-chromium@npm:^1.4.477": 7953"electron-to-chromium@npm:^1.4.668":
4698 version: 1.4.491 7954 version: 1.4.729
4699 resolution: "electron-to-chromium@npm:1.4.491" 7955 resolution: "electron-to-chromium@npm:1.4.729"
4700 checksum: 10c0/417c9328cf9875f2aed225908e1c7629ff462fe7646c32de56c3e65a3383ea8edd50ecaba017ea06ff1a4b5dedab56aa4c843ee1db726d28065d3ffbe94777dd 7956 checksum: 10c0/9f093b873a5e02da5fd5db5a1038c3a3f84bd43ff6d0e894280848717e5892953cc814a4ddf1de2acbfa9af4fe356c714f036f39b82d52bc6c8c3aed6e97fbde
4701 languageName: node 7957 languageName: node
4702 linkType: hard 7958 linkType: hard
4703 7959
@@ -4715,6 +7971,34 @@ __metadata:
4715 languageName: node 7971 languageName: node
4716 linkType: hard 7972 linkType: hard
4717 7973
7974"emojilib@npm:^2.4.0":
7975 version: 2.4.0
7976 resolution: "emojilib@npm:2.4.0"
7977 checksum: 10c0/6e66ba8921175842193f974e18af448bb6adb0cf7aeea75e08b9d4ea8e9baba0e4a5347b46ed901491dcaba277485891c33a8d70b0560ca5cc9672a94c21ab8f
7978 languageName: node
7979 linkType: hard
7980
7981"emojis-list@npm:^3.0.0":
7982 version: 3.0.0
7983 resolution: "emojis-list@npm:3.0.0"
7984 checksum: 10c0/7dc4394b7b910444910ad64b812392159a21e1a7ecc637c775a440227dcb4f80eff7fe61f4453a7d7603fa23d23d30cc93fe9e4b5ed985b88d6441cd4a35117b
7985 languageName: node
7986 linkType: hard
7987
7988"emoticon@npm:^4.0.1":
7989 version: 4.0.1
7990 resolution: "emoticon@npm:4.0.1"
7991 checksum: 10c0/2f13c01e1f9892a6826e017d172a95b8e93c9f3dbf9e140e76163d981cb91ae4a848e49c0d4b6904121873541af07575793d222a6ecbdc491ebb3f9d123a4c73
7992 languageName: node
7993 linkType: hard
7994
7995"encodeurl@npm:~1.0.2":
7996 version: 1.0.2
7997 resolution: "encodeurl@npm:1.0.2"
7998 checksum: 10c0/f6c2387379a9e7c1156c1c3d4f9cb7bb11cf16dd4c1682e1f6746512564b053df5781029b6061296832b59fb22f459dbe250386d217c2f6e203601abb2ee0bec
7999 languageName: node
8000 linkType: hard
8001
4718"encoding@npm:^0.1.13": 8002"encoding@npm:^0.1.13":
4719 version: 0.1.13 8003 version: 0.1.13
4720 resolution: "encoding@npm:0.1.13" 8004 resolution: "encoding@npm:0.1.13"
@@ -4724,17 +8008,24 @@ __metadata:
4724 languageName: node 8008 languageName: node
4725 linkType: hard 8009 linkType: hard
4726 8010
4727"enhanced-resolve@npm:^5.12.0": 8011"enhanced-resolve@npm:^5.12.0, enhanced-resolve@npm:^5.16.0":
4728 version: 5.15.0 8012 version: 5.16.0
4729 resolution: "enhanced-resolve@npm:5.15.0" 8013 resolution: "enhanced-resolve@npm:5.16.0"
4730 dependencies: 8014 dependencies:
4731 graceful-fs: "npm:^4.2.4" 8015 graceful-fs: "npm:^4.2.4"
4732 tapable: "npm:^2.2.0" 8016 tapable: "npm:^2.2.0"
4733 checksum: 10c0/69984a7990913948b4150855aed26a84afb4cb1c5a94fb8e3a65bd00729a73fc2eaff6871fb8e345377f294831afe349615c93560f2f54d61b43cdfdf668f19a 8017 checksum: 10c0/dd69669cbb638ccacefd03e04d5e195ee6a99b7f5f8012f86d2df7781834de357923e06064ea621137c4ce0b37cc12b872b4e6d1ac6ab15fe98e7f1dfbbb08c4
8018 languageName: node
8019 linkType: hard
8020
8021"entities@npm:^2.0.0":
8022 version: 2.2.0
8023 resolution: "entities@npm:2.2.0"
8024 checksum: 10c0/7fba6af1f116300d2ba1c5673fc218af1961b20908638391b4e1e6d5850314ee2ac3ec22d741b3a8060479911c99305164aed19b6254bde75e7e6b1b2c3f3aa3
4734 languageName: node 8025 languageName: node
4735 linkType: hard 8026 linkType: hard
4736 8027
4737"entities@npm:^4.4.0": 8028"entities@npm:^4.2.0, entities@npm:^4.4.0":
4738 version: 4.5.0 8029 version: 4.5.0
4739 resolution: "entities@npm:4.5.0" 8030 resolution: "entities@npm:4.5.0"
4740 checksum: 10c0/5b039739f7621f5d1ad996715e53d964035f75ad3b9a4d38c6b3804bb226e282ffeae2443624d8fdd9c47d8e926ae9ac009c54671243f0c3294c26af7cc85250 8031 checksum: 10c0/5b039739f7621f5d1ad996715e53d964035f75ad3b9a4d38c6b3804bb226e282ffeae2443624d8fdd9c47d8e926ae9ac009c54671243f0c3294c26af7cc85250
@@ -4856,6 +8147,13 @@ __metadata:
4856 languageName: node 8147 languageName: node
4857 linkType: hard 8148 linkType: hard
4858 8149
8150"es-module-lexer@npm:^1.2.1":
8151 version: 1.5.0
8152 resolution: "es-module-lexer@npm:1.5.0"
8153 checksum: 10c0/d199853404f3381801eb102befb84a8fc48f93ed86b852c2461c2c4ad4bbbc91128f3d974ff9b8718628260ae3f36e661295ab3e419222868aa31269284e34c9
8154 languageName: node
8155 linkType: hard
8156
4859"es-object-atoms@npm:^1.0.0": 8157"es-object-atoms@npm:^1.0.0":
4860 version: 1.0.0 8158 version: 1.0.0
4861 resolution: "es-object-atoms@npm:1.0.0" 8159 resolution: "es-object-atoms@npm:1.0.0"
@@ -4990,6 +8288,20 @@ __metadata:
4990 languageName: node 8288 languageName: node
4991 linkType: hard 8289 linkType: hard
4992 8290
8291"escape-goat@npm:^4.0.0":
8292 version: 4.0.0
8293 resolution: "escape-goat@npm:4.0.0"
8294 checksum: 10c0/9d2a8314e2370f2dd9436d177f6b3b1773525df8f895c8f3e1acb716f5fd6b10b336cb1cd9862d4709b36eb207dbe33664838deca9c6d55b8371be4eebb972f6
8295 languageName: node
8296 linkType: hard
8297
8298"escape-html@npm:^1.0.3, escape-html@npm:~1.0.3":
8299 version: 1.0.3
8300 resolution: "escape-html@npm:1.0.3"
8301 checksum: 10c0/524c739d776b36c3d29fa08a22e03e8824e3b2fd57500e5e44ecf3cc4707c34c60f9ca0781c0e33d191f2991161504c295e98f68c78fe7baa6e57081ec6ac0a3
8302 languageName: node
8303 linkType: hard
8304
4993"escape-string-regexp@npm:^1.0.5": 8305"escape-string-regexp@npm:^1.0.5":
4994 version: 1.0.5 8306 version: 1.0.5
4995 resolution: "escape-string-regexp@npm:1.0.5" 8307 resolution: "escape-string-regexp@npm:1.0.5"
@@ -5190,12 +8502,12 @@ __metadata:
5190 languageName: node 8502 languageName: node
5191 linkType: hard 8503 linkType: hard
5192 8504
5193"eslint-plugin-react-hooks@npm:^4.6.0": 8505"eslint-plugin-react-hooks@npm:^4.6.2":
5194 version: 4.6.0 8506 version: 4.6.2
5195 resolution: "eslint-plugin-react-hooks@npm:4.6.0" 8507 resolution: "eslint-plugin-react-hooks@npm:4.6.2"
5196 peerDependencies: 8508 peerDependencies:
5197 eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 8509 eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
5198 checksum: 10c0/58c7e10ea5792c33346fcf5cb4024e14837035ce412ff99c2dcb7c4f903dc9b17939078f80bfef826301ce326582c396c00e8e0ac9d10ac2cde2b42d33763c65 8510 checksum: 10c0/4844e58c929bc05157fb70ba1e462e34f1f4abcbc8dd5bbe5b04513d33e2699effb8bca668297976ceea8e7ebee4e8fc29b9af9d131bcef52886feaa2308b2cc
5199 languageName: node 8511 languageName: node
5200 linkType: hard 8512 linkType: hard
5201 8513
@@ -5227,6 +8539,16 @@ __metadata:
5227 languageName: node 8539 languageName: node
5228 linkType: hard 8540 linkType: hard
5229 8541
8542"eslint-scope@npm:5.1.1":
8543 version: 5.1.1
8544 resolution: "eslint-scope@npm:5.1.1"
8545 dependencies:
8546 esrecurse: "npm:^4.3.0"
8547 estraverse: "npm:^4.1.1"
8548 checksum: 10c0/d30ef9dc1c1cbdece34db1539a4933fe3f9b14e1ffb27ecc85987902ee663ad7c9473bbd49a9a03195a373741e62e2f807c4938992e019b511993d163450e70a
8549 languageName: node
8550 linkType: hard
8551
5230"eslint-scope@npm:^7.2.2": 8552"eslint-scope@npm:^7.2.2":
5231 version: 7.2.2 8553 version: 7.2.2
5232 resolution: "eslint-scope@npm:7.2.2" 8554 resolution: "eslint-scope@npm:7.2.2"
@@ -5303,7 +8625,7 @@ __metadata:
5303 languageName: node 8625 languageName: node
5304 linkType: hard 8626 linkType: hard
5305 8627
5306"esprima@npm:~4.0.0": 8628"esprima@npm:^4.0.0, esprima@npm:~4.0.0":
5307 version: 4.0.1 8629 version: 4.0.1
5308 resolution: "esprima@npm:4.0.1" 8630 resolution: "esprima@npm:4.0.1"
5309 bin: 8631 bin:
@@ -5331,6 +8653,13 @@ __metadata:
5331 languageName: node 8653 languageName: node
5332 linkType: hard 8654 linkType: hard
5333 8655
8656"estraverse@npm:^4.1.1":
8657 version: 4.3.0
8658 resolution: "estraverse@npm:4.3.0"
8659 checksum: 10c0/9cb46463ef8a8a4905d3708a652d60122a0c20bb58dec7e0e12ab0e7235123d74214fc0141d743c381813e1b992767e2708194f6f6e0f9fd00c1b4e0887b8b6d
8660 languageName: node
8661 linkType: hard
8662
5334"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": 8663"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0":
5335 version: 5.3.0 8664 version: 5.3.0
5336 resolution: "estraverse@npm:5.3.0" 8665 resolution: "estraverse@npm:5.3.0"
@@ -5338,6 +8667,65 @@ __metadata:
5338 languageName: node 8667 languageName: node
5339 linkType: hard 8668 linkType: hard
5340 8669
8670"estree-util-attach-comments@npm:^3.0.0":
8671 version: 3.0.0
8672 resolution: "estree-util-attach-comments@npm:3.0.0"
8673 dependencies:
8674 "@types/estree": "npm:^1.0.0"
8675 checksum: 10c0/ee69bb5c45e2ad074725b90ed181c1c934b29d81bce4b0c7761431e83c4c6ab1b223a6a3d6a4fbeb92128bc5d5ee201d5dd36cf1770aa5e16a40b0cf36e8a1f1
8676 languageName: node
8677 linkType: hard
8678
8679"estree-util-build-jsx@npm:^3.0.0":
8680 version: 3.0.1
8681 resolution: "estree-util-build-jsx@npm:3.0.1"
8682 dependencies:
8683 "@types/estree-jsx": "npm:^1.0.0"
8684 devlop: "npm:^1.0.0"
8685 estree-util-is-identifier-name: "npm:^3.0.0"
8686 estree-walker: "npm:^3.0.0"
8687 checksum: 10c0/274c119817b8e7caa14a9778f1e497fea56cdd2b01df1a1ed037f843178992d3afe85e0d364d485e1e2e239255763553d1b647b15e4a7ba50851bcb43dc6bf80
8688 languageName: node
8689 linkType: hard
8690
8691"estree-util-is-identifier-name@npm:^3.0.0":
8692 version: 3.0.0
8693 resolution: "estree-util-is-identifier-name@npm:3.0.0"
8694 checksum: 10c0/d1881c6ed14bd588ebd508fc90bf2a541811dbb9ca04dec2f39d27dcaa635f85b5ed9bbbe7fc6fb1ddfca68744a5f7c70456b4b7108b6c4c52780631cc787c5b
8695 languageName: node
8696 linkType: hard
8697
8698"estree-util-to-js@npm:^2.0.0":
8699 version: 2.0.0
8700 resolution: "estree-util-to-js@npm:2.0.0"
8701 dependencies:
8702 "@types/estree-jsx": "npm:^1.0.0"
8703 astring: "npm:^1.8.0"
8704 source-map: "npm:^0.7.0"
8705 checksum: 10c0/ac88cb831401ef99e365f92f4af903755d56ae1ce0e0f0fb8ff66e678141f3d529194f0fb15f6c78cd7554c16fda36854df851d58f9e05cfab15bddf7a97cea0
8706 languageName: node
8707 linkType: hard
8708
8709"estree-util-value-to-estree@npm:^3.0.1":
8710 version: 3.1.1
8711 resolution: "estree-util-value-to-estree@npm:3.1.1"
8712 dependencies:
8713 "@types/estree": "npm:^1.0.0"
8714 is-plain-obj: "npm:^4.0.0"
8715 checksum: 10c0/0639bee10967344bb012fa43c68fe04437c23869b67b78ce9ec6ee8be02c8d22adb8ebf72964a63bfa8823465e0728552868a42d9f6e7deb69bd1e6804936f07
8716 languageName: node
8717 linkType: hard
8718
8719"estree-util-visit@npm:^2.0.0":
8720 version: 2.0.0
8721 resolution: "estree-util-visit@npm:2.0.0"
8722 dependencies:
8723 "@types/estree-jsx": "npm:^1.0.0"
8724 "@types/unist": "npm:^3.0.0"
8725 checksum: 10c0/acda8b03cc8f890d79c7c7361f6c95331ba84b7ccc0c32b49f447fc30206b20002b37ffdfc97b6ad16e6fe065c63ecbae1622492e2b6b4775c15966606217f39
8726 languageName: node
8727 linkType: hard
8728
5341"estree-walker@npm:^1.0.1": 8729"estree-walker@npm:^1.0.1":
5342 version: 1.0.1 8730 version: 1.0.1
5343 resolution: "estree-walker@npm:1.0.1" 8731 resolution: "estree-walker@npm:1.0.1"
@@ -5345,6 +8733,15 @@ __metadata:
5345 languageName: node 8733 languageName: node
5346 linkType: hard 8734 linkType: hard
5347 8735
8736"estree-walker@npm:^3.0.0":
8737 version: 3.0.3
8738 resolution: "estree-walker@npm:3.0.3"
8739 dependencies:
8740 "@types/estree": "npm:^1.0.0"
8741 checksum: 10c0/c12e3c2b2642d2bcae7d5aa495c60fa2f299160946535763969a1c83fc74518ffa9c2cd3a8b69ac56aea547df6a8aac25f729a342992ef0bbac5f1c73e78995d
8742 languageName: node
8743 linkType: hard
8744
5348"esutils@npm:^2.0.2": 8745"esutils@npm:^2.0.2":
5349 version: 2.0.3 8746 version: 2.0.3
5350 resolution: "esutils@npm:2.0.3" 8747 resolution: "esutils@npm:2.0.3"
@@ -5352,6 +8749,61 @@ __metadata:
5352 languageName: node 8749 languageName: node
5353 linkType: hard 8750 linkType: hard
5354 8751
8752"eta@npm:^2.2.0":
8753 version: 2.2.0
8754 resolution: "eta@npm:2.2.0"
8755 checksum: 10c0/643b54d9539d2761bf6c5f4f48df1a5ea2d46c7f5a5fdc47a7d4802a8aa2b6262d4d61f724452e226c18cf82db02d48e65293fcc548f26a3f9d75a5ba7c3b859
8756 languageName: node
8757 linkType: hard
8758
8759"etag@npm:~1.8.1":
8760 version: 1.8.1
8761 resolution: "etag@npm:1.8.1"
8762 checksum: 10c0/12be11ef62fb9817314d790089a0a49fae4e1b50594135dcb8076312b7d7e470884b5100d249b28c18581b7fd52f8b485689ffae22a11ed9ec17377a33a08f84
8763 languageName: node
8764 linkType: hard
8765
8766"eval@npm:^0.1.8":
8767 version: 0.1.8
8768 resolution: "eval@npm:0.1.8"
8769 dependencies:
8770 "@types/node": "npm:*"
8771 require-like: "npm:>= 0.1.1"
8772 checksum: 10c0/258e700bff09e3ce3344273d5b6691b8ec5b043538d84f738f14d8b0aded33d64c00c15b380de725b1401b15f428ab35a9e7ca19a7d25f162c4f877c71586be9
8773 languageName: node
8774 linkType: hard
8775
8776"eventemitter3@npm:^4.0.0":
8777 version: 4.0.7
8778 resolution: "eventemitter3@npm:4.0.7"
8779 checksum: 10c0/5f6d97cbcbac47be798e6355e3a7639a84ee1f7d9b199a07017f1d2f1e2fe236004d14fa5dfaeba661f94ea57805385e326236a6debbc7145c8877fbc0297c6b
8780 languageName: node
8781 linkType: hard
8782
8783"events@npm:^3.2.0":
8784 version: 3.3.0
8785 resolution: "events@npm:3.3.0"
8786 checksum: 10c0/d6b6f2adbccbcda74ddbab52ed07db727ef52e31a61ed26db9feb7dc62af7fc8e060defa65e5f8af9449b86b52cc1a1f6a79f2eafcf4e62add2b7a1fa4a432f6
8787 languageName: node
8788 linkType: hard
8789
8790"execa@npm:^5.0.0":
8791 version: 5.1.1
8792 resolution: "execa@npm:5.1.1"
8793 dependencies:
8794 cross-spawn: "npm:^7.0.3"
8795 get-stream: "npm:^6.0.0"
8796 human-signals: "npm:^2.1.0"
8797 is-stream: "npm:^2.0.0"
8798 merge-stream: "npm:^2.0.0"
8799 npm-run-path: "npm:^4.0.1"
8800 onetime: "npm:^5.1.2"
8801 signal-exit: "npm:^3.0.3"
8802 strip-final-newline: "npm:^2.0.0"
8803 checksum: 10c0/c8e615235e8de4c5addf2fa4c3da3e3aa59ce975a3e83533b4f6a71750fb816a2e79610dc5f1799b6e28976c9ae86747a36a606655bf8cb414a74d8d507b304f
8804 languageName: node
8805 linkType: hard
8806
5355"exponential-backoff@npm:^3.1.1": 8807"exponential-backoff@npm:^3.1.1":
5356 version: 3.1.1 8808 version: 3.1.1
5357 resolution: "exponential-backoff@npm:3.1.1" 8809 resolution: "exponential-backoff@npm:3.1.1"
@@ -5359,6 +8811,61 @@ __metadata:
5359 languageName: node 8811 languageName: node
5360 linkType: hard 8812 linkType: hard
5361 8813
8814"express@npm:^4.17.3":
8815 version: 4.19.2
8816 resolution: "express@npm:4.19.2"
8817 dependencies:
8818 accepts: "npm:~1.3.8"
8819 array-flatten: "npm:1.1.1"
8820 body-parser: "npm:1.20.2"
8821 content-disposition: "npm:0.5.4"
8822 content-type: "npm:~1.0.4"
8823 cookie: "npm:0.6.0"
8824 cookie-signature: "npm:1.0.6"
8825 debug: "npm:2.6.9"
8826 depd: "npm:2.0.0"
8827 encodeurl: "npm:~1.0.2"
8828 escape-html: "npm:~1.0.3"
8829 etag: "npm:~1.8.1"
8830 finalhandler: "npm:1.2.0"
8831 fresh: "npm:0.5.2"
8832 http-errors: "npm:2.0.0"
8833 merge-descriptors: "npm:1.0.1"
8834 methods: "npm:~1.1.2"
8835 on-finished: "npm:2.4.1"
8836 parseurl: "npm:~1.3.3"
8837 path-to-regexp: "npm:0.1.7"
8838 proxy-addr: "npm:~2.0.7"
8839 qs: "npm:6.11.0"
8840 range-parser: "npm:~1.2.1"
8841 safe-buffer: "npm:5.2.1"
8842 send: "npm:0.18.0"
8843 serve-static: "npm:1.15.0"
8844 setprototypeof: "npm:1.2.0"
8845 statuses: "npm:2.0.1"
8846 type-is: "npm:~1.6.18"
8847 utils-merge: "npm:1.0.1"
8848 vary: "npm:~1.1.2"
8849 checksum: 10c0/e82e2662ea9971c1407aea9fc3c16d6b963e55e3830cd0ef5e00b533feda8b770af4e3be630488ef8a752d7c75c4fcefb15892868eeaafe7353cb9e3e269fdcb
8850 languageName: node
8851 linkType: hard
8852
8853"extend-shallow@npm:^2.0.1":
8854 version: 2.0.1
8855 resolution: "extend-shallow@npm:2.0.1"
8856 dependencies:
8857 is-extendable: "npm:^0.1.0"
8858 checksum: 10c0/ee1cb0a18c9faddb42d791b2d64867bd6cfd0f3affb711782eb6e894dd193e2934a7f529426aac7c8ddb31ac5d38000a00aa2caf08aa3dfc3e1c8ff6ba340bd9
8859 languageName: node
8860 linkType: hard
8861
8862"extend@npm:^3.0.0":
8863 version: 3.0.2
8864 resolution: "extend@npm:3.0.2"
8865 checksum: 10c0/73bf6e27406e80aa3e85b0d1c4fd987261e628064e170ca781125c0b635a3dabad5e05adbf07595ea0cf1e6c5396cacb214af933da7cbaf24fe75ff14818e8f9
8866 languageName: node
8867 linkType: hard
8868
5362"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": 8869"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
5363 version: 3.1.3 8870 version: 3.1.3
5364 resolution: "fast-deep-equal@npm:3.1.3" 8871 resolution: "fast-deep-equal@npm:3.1.3"
@@ -5373,7 +8880,7 @@ __metadata:
5373 languageName: node 8880 languageName: node
5374 linkType: hard 8881 linkType: hard
5375 8882
5376"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.1, fast-glob@npm:^3.3.2": 8883"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.1, fast-glob@npm:^3.3.2":
5377 version: 3.3.2 8884 version: 3.3.2
5378 resolution: "fast-glob@npm:3.3.2" 8885 resolution: "fast-glob@npm:3.3.2"
5379 dependencies: 8886 dependencies:
@@ -5400,6 +8907,15 @@ __metadata:
5400 languageName: node 8907 languageName: node
5401 linkType: hard 8908 linkType: hard
5402 8909
8910"fast-url-parser@npm:1.1.3":
8911 version: 1.1.3
8912 resolution: "fast-url-parser@npm:1.1.3"
8913 dependencies:
8914 punycode: "npm:^1.3.2"
8915 checksum: 10c0/d85c5c409cf0215417380f98a2d29c23a95004d93ff0d8bdf1af5f1a9d1fc608ac89ac6ffe863783d2c73efb3850dd35390feb1de3296f49877bfee0392eb5d3
8916 languageName: node
8917 linkType: hard
8918
5403"fastq@npm:^1.6.0": 8919"fastq@npm:^1.6.0":
5404 version: 1.15.0 8920 version: 1.15.0
5405 resolution: "fastq@npm:1.15.0" 8921 resolution: "fastq@npm:1.15.0"
@@ -5409,6 +8925,33 @@ __metadata:
5409 languageName: node 8925 languageName: node
5410 linkType: hard 8926 linkType: hard
5411 8927
8928"fault@npm:^2.0.0":
8929 version: 2.0.1
8930 resolution: "fault@npm:2.0.1"
8931 dependencies:
8932 format: "npm:^0.2.0"
8933 checksum: 10c0/b80fbf1019b9ce8b08ee09ce86e02b028563e13a32ac3be34e42bfac00a97b96d8dee6d31e26578ffc16224eb6729e01ff1f97ddfeee00494f4f56c0aeed4bdd
8934 languageName: node
8935 linkType: hard
8936
8937"faye-websocket@npm:^0.11.3":
8938 version: 0.11.4
8939 resolution: "faye-websocket@npm:0.11.4"
8940 dependencies:
8941 websocket-driver: "npm:>=0.5.1"
8942 checksum: 10c0/c6052a0bb322778ce9f89af92890f6f4ce00d5ec92418a35e5f4c6864a4fe736fec0bcebd47eac7c0f0e979b01530746b1c85c83cb04bae789271abf19737420
8943 languageName: node
8944 linkType: hard
8945
8946"feed@npm:^4.2.2":
8947 version: 4.2.2
8948 resolution: "feed@npm:4.2.2"
8949 dependencies:
8950 xml-js: "npm:^1.6.11"
8951 checksum: 10c0/c0849bde569da94493224525db00614fd1855a5d7c2e990f6e8637bd0298e85c3d329efe476cba77e711e438c3fb48af60cd5ef0c409da5bcd1f479790b0a372
8952 languageName: node
8953 linkType: hard
8954
5412"fflate@npm:^0.4.8": 8955"fflate@npm:^0.4.8":
5413 version: 0.4.8 8956 version: 0.4.8
5414 resolution: "fflate@npm:0.4.8" 8957 resolution: "fflate@npm:0.4.8"
@@ -5425,6 +8968,18 @@ __metadata:
5425 languageName: node 8968 languageName: node
5426 linkType: hard 8969 linkType: hard
5427 8970
8971"file-loader@npm:^6.2.0":
8972 version: 6.2.0
8973 resolution: "file-loader@npm:6.2.0"
8974 dependencies:
8975 loader-utils: "npm:^2.0.0"
8976 schema-utils: "npm:^3.0.0"
8977 peerDependencies:
8978 webpack: ^4.0.0 || ^5.0.0
8979 checksum: 10c0/e176a57c2037ab0f78e5755dbf293a6b7f0f8392350a120bd03cc2ce2525bea017458ba28fea14ca535ff1848055e86d1a3a216bdb2561ef33395b27260a1dd3
8980 languageName: node
8981 linkType: hard
8982
5428"filelist@npm:^1.0.4": 8983"filelist@npm:^1.0.4":
5429 version: 1.0.4 8984 version: 1.0.4
5430 resolution: "filelist@npm:1.0.4" 8985 resolution: "filelist@npm:1.0.4"
@@ -5434,6 +8989,13 @@ __metadata:
5434 languageName: node 8989 languageName: node
5435 linkType: hard 8990 linkType: hard
5436 8991
8992"filesize@npm:^8.0.6":
8993 version: 8.0.7
8994 resolution: "filesize@npm:8.0.7"
8995 checksum: 10c0/82072d94816484df5365d4d5acbb2327a65dc49704c64e403e8c40d8acb7364de1cf1e65cb512c77a15d353870f73e4fed46dad5c6153d0618d9ce7a64d09cfc
8996 languageName: node
8997 linkType: hard
8998
5437"fill-range@npm:^7.0.1": 8999"fill-range@npm:^7.0.1":
5438 version: 7.0.1 9000 version: 7.0.1
5439 resolution: "fill-range@npm:7.0.1" 9001 resolution: "fill-range@npm:7.0.1"
@@ -5443,6 +9005,42 @@ __metadata:
5443 languageName: node 9005 languageName: node
5444 linkType: hard 9006 linkType: hard
5445 9007
9008"finalhandler@npm:1.2.0":
9009 version: 1.2.0
9010 resolution: "finalhandler@npm:1.2.0"
9011 dependencies:
9012 debug: "npm:2.6.9"
9013 encodeurl: "npm:~1.0.2"
9014 escape-html: "npm:~1.0.3"
9015 on-finished: "npm:2.4.1"
9016 parseurl: "npm:~1.3.3"
9017 statuses: "npm:2.0.1"
9018 unpipe: "npm:~1.0.0"
9019 checksum: 10c0/64b7e5ff2ad1fcb14931cd012651631b721ce657da24aedb5650ddde9378bf8e95daa451da43398123f5de161a81e79ff5affe4f9f2a6d2df4a813d6d3e254b7
9020 languageName: node
9021 linkType: hard
9022
9023"find-cache-dir@npm:^3.3.2":
9024 version: 3.3.2
9025 resolution: "find-cache-dir@npm:3.3.2"
9026 dependencies:
9027 commondir: "npm:^1.0.1"
9028 make-dir: "npm:^3.0.2"
9029 pkg-dir: "npm:^4.1.0"
9030 checksum: 10c0/92747cda42bff47a0266b06014610981cfbb71f55d60f2c8216bc3108c83d9745507fb0b14ecf6ab71112bed29cd6fb1a137ee7436179ea36e11287e3159e587
9031 languageName: node
9032 linkType: hard
9033
9034"find-cache-dir@npm:^4.0.0":
9035 version: 4.0.0
9036 resolution: "find-cache-dir@npm:4.0.0"
9037 dependencies:
9038 common-path-prefix: "npm:^3.0.0"
9039 pkg-dir: "npm:^7.0.0"
9040 checksum: 10c0/0faa7956974726c8769671de696d24c643ca1e5b8f7a2401283caa9e07a5da093293e0a0f4bd18c920ec981d2ef945c7f5b946cde268dfc9077d833ad0293cff
9041 languageName: node
9042 linkType: hard
9043
5446"find-root@npm:^1.1.0": 9044"find-root@npm:^1.1.0":
5447 version: 1.1.0 9045 version: 1.1.0
5448 resolution: "find-root@npm:1.1.0" 9046 resolution: "find-root@npm:1.1.0"
@@ -5450,6 +9048,25 @@ __metadata:
5450 languageName: node 9048 languageName: node
5451 linkType: hard 9049 linkType: hard
5452 9050
9051"find-up@npm:^3.0.0":
9052 version: 3.0.0
9053 resolution: "find-up@npm:3.0.0"
9054 dependencies:
9055 locate-path: "npm:^3.0.0"
9056 checksum: 10c0/2c2e7d0a26db858e2f624f39038c74739e38306dee42b45f404f770db357947be9d0d587f1cac72d20c114deb38aa57316e879eb0a78b17b46da7dab0a3bd6e3
9057 languageName: node
9058 linkType: hard
9059
9060"find-up@npm:^4.0.0":
9061 version: 4.1.0
9062 resolution: "find-up@npm:4.1.0"
9063 dependencies:
9064 locate-path: "npm:^5.0.0"
9065 path-exists: "npm:^4.0.0"
9066 checksum: 10c0/0406ee89ebeefa2d507feb07ec366bebd8a6167ae74aa4e34fb4c4abd06cf782a3ce26ae4194d70706f72182841733f00551c209fe575cb00bd92104056e78c1
9067 languageName: node
9068 linkType: hard
9069
5453"find-up@npm:^5.0.0": 9070"find-up@npm:^5.0.0":
5454 version: 5.0.0 9071 version: 5.0.0
5455 resolution: "find-up@npm:5.0.0" 9072 resolution: "find-up@npm:5.0.0"
@@ -5460,6 +9077,16 @@ __metadata:
5460 languageName: node 9077 languageName: node
5461 linkType: hard 9078 linkType: hard
5462 9079
9080"find-up@npm:^6.3.0":
9081 version: 6.3.0
9082 resolution: "find-up@npm:6.3.0"
9083 dependencies:
9084 locate-path: "npm:^7.1.0"
9085 path-exists: "npm:^5.0.0"
9086 checksum: 10c0/07e0314362d316b2b13f7f11ea4692d5191e718ca3f7264110127520f3347996349bf9e16805abae3e196805814bc66ef4bff2b8904dc4a6476085fc9b0eba07
9087 languageName: node
9088 linkType: hard
9089
5463"flat-cache@npm:^3.0.4": 9090"flat-cache@npm:^3.0.4":
5464 version: 3.0.4 9091 version: 3.0.4
5465 resolution: "flat-cache@npm:3.0.4" 9092 resolution: "flat-cache@npm:3.0.4"
@@ -5470,6 +9097,15 @@ __metadata:
5470 languageName: node 9097 languageName: node
5471 linkType: hard 9098 linkType: hard
5472 9099
9100"flat@npm:^5.0.2":
9101 version: 5.0.2
9102 resolution: "flat@npm:5.0.2"
9103 bin:
9104 flat: cli.js
9105 checksum: 10c0/f178b13482f0cd80c7fede05f4d10585b1f2fdebf26e12edc138e32d3150c6ea6482b7f12813a1091143bad52bb6d3596bca51a162257a21163c0ff438baa5fe
9106 languageName: node
9107 linkType: hard
9108
5473"flatted@npm:^3.1.0": 9109"flatted@npm:^3.1.0":
5474 version: 3.2.7 9110 version: 3.2.7
5475 resolution: "flatted@npm:3.2.7" 9111 resolution: "flatted@npm:3.2.7"
@@ -5477,6 +9113,16 @@ __metadata:
5477 languageName: node 9113 languageName: node
5478 linkType: hard 9114 linkType: hard
5479 9115
9116"follow-redirects@npm:^1.0.0":
9117 version: 1.15.6
9118 resolution: "follow-redirects@npm:1.15.6"
9119 peerDependenciesMeta:
9120 debug:
9121 optional: true
9122 checksum: 10c0/9ff767f0d7be6aa6870c82ac79cf0368cd73e01bbc00e9eb1c2a16fbb198ec105e3c9b6628bb98e9f3ac66fe29a957b9645bcb9a490bb7aa0d35f908b6b85071
9123 languageName: node
9124 linkType: hard
9125
5480"font-family-papandreou@npm:^0.2.0-patch1": 9126"font-family-papandreou@npm:^0.2.0-patch1":
5481 version: 0.2.0-patch2 9127 version: 0.2.0-patch2
5482 resolution: "font-family-papandreou@npm:0.2.0-patch2" 9128 resolution: "font-family-papandreou@npm:0.2.0-patch2"
@@ -5503,7 +9149,84 @@ __metadata:
5503 languageName: node 9149 languageName: node
5504 linkType: hard 9150 linkType: hard
5505 9151
5506"fs-extra@npm:^9.0.1": 9152"fork-ts-checker-webpack-plugin@npm:^6.5.0":
9153 version: 6.5.3
9154 resolution: "fork-ts-checker-webpack-plugin@npm:6.5.3"
9155 dependencies:
9156 "@babel/code-frame": "npm:^7.8.3"
9157 "@types/json-schema": "npm:^7.0.5"
9158 chalk: "npm:^4.1.0"
9159 chokidar: "npm:^3.4.2"
9160 cosmiconfig: "npm:^6.0.0"
9161 deepmerge: "npm:^4.2.2"
9162 fs-extra: "npm:^9.0.0"
9163 glob: "npm:^7.1.6"
9164 memfs: "npm:^3.1.2"
9165 minimatch: "npm:^3.0.4"
9166 schema-utils: "npm:2.7.0"
9167 semver: "npm:^7.3.2"
9168 tapable: "npm:^1.0.0"
9169 peerDependencies:
9170 eslint: ">= 6"
9171 typescript: ">= 2.7"
9172 vue-template-compiler: "*"
9173 webpack: ">= 4"
9174 peerDependenciesMeta:
9175 eslint:
9176 optional: true
9177 vue-template-compiler:
9178 optional: true
9179 checksum: 10c0/0885ea75474de011d4068ca3e2d3ca6e4cd318f5cfa018e28ff8fef23ef3a1f1c130160ef192d3e5d31ef7b6fe9f8fb1d920eab5e9e449fb30ce5cc96647245c
9180 languageName: node
9181 linkType: hard
9182
9183"form-data-encoder@npm:^2.1.2":
9184 version: 2.1.4
9185 resolution: "form-data-encoder@npm:2.1.4"
9186 checksum: 10c0/4c06ae2b79ad693a59938dc49ebd020ecb58e4584860a90a230f80a68b026483b022ba5e4143cff06ae5ac8fd446a0b500fabc87bbac3d1f62f2757f8dabcaf7
9187 languageName: node
9188 linkType: hard
9189
9190"format@npm:^0.2.0":
9191 version: 0.2.2
9192 resolution: "format@npm:0.2.2"
9193 checksum: 10c0/6032ba747541a43abf3e37b402b2f72ee08ebcb58bf84d816443dd228959837f1cddf1e8775b29fa27ff133f4bd146d041bfca5f9cf27f048edf3d493cf8fee6
9194 languageName: node
9195 linkType: hard
9196
9197"forwarded@npm:0.2.0":
9198 version: 0.2.0
9199 resolution: "forwarded@npm:0.2.0"
9200 checksum: 10c0/9b67c3fac86acdbc9ae47ba1ddd5f2f81526fa4c8226863ede5600a3f7c7416ef451f6f1e240a3cc32d0fd79fcfe6beb08fd0da454f360032bde70bf80afbb33
9201 languageName: node
9202 linkType: hard
9203
9204"fraction.js@npm:^4.3.7":
9205 version: 4.3.7
9206 resolution: "fraction.js@npm:4.3.7"
9207 checksum: 10c0/df291391beea9ab4c263487ffd9d17fed162dbb736982dee1379b2a8cc94e4e24e46ed508c6d278aded9080ba51872f1bc5f3a5fd8d7c74e5f105b508ac28711
9208 languageName: node
9209 linkType: hard
9210
9211"fresh@npm:0.5.2":
9212 version: 0.5.2
9213 resolution: "fresh@npm:0.5.2"
9214 checksum: 10c0/c6d27f3ed86cc5b601404822f31c900dd165ba63fff8152a3ef714e2012e7535027063bc67ded4cb5b3a49fa596495d46cacd9f47d6328459cf570f08b7d9e5a
9215 languageName: node
9216 linkType: hard
9217
9218"fs-extra@npm:^11.1.1":
9219 version: 11.2.0
9220 resolution: "fs-extra@npm:11.2.0"
9221 dependencies:
9222 graceful-fs: "npm:^4.2.0"
9223 jsonfile: "npm:^6.0.1"
9224 universalify: "npm:^2.0.0"
9225 checksum: 10c0/d77a9a9efe60532d2e790e938c81a02c1b24904ef7a3efb3990b835514465ba720e99a6ea56fd5e2db53b4695319b644d76d5a0e9988a2beef80aa7b1da63398
9226 languageName: node
9227 linkType: hard
9228
9229"fs-extra@npm:^9.0.0, fs-extra@npm:^9.0.1":
5507 version: 9.1.0 9230 version: 9.1.0
5508 resolution: "fs-extra@npm:9.1.0" 9231 resolution: "fs-extra@npm:9.1.0"
5509 dependencies: 9232 dependencies:
@@ -5533,6 +9256,13 @@ __metadata:
5533 languageName: node 9256 languageName: node
5534 linkType: hard 9257 linkType: hard
5535 9258
9259"fs-monkey@npm:^1.0.4":
9260 version: 1.0.5
9261 resolution: "fs-monkey@npm:1.0.5"
9262 checksum: 10c0/815025e75549fb1ac6c403413b82fd631eded862ae27694a515c0f666069e95874ab34e79c33d1b3b8c87d1e54350d5e4262090d0aa5bd7130143cbc627537e4
9263 languageName: node
9264 linkType: hard
9265
5536"fs.realpath@npm:^1.0.0": 9266"fs.realpath@npm:^1.0.0":
5537 version: 1.0.0 9267 version: 1.0.0
5538 resolution: "fs.realpath@npm:1.0.0" 9268 resolution: "fs.realpath@npm:1.0.0"
@@ -5635,6 +9365,13 @@ __metadata:
5635 languageName: node 9365 languageName: node
5636 linkType: hard 9366 linkType: hard
5637 9367
9368"get-stream@npm:^6.0.0, get-stream@npm:^6.0.1":
9369 version: 6.0.1
9370 resolution: "get-stream@npm:6.0.1"
9371 checksum: 10c0/49825d57d3fd6964228e6200a58169464b8e8970489b3acdc24906c782fb7f01f9f56f8e6653c4a50713771d6658f7cfe051e5eb8c12e334138c9c918b296341
9372 languageName: node
9373 linkType: hard
9374
5638"get-symbol-description@npm:^1.0.2": 9375"get-symbol-description@npm:^1.0.2":
5639 version: 1.0.2 9376 version: 1.0.2
5640 resolution: "get-symbol-description@npm:1.0.2" 9377 resolution: "get-symbol-description@npm:1.0.2"
@@ -5655,6 +9392,13 @@ __metadata:
5655 languageName: node 9392 languageName: node
5656 linkType: hard 9393 linkType: hard
5657 9394
9395"github-slugger@npm:^1.5.0":
9396 version: 1.5.0
9397 resolution: "github-slugger@npm:1.5.0"
9398 checksum: 10c0/116f99732925f939cbfd6f2e57db1aa7e111a460db0d103e3b3f2fce6909d44311663d4542350706cad806345b9892358cc3b153674f88eeae77f43380b3bfca
9399 languageName: node
9400 linkType: hard
9401
5658"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": 9402"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2":
5659 version: 5.1.2 9403 version: 5.1.2
5660 resolution: "glob-parent@npm:5.1.2" 9404 resolution: "glob-parent@npm:5.1.2"
@@ -5664,7 +9408,7 @@ __metadata:
5664 languageName: node 9408 languageName: node
5665 linkType: hard 9409 linkType: hard
5666 9410
5667"glob-parent@npm:^6.0.2": 9411"glob-parent@npm:^6.0.1, glob-parent@npm:^6.0.2":
5668 version: 6.0.2 9412 version: 6.0.2
5669 resolution: "glob-parent@npm:6.0.2" 9413 resolution: "glob-parent@npm:6.0.2"
5670 dependencies: 9414 dependencies:
@@ -5673,6 +9417,13 @@ __metadata:
5673 languageName: node 9417 languageName: node
5674 linkType: hard 9418 linkType: hard
5675 9419
9420"glob-to-regexp@npm:^0.4.1":
9421 version: 0.4.1
9422 resolution: "glob-to-regexp@npm:0.4.1"
9423 checksum: 10c0/0486925072d7a916f052842772b61c3e86247f0a80cc0deb9b5a3e8a1a9faad5b04fb6f58986a09f34d3e96cd2a22a24b7e9882fb1cf904c31e9a310de96c429
9424 languageName: node
9425 linkType: hard
9426
5676"glob@npm:^10.2.2": 9427"glob@npm:^10.2.2":
5677 version: 10.3.3 9428 version: 10.3.3
5678 resolution: "glob@npm:10.3.3" 9429 resolution: "glob@npm:10.3.3"
@@ -5688,7 +9439,7 @@ __metadata:
5688 languageName: node 9439 languageName: node
5689 linkType: hard 9440 linkType: hard
5690 9441
5691"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": 9442"glob@npm:^7.0.0, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6":
5692 version: 7.2.3 9443 version: 7.2.3
5693 resolution: "glob@npm:7.2.3" 9444 resolution: "glob@npm:7.2.3"
5694 dependencies: 9445 dependencies:
@@ -5702,6 +9453,35 @@ __metadata:
5702 languageName: node 9453 languageName: node
5703 linkType: hard 9454 linkType: hard
5704 9455
9456"global-dirs@npm:^3.0.0":
9457 version: 3.0.1
9458 resolution: "global-dirs@npm:3.0.1"
9459 dependencies:
9460 ini: "npm:2.0.0"
9461 checksum: 10c0/ef65e2241a47ff978f7006a641302bc7f4c03dfb98783d42bf7224c136e3a06df046e70ee3a010cf30214114755e46c9eb5eb1513838812fbbe0d92b14c25080
9462 languageName: node
9463 linkType: hard
9464
9465"global-modules@npm:^2.0.0":
9466 version: 2.0.0
9467 resolution: "global-modules@npm:2.0.0"
9468 dependencies:
9469 global-prefix: "npm:^3.0.0"
9470 checksum: 10c0/43b770fe24aa6028f4b9770ea583a47f39750be15cf6e2578f851e4ccc9e4fa674b8541928c0b09c21461ca0763f0d36e4068cec86c914b07fd6e388e66ba5b9
9471 languageName: node
9472 linkType: hard
9473
9474"global-prefix@npm:^3.0.0":
9475 version: 3.0.0
9476 resolution: "global-prefix@npm:3.0.0"
9477 dependencies:
9478 ini: "npm:^1.3.5"
9479 kind-of: "npm:^6.0.2"
9480 which: "npm:^1.3.1"
9481 checksum: 10c0/510f489fb68d1cc7060f276541709a0ee6d41356ef852de48f7906c648ac223082a1cc8fce86725ca6c0e032bcdc1189ae77b4744a624b29c34a9d0ece498269
9482 languageName: node
9483 linkType: hard
9484
5705"globals@npm:^11.1.0": 9485"globals@npm:^11.1.0":
5706 version: 11.12.0 9486 version: 11.12.0
5707 resolution: "globals@npm:11.12.0" 9487 resolution: "globals@npm:11.12.0"
@@ -5727,7 +9507,7 @@ __metadata:
5727 languageName: node 9507 languageName: node
5728 linkType: hard 9508 linkType: hard
5729 9509
5730"globby@npm:^11.1.0": 9510"globby@npm:^11.0.1, globby@npm:^11.0.4, globby@npm:^11.1.0":
5731 version: 11.1.0 9511 version: 11.1.0
5732 resolution: "globby@npm:11.1.0" 9512 resolution: "globby@npm:11.1.0"
5733 dependencies: 9513 dependencies:
@@ -5741,6 +9521,19 @@ __metadata:
5741 languageName: node 9521 languageName: node
5742 linkType: hard 9522 linkType: hard
5743 9523
9524"globby@npm:^13.1.1":
9525 version: 13.2.2
9526 resolution: "globby@npm:13.2.2"
9527 dependencies:
9528 dir-glob: "npm:^3.0.1"
9529 fast-glob: "npm:^3.3.0"
9530 ignore: "npm:^5.2.4"
9531 merge2: "npm:^1.4.1"
9532 slash: "npm:^4.0.0"
9533 checksum: 10c0/a8d7cc7cbe5e1b2d0f81d467bbc5bc2eac35f74eaded3a6c85fc26d7acc8e6de22d396159db8a2fc340b8a342e74cac58de8f4aee74146d3d146921a76062664
9534 languageName: node
9535 linkType: hard
9536
5744"goober@npm:^2.0.33": 9537"goober@npm:^2.0.33":
5745 version: 2.1.13 9538 version: 2.1.13
5746 resolution: "goober@npm:2.1.13" 9539 resolution: "goober@npm:2.1.13"
@@ -5759,7 +9552,33 @@ __metadata:
5759 languageName: node 9552 languageName: node
5760 linkType: hard 9553 linkType: hard
5761 9554
5762"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": 9555"got@npm:^12.1.0":
9556 version: 12.6.1
9557 resolution: "got@npm:12.6.1"
9558 dependencies:
9559 "@sindresorhus/is": "npm:^5.2.0"
9560 "@szmarczak/http-timer": "npm:^5.0.1"
9561 cacheable-lookup: "npm:^7.0.0"
9562 cacheable-request: "npm:^10.2.8"
9563 decompress-response: "npm:^6.0.0"
9564 form-data-encoder: "npm:^2.1.2"
9565 get-stream: "npm:^6.0.1"
9566 http2-wrapper: "npm:^2.1.10"
9567 lowercase-keys: "npm:^3.0.0"
9568 p-cancelable: "npm:^3.0.0"
9569 responselike: "npm:^3.0.0"
9570 checksum: 10c0/2fe97fcbd7a9ffc7c2d0ecf59aca0a0562e73a7749cadada9770eeb18efbdca3086262625fb65590594edc220a1eca58fab0d26b0c93c2f9a008234da71ca66b
9571 languageName: node
9572 linkType: hard
9573
9574"graceful-fs@npm:4.2.10":
9575 version: 4.2.10
9576 resolution: "graceful-fs@npm:4.2.10"
9577 checksum: 10c0/4223a833e38e1d0d2aea630c2433cfb94ddc07dfc11d511dbd6be1d16688c5be848acc31f9a5d0d0ddbfb56d2ee5a6ae0278aceeb0ca6a13f27e06b9956fb952
9578 languageName: node
9579 linkType: hard
9580
9581"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9":
5763 version: 4.2.11 9582 version: 4.2.11
5764 resolution: "graceful-fs@npm:4.2.11" 9583 resolution: "graceful-fs@npm:4.2.11"
5765 checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 9584 checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2
@@ -5773,6 +9592,34 @@ __metadata:
5773 languageName: node 9592 languageName: node
5774 linkType: hard 9593 linkType: hard
5775 9594
9595"gray-matter@npm:^4.0.3":
9596 version: 4.0.3
9597 resolution: "gray-matter@npm:4.0.3"
9598 dependencies:
9599 js-yaml: "npm:^3.13.1"
9600 kind-of: "npm:^6.0.2"
9601 section-matter: "npm:^1.0.0"
9602 strip-bom-string: "npm:^1.0.0"
9603 checksum: 10c0/e38489906dad4f162ca01e0dcbdbed96d1a53740cef446b9bf76d80bec66fa799af07776a18077aee642346c5e1365ed95e4c91854a12bf40ba0d4fb43a625a6
9604 languageName: node
9605 linkType: hard
9606
9607"gzip-size@npm:^6.0.0":
9608 version: 6.0.0
9609 resolution: "gzip-size@npm:6.0.0"
9610 dependencies:
9611 duplexer: "npm:^0.1.2"
9612 checksum: 10c0/4ccb924626c82125897a997d1c84f2377846a6ef57fbee38f7c0e6b41387fba4d00422274440747b58008b5d60114bac2349c2908e9aba55188345281af40a3f
9613 languageName: node
9614 linkType: hard
9615
9616"handle-thing@npm:^2.0.0":
9617 version: 2.0.1
9618 resolution: "handle-thing@npm:2.0.1"
9619 checksum: 10c0/7ae34ba286a3434f1993ebd1cc9c9e6b6d8ea672182db28b1afc0a7119229552fa7031e3e5f3cd32a76430ece4e94b7da6f12af2eb39d6239a7693e4bd63a998
9620 languageName: node
9621 linkType: hard
9622
5776"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": 9623"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2":
5777 version: 1.0.2 9624 version: 1.0.2
5778 resolution: "has-bigints@npm:1.0.2" 9625 resolution: "has-bigints@npm:1.0.2"
@@ -5833,6 +9680,13 @@ __metadata:
5833 languageName: node 9680 languageName: node
5834 linkType: hard 9681 linkType: hard
5835 9682
9683"has-yarn@npm:^3.0.0":
9684 version: 3.0.0
9685 resolution: "has-yarn@npm:3.0.0"
9686 checksum: 10c0/38c76618cb764e4a98ea114a3938e0bed6ceafb6bacab2ffb32e7c7d1e18b5e09cd03387d507ee87072388e1f20b1f80947fee62c41fc450edfbbdc02a665787
9687 languageName: node
9688 linkType: hard
9689
5836"hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2": 9690"hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2":
5837 version: 2.0.2 9691 version: 2.0.2
5838 resolution: "hasown@npm:2.0.2" 9692 resolution: "hasown@npm:2.0.2"
@@ -5842,7 +9696,160 @@ __metadata:
5842 languageName: node 9696 languageName: node
5843 linkType: hard 9697 linkType: hard
5844 9698
5845"hoist-non-react-statics@npm:^3.3.1": 9699"hast-util-from-parse5@npm:^8.0.0":
9700 version: 8.0.1
9701 resolution: "hast-util-from-parse5@npm:8.0.1"
9702 dependencies:
9703 "@types/hast": "npm:^3.0.0"
9704 "@types/unist": "npm:^3.0.0"
9705 devlop: "npm:^1.0.0"
9706 hastscript: "npm:^8.0.0"
9707 property-information: "npm:^6.0.0"
9708 vfile: "npm:^6.0.0"
9709 vfile-location: "npm:^5.0.0"
9710 web-namespaces: "npm:^2.0.0"
9711 checksum: 10c0/4a30bb885cff1f0e023c429ae3ece73fe4b03386f07234bf23f5555ca087c2573ff4e551035b417ed7615bde559f394cdaf1db2b91c3b7f0575f3563cd238969
9712 languageName: node
9713 linkType: hard
9714
9715"hast-util-parse-selector@npm:^4.0.0":
9716 version: 4.0.0
9717 resolution: "hast-util-parse-selector@npm:4.0.0"
9718 dependencies:
9719 "@types/hast": "npm:^3.0.0"
9720 checksum: 10c0/5e98168cb44470dc274aabf1a28317e4feb09b1eaf7a48bbaa8c1de1b43a89cd195cb1284e535698e658e3ec26ad91bc5e52c9563c36feb75abbc68aaf68fb9f
9721 languageName: node
9722 linkType: hard
9723
9724"hast-util-raw@npm:^9.0.0":
9725 version: 9.0.2
9726 resolution: "hast-util-raw@npm:9.0.2"
9727 dependencies:
9728 "@types/hast": "npm:^3.0.0"
9729 "@types/unist": "npm:^3.0.0"
9730 "@ungap/structured-clone": "npm:^1.0.0"
9731 hast-util-from-parse5: "npm:^8.0.0"
9732 hast-util-to-parse5: "npm:^8.0.0"
9733 html-void-elements: "npm:^3.0.0"
9734 mdast-util-to-hast: "npm:^13.0.0"
9735 parse5: "npm:^7.0.0"
9736 unist-util-position: "npm:^5.0.0"
9737 unist-util-visit: "npm:^5.0.0"
9738 vfile: "npm:^6.0.0"
9739 web-namespaces: "npm:^2.0.0"
9740 zwitch: "npm:^2.0.0"
9741 checksum: 10c0/0162c104c3fdf8b749b2d271d36b48f609c2cb3bc30cb21feb087ac67bdf806988c8cd14c2e2c71ff982b0a7525b0b1ffd09476f9d79b517337d78ada8042b0c
9742 languageName: node
9743 linkType: hard
9744
9745"hast-util-to-estree@npm:^3.0.0":
9746 version: 3.1.0
9747 resolution: "hast-util-to-estree@npm:3.1.0"
9748 dependencies:
9749 "@types/estree": "npm:^1.0.0"
9750 "@types/estree-jsx": "npm:^1.0.0"
9751 "@types/hast": "npm:^3.0.0"
9752 comma-separated-tokens: "npm:^2.0.0"
9753 devlop: "npm:^1.0.0"
9754 estree-util-attach-comments: "npm:^3.0.0"
9755 estree-util-is-identifier-name: "npm:^3.0.0"
9756 hast-util-whitespace: "npm:^3.0.0"
9757 mdast-util-mdx-expression: "npm:^2.0.0"
9758 mdast-util-mdx-jsx: "npm:^3.0.0"
9759 mdast-util-mdxjs-esm: "npm:^2.0.0"
9760 property-information: "npm:^6.0.0"
9761 space-separated-tokens: "npm:^2.0.0"
9762 style-to-object: "npm:^0.4.0"
9763 unist-util-position: "npm:^5.0.0"
9764 zwitch: "npm:^2.0.0"
9765 checksum: 10c0/9003a8bac26a4580d5fc9f2a271d17330dd653266425e9f5539feecd2f7538868d6630a18f70698b8b804bf14c306418a3f4ab3119bb4692aca78b0c08b1291e
9766 languageName: node
9767 linkType: hard
9768
9769"hast-util-to-jsx-runtime@npm:^2.0.0":
9770 version: 2.3.0
9771 resolution: "hast-util-to-jsx-runtime@npm:2.3.0"
9772 dependencies:
9773 "@types/estree": "npm:^1.0.0"
9774 "@types/hast": "npm:^3.0.0"
9775 "@types/unist": "npm:^3.0.0"
9776 comma-separated-tokens: "npm:^2.0.0"
9777 devlop: "npm:^1.0.0"
9778 estree-util-is-identifier-name: "npm:^3.0.0"
9779 hast-util-whitespace: "npm:^3.0.0"
9780 mdast-util-mdx-expression: "npm:^2.0.0"
9781 mdast-util-mdx-jsx: "npm:^3.0.0"
9782 mdast-util-mdxjs-esm: "npm:^2.0.0"
9783 property-information: "npm:^6.0.0"
9784 space-separated-tokens: "npm:^2.0.0"
9785 style-to-object: "npm:^1.0.0"
9786 unist-util-position: "npm:^5.0.0"
9787 vfile-message: "npm:^4.0.0"
9788 checksum: 10c0/df7a36dcc792df7667a54438f044b721753d5e09692606d23bf7336bf4651670111fe7728eebbf9f0e4f96ab3346a05bb23037fa1b1d115482b3bc5bde8b6912
9789 languageName: node
9790 linkType: hard
9791
9792"hast-util-to-parse5@npm:^8.0.0":
9793 version: 8.0.0
9794 resolution: "hast-util-to-parse5@npm:8.0.0"
9795 dependencies:
9796 "@types/hast": "npm:^3.0.0"
9797 comma-separated-tokens: "npm:^2.0.0"
9798 devlop: "npm:^1.0.0"
9799 property-information: "npm:^6.0.0"
9800 space-separated-tokens: "npm:^2.0.0"
9801 web-namespaces: "npm:^2.0.0"
9802 zwitch: "npm:^2.0.0"
9803 checksum: 10c0/3c0c7fba026e0c4be4675daf7277f9ff22ae6da801435f1b7104f7740de5422576f1c025023c7b3df1d0a161e13a04c6ab8f98ada96eb50adb287b537849a2bd
9804 languageName: node
9805 linkType: hard
9806
9807"hast-util-whitespace@npm:^3.0.0":
9808 version: 3.0.0
9809 resolution: "hast-util-whitespace@npm:3.0.0"
9810 dependencies:
9811 "@types/hast": "npm:^3.0.0"
9812 checksum: 10c0/b898bc9fe27884b272580d15260b6bbdabe239973a147e97fa98c45fa0ffec967a481aaa42291ec34fb56530dc2d484d473d7e2bae79f39c83f3762307edfea8
9813 languageName: node
9814 linkType: hard
9815
9816"hastscript@npm:^8.0.0":
9817 version: 8.0.0
9818 resolution: "hastscript@npm:8.0.0"
9819 dependencies:
9820 "@types/hast": "npm:^3.0.0"
9821 comma-separated-tokens: "npm:^2.0.0"
9822 hast-util-parse-selector: "npm:^4.0.0"
9823 property-information: "npm:^6.0.0"
9824 space-separated-tokens: "npm:^2.0.0"
9825 checksum: 10c0/f0b54bbdd710854b71c0f044612db0fe1b5e4d74fa2001633dc8c535c26033269f04f536f9fd5b03f234de1111808f9e230e9d19493bf919432bb24d541719e0
9826 languageName: node
9827 linkType: hard
9828
9829"he@npm:^1.2.0":
9830 version: 1.2.0
9831 resolution: "he@npm:1.2.0"
9832 bin:
9833 he: bin/he
9834 checksum: 10c0/a27d478befe3c8192f006cdd0639a66798979dfa6e2125c6ac582a19a5ebfec62ad83e8382e6036170d873f46e4536a7e795bf8b95bf7c247f4cc0825ccc8c17
9835 languageName: node
9836 linkType: hard
9837
9838"history@npm:^4.9.0":
9839 version: 4.10.1
9840 resolution: "history@npm:4.10.1"
9841 dependencies:
9842 "@babel/runtime": "npm:^7.1.2"
9843 loose-envify: "npm:^1.2.0"
9844 resolve-pathname: "npm:^3.0.0"
9845 tiny-invariant: "npm:^1.0.2"
9846 tiny-warning: "npm:^1.0.0"
9847 value-equal: "npm:^1.0.1"
9848 checksum: 10c0/35377694e4f10f2cf056a9cb1a8ee083e04e4b4717a63baeee4afd565658a62c7e73700bf9e82aa53dbe1ec94e0a25a83c080d63bad8ee6b274a98d2fbc5ed4c
9849 languageName: node
9850 linkType: hard
9851
9852"hoist-non-react-statics@npm:^3.1.0, hoist-non-react-statics@npm:^3.3.1":
5846 version: 3.3.2 9853 version: 3.3.2
5847 resolution: "hoist-non-react-statics@npm:3.3.2" 9854 resolution: "hoist-non-react-statics@npm:3.3.2"
5848 dependencies: 9855 dependencies:
@@ -5851,6 +9858,49 @@ __metadata:
5851 languageName: node 9858 languageName: node
5852 linkType: hard 9859 linkType: hard
5853 9860
9861"hpack.js@npm:^2.1.6":
9862 version: 2.1.6
9863 resolution: "hpack.js@npm:2.1.6"
9864 dependencies:
9865 inherits: "npm:^2.0.1"
9866 obuf: "npm:^1.0.0"
9867 readable-stream: "npm:^2.0.1"
9868 wbuf: "npm:^1.1.0"
9869 checksum: 10c0/55b9e824430bab82a19d079cb6e33042d7d0640325678c9917fcc020c61d8a08ca671b6c942c7f0aae9bb6e4b67ffb50734a72f9e21d66407c3138c1983b70f0
9870 languageName: node
9871 linkType: hard
9872
9873"html-entities@npm:^2.3.2":
9874 version: 2.5.2
9875 resolution: "html-entities@npm:2.5.2"
9876 checksum: 10c0/f20ffb4326606245c439c231de40a7c560607f639bf40ffbfb36b4c70729fd95d7964209045f1a4e62fe17f2364cef3d6e49b02ea09016f207fde51c2211e481
9877 languageName: node
9878 linkType: hard
9879
9880"html-escaper@npm:^2.0.2":
9881 version: 2.0.2
9882 resolution: "html-escaper@npm:2.0.2"
9883 checksum: 10c0/208e8a12de1a6569edbb14544f4567e6ce8ecc30b9394fcaa4e7bb1e60c12a7c9a1ed27e31290817157e8626f3a4f29e76c8747030822eb84a6abb15c255f0a0
9884 languageName: node
9885 linkType: hard
9886
9887"html-minifier-terser@npm:^6.0.2":
9888 version: 6.1.0
9889 resolution: "html-minifier-terser@npm:6.1.0"
9890 dependencies:
9891 camel-case: "npm:^4.1.2"
9892 clean-css: "npm:^5.2.2"
9893 commander: "npm:^8.3.0"
9894 he: "npm:^1.2.0"
9895 param-case: "npm:^3.0.4"
9896 relateurl: "npm:^0.2.7"
9897 terser: "npm:^5.10.0"
9898 bin:
9899 html-minifier-terser: cli.js
9900 checksum: 10c0/1aa4e4f01cf7149e3ac5ea84fb7a1adab86da40d38d77a6fff42852b5ee3daccb78b615df97264e3a6a5c33e57f0c77f471d607ca1e1debd1dab9b58286f4b5a
9901 languageName: node
9902 linkType: hard
9903
5854"html-minifier-terser@npm:^7.2.0": 9904"html-minifier-terser@npm:^7.2.0":
5855 version: 7.2.0 9905 version: 7.2.0
5856 resolution: "html-minifier-terser@npm:7.2.0" 9906 resolution: "html-minifier-terser@npm:7.2.0"
@@ -5868,6 +9918,41 @@ __metadata:
5868 languageName: node 9918 languageName: node
5869 linkType: hard 9919 linkType: hard
5870 9920
9921"html-tags@npm:^3.3.1":
9922 version: 3.3.1
9923 resolution: "html-tags@npm:3.3.1"
9924 checksum: 10c0/680165e12baa51bad7397452d247dbcc5a5c29dac0e6754b1187eee3bf26f514bc1907a431dd2f7eb56207611ae595ee76a0acc8eaa0d931e72c791dd6463d79
9925 languageName: node
9926 linkType: hard
9927
9928"html-void-elements@npm:^3.0.0":
9929 version: 3.0.0
9930 resolution: "html-void-elements@npm:3.0.0"
9931 checksum: 10c0/a8b9ec5db23b7c8053876dad73a0336183e6162bf6d2677376d8b38d654fdc59ba74fdd12f8812688f7db6fad451210c91b300e472afc0909224e0a44c8610d2
9932 languageName: node
9933 linkType: hard
9934
9935"html-webpack-plugin@npm:^5.5.3":
9936 version: 5.6.0
9937 resolution: "html-webpack-plugin@npm:5.6.0"
9938 dependencies:
9939 "@types/html-minifier-terser": "npm:^6.0.0"
9940 html-minifier-terser: "npm:^6.0.2"
9941 lodash: "npm:^4.17.21"
9942 pretty-error: "npm:^4.0.0"
9943 tapable: "npm:^2.0.0"
9944 peerDependencies:
9945 "@rspack/core": 0.x || 1.x
9946 webpack: ^5.20.0
9947 peerDependenciesMeta:
9948 "@rspack/core":
9949 optional: true
9950 webpack:
9951 optional: true
9952 checksum: 10c0/50d1a0f90d512463ea8d798985d91a7ccc9d5e461713dedb240125b2ff0671f58135dd9355f7969af341ff4725e73b2defbc0984cfdce930887a48506d970002
9953 languageName: node
9954 linkType: hard
9955
5871"html2canvas@npm:^1.0.0-rc.5": 9956"html2canvas@npm:^1.0.0-rc.5":
5872 version: 1.4.1 9957 version: 1.4.1
5873 resolution: "html2canvas@npm:1.4.1" 9958 resolution: "html2canvas@npm:1.4.1"
@@ -5878,6 +9963,30 @@ __metadata:
5878 languageName: node 9963 languageName: node
5879 linkType: hard 9964 linkType: hard
5880 9965
9966"htmlparser2@npm:^6.1.0":
9967 version: 6.1.0
9968 resolution: "htmlparser2@npm:6.1.0"
9969 dependencies:
9970 domelementtype: "npm:^2.0.1"
9971 domhandler: "npm:^4.0.0"
9972 domutils: "npm:^2.5.2"
9973 entities: "npm:^2.0.0"
9974 checksum: 10c0/3058499c95634f04dc66be8c2e0927cd86799413b2d6989d8ae542ca4dbf5fa948695d02c27d573acf44843af977aec6d9a7bdd0f6faa6b2d99e2a729b2a31b6
9975 languageName: node
9976 linkType: hard
9977
9978"htmlparser2@npm:^8.0.1":
9979 version: 8.0.2
9980 resolution: "htmlparser2@npm:8.0.2"
9981 dependencies:
9982 domelementtype: "npm:^2.3.0"
9983 domhandler: "npm:^5.0.3"
9984 domutils: "npm:^3.0.1"
9985 entities: "npm:^4.4.0"
9986 checksum: 10c0/609cca85886d0bf2c9a5db8c6926a89f3764596877492e2caa7a25a789af4065bc6ee2cdc81807fe6b1d03a87bf8a373b5a754528a4cc05146b713c20575aab4
9987 languageName: node
9988 linkType: hard
9989
5881"http-cache-semantics@npm:^4.1.1": 9990"http-cache-semantics@npm:^4.1.1":
5882 version: 4.1.1 9991 version: 4.1.1
5883 resolution: "http-cache-semantics@npm:4.1.1" 9992 resolution: "http-cache-semantics@npm:4.1.1"
@@ -5885,6 +9994,45 @@ __metadata:
5885 languageName: node 9994 languageName: node
5886 linkType: hard 9995 linkType: hard
5887 9996
9997"http-deceiver@npm:^1.2.7":
9998 version: 1.2.7
9999 resolution: "http-deceiver@npm:1.2.7"
10000 checksum: 10c0/8bb9b716f5fc55f54a451da7f49b9c695c3e45498a789634daec26b61e4add7c85613a4a9e53726c39d09de7a163891ecd6eb5809adb64500a840fd86fe81d03
10001 languageName: node
10002 linkType: hard
10003
10004"http-errors@npm:2.0.0":
10005 version: 2.0.0
10006 resolution: "http-errors@npm:2.0.0"
10007 dependencies:
10008 depd: "npm:2.0.0"
10009 inherits: "npm:2.0.4"
10010 setprototypeof: "npm:1.2.0"
10011 statuses: "npm:2.0.1"
10012 toidentifier: "npm:1.0.1"
10013 checksum: 10c0/fc6f2715fe188d091274b5ffc8b3657bd85c63e969daa68ccb77afb05b071a4b62841acb7a21e417b5539014dff2ebf9550f0b14a9ff126f2734a7c1387f8e19
10014 languageName: node
10015 linkType: hard
10016
10017"http-errors@npm:~1.6.2":
10018 version: 1.6.3
10019 resolution: "http-errors@npm:1.6.3"
10020 dependencies:
10021 depd: "npm:~1.1.2"
10022 inherits: "npm:2.0.3"
10023 setprototypeof: "npm:1.1.0"
10024 statuses: "npm:>= 1.4.0 < 2"
10025 checksum: 10c0/17ec4046ee974477778bfdd525936c254b872054703ec2caa4d6f099566b8adade636ae6aeeacb39302c5cd6e28fb407ebd937f500f5010d0b6850750414ff78
10026 languageName: node
10027 linkType: hard
10028
10029"http-parser-js@npm:>=0.5.1":
10030 version: 0.5.8
10031 resolution: "http-parser-js@npm:0.5.8"
10032 checksum: 10c0/4ed89f812c44f84c4ae5d43dd3a0c47942b875b63be0ed2ccecbe6b0018af867d806495fc6e12474aff868721163699c49246585bddea4f0ecc6d2b02e19faf1
10033 languageName: node
10034 linkType: hard
10035
5888"http-proxy-agent@npm:^5.0.0": 10036"http-proxy-agent@npm:^5.0.0":
5889 version: 5.0.0 10037 version: 5.0.0
5890 resolution: "http-proxy-agent@npm:5.0.0" 10038 resolution: "http-proxy-agent@npm:5.0.0"
@@ -5896,6 +10044,45 @@ __metadata:
5896 languageName: node 10044 languageName: node
5897 linkType: hard 10045 linkType: hard
5898 10046
10047"http-proxy-middleware@npm:^2.0.3":
10048 version: 2.0.6
10049 resolution: "http-proxy-middleware@npm:2.0.6"
10050 dependencies:
10051 "@types/http-proxy": "npm:^1.17.8"
10052 http-proxy: "npm:^1.18.1"
10053 is-glob: "npm:^4.0.1"
10054 is-plain-obj: "npm:^3.0.0"
10055 micromatch: "npm:^4.0.2"
10056 peerDependencies:
10057 "@types/express": ^4.17.13
10058 peerDependenciesMeta:
10059 "@types/express":
10060 optional: true
10061 checksum: 10c0/25a0e550dd1900ee5048a692e0e9b2b6339d06d487a705d90c47e359e9c6561d648cd7862d001d090e651c9efffa1b6e5160fcf1f299b5fa4935f76e9754eb11
10062 languageName: node
10063 linkType: hard
10064
10065"http-proxy@npm:^1.18.1":
10066 version: 1.18.1
10067 resolution: "http-proxy@npm:1.18.1"
10068 dependencies:
10069 eventemitter3: "npm:^4.0.0"
10070 follow-redirects: "npm:^1.0.0"
10071 requires-port: "npm:^1.0.0"
10072 checksum: 10c0/148dfa700a03fb421e383aaaf88ac1d94521dfc34072f6c59770528c65250983c2e4ec996f2f03aa9f3fe46cd1270a593126068319311e3e8d9e610a37533e94
10073 languageName: node
10074 linkType: hard
10075
10076"http2-wrapper@npm:^2.1.10":
10077 version: 2.2.1
10078 resolution: "http2-wrapper@npm:2.2.1"
10079 dependencies:
10080 quick-lru: "npm:^5.1.1"
10081 resolve-alpn: "npm:^1.2.0"
10082 checksum: 10c0/7207201d3c6e53e72e510c9b8912e4f3e468d3ecc0cf3bf52682f2aac9cd99358b896d1da4467380adc151cf97c412bedc59dc13dae90c523f42053a7449eedb
10083 languageName: node
10084 linkType: hard
10085
5899"https-proxy-agent@npm:^5.0.0": 10086"https-proxy-agent@npm:^5.0.0":
5900 version: 5.0.1 10087 version: 5.0.1
5901 resolution: "https-proxy-agent@npm:5.0.1" 10088 resolution: "https-proxy-agent@npm:5.0.1"
@@ -5906,6 +10093,13 @@ __metadata:
5906 languageName: node 10093 languageName: node
5907 linkType: hard 10094 linkType: hard
5908 10095
10096"human-signals@npm:^2.1.0":
10097 version: 2.1.0
10098 resolution: "human-signals@npm:2.1.0"
10099 checksum: 10c0/695edb3edfcfe9c8b52a76926cd31b36978782062c0ed9b1192b36bebc75c4c87c82e178dfcb0ed0fc27ca59d434198aac0bd0be18f5781ded775604db22304a
10100 languageName: node
10101 linkType: hard
10102
5909"humanize-ms@npm:^1.2.1": 10103"humanize-ms@npm:^1.2.1":
5910 version: 1.2.1 10104 version: 1.2.1
5911 resolution: "humanize-ms@npm:1.2.1" 10105 resolution: "humanize-ms@npm:1.2.1"
@@ -5915,6 +10109,15 @@ __metadata:
5915 languageName: node 10109 languageName: node
5916 linkType: hard 10110 linkType: hard
5917 10111
10112"iconv-lite@npm:0.4.24":
10113 version: 0.4.24
10114 resolution: "iconv-lite@npm:0.4.24"
10115 dependencies:
10116 safer-buffer: "npm:>= 2.1.2 < 3"
10117 checksum: 10c0/c6886a24cc00f2a059767440ec1bc00d334a89f250db8e0f7feb4961c8727118457e27c495ba94d082e51d3baca378726cd110aaf7ded8b9bbfd6a44760cf1d4
10118 languageName: node
10119 linkType: hard
10120
5918"iconv-lite@npm:0.6, iconv-lite@npm:^0.6.2": 10121"iconv-lite@npm:0.6, iconv-lite@npm:^0.6.2":
5919 version: 0.6.3 10122 version: 0.6.3
5920 resolution: "iconv-lite@npm:0.6.3" 10123 resolution: "iconv-lite@npm:0.6.3"
@@ -5924,6 +10127,15 @@ __metadata:
5924 languageName: node 10127 languageName: node
5925 linkType: hard 10128 linkType: hard
5926 10129
10130"icss-utils@npm:^5.0.0, icss-utils@npm:^5.1.0":
10131 version: 5.1.0
10132 resolution: "icss-utils@npm:5.1.0"
10133 peerDependencies:
10134 postcss: ^8.1.0
10135 checksum: 10c0/39c92936fabd23169c8611d2b5cc39e39d10b19b0d223352f20a7579f75b39d5f786114a6b8fc62bee8c5fed59ba9e0d38f7219a4db383e324fb3061664b043d
10136 languageName: node
10137 linkType: hard
10138
5927"idb@npm:^7.0.1": 10139"idb@npm:^7.0.1":
5928 version: 7.1.1 10140 version: 7.1.1
5929 resolution: "idb@npm:7.1.1" 10141 resolution: "idb@npm:7.1.1"
@@ -5931,14 +10143,32 @@ __metadata:
5931 languageName: node 10143 languageName: node
5932 linkType: hard 10144 linkType: hard
5933 10145
5934"ignore@npm:^5.2.0, ignore@npm:^5.2.4": 10146"ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1":
5935 version: 5.2.4 10147 version: 5.3.1
5936 resolution: "ignore@npm:5.2.4" 10148 resolution: "ignore@npm:5.3.1"
5937 checksum: 10c0/7c7cd90edd9fea6e037f9b9da4b01bf0a86b198ce78345f9bbd983929d68ff14830be31111edc5d70c264921f4962404d75b7262b4d9cc3bc12381eccbd03096 10149 checksum: 10c0/703f7f45ffb2a27fb2c5a8db0c32e7dee66b33a225d28e8db4e1be6474795f606686a6e3bcc50e1aa12f2042db4c9d4a7d60af3250511de74620fbed052ea4cd
10150 languageName: node
10151 linkType: hard
10152
10153"image-size@npm:^1.0.2":
10154 version: 1.1.1
10155 resolution: "image-size@npm:1.1.1"
10156 dependencies:
10157 queue: "npm:6.0.2"
10158 bin:
10159 image-size: bin/image-size.js
10160 checksum: 10c0/2660470096d12be82195f7e80fe03274689fbd14184afb78eaf66ade7cd06352518325814f88af4bde4b26647889fe49e573129f6e7ba8f5ff5b85cc7f559000
10161 languageName: node
10162 linkType: hard
10163
10164"immer@npm:^9.0.7":
10165 version: 9.0.21
10166 resolution: "immer@npm:9.0.21"
10167 checksum: 10c0/03ea3ed5d4d72e8bd428df4a38ad7e483ea8308e9a113d3b42e0ea2cc0cc38340eb0a6aca69592abbbf047c685dbda04e3d34bf2ff438ab57339ed0a34cc0a05
5938 languageName: node 10168 languageName: node
5939 linkType: hard 10169 linkType: hard
5940 10170
5941"import-fresh@npm:^3.2.1": 10171"import-fresh@npm:^3.1.0, import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0":
5942 version: 3.3.0 10172 version: 3.3.0
5943 resolution: "import-fresh@npm:3.3.0" 10173 resolution: "import-fresh@npm:3.3.0"
5944 dependencies: 10174 dependencies:
@@ -5948,6 +10178,13 @@ __metadata:
5948 languageName: node 10178 languageName: node
5949 linkType: hard 10179 linkType: hard
5950 10180
10181"import-lazy@npm:^4.0.0":
10182 version: 4.0.0
10183 resolution: "import-lazy@npm:4.0.0"
10184 checksum: 10c0/a3520313e2c31f25c0b06aa66d167f329832b68a4f957d7c9daf6e0fa41822b6e84948191648b9b9d8ca82f94740cdf15eecf2401a5b42cd1c33fd84f2225cca
10185 languageName: node
10186 linkType: hard
10187
5951"imurmurhash@npm:^0.1.4": 10188"imurmurhash@npm:^0.1.4":
5952 version: 0.1.4 10189 version: 0.1.4
5953 resolution: "imurmurhash@npm:0.1.4" 10190 resolution: "imurmurhash@npm:0.1.4"
@@ -5962,6 +10199,13 @@ __metadata:
5962 languageName: node 10199 languageName: node
5963 linkType: hard 10200 linkType: hard
5964 10201
10202"infima@npm:0.2.0-alpha.43":
10203 version: 0.2.0-alpha.43
10204 resolution: "infima@npm:0.2.0-alpha.43"
10205 checksum: 10c0/d248958713a97e1c9f73ace27ceff726ba86a9b534efb0ebdec3e72b785d8edb36db922e38ce09bbeb98a17b657e61357f22edc3a58f02ad51b7ae2ebd96e4e4
10206 languageName: node
10207 linkType: hard
10208
5965"inflight@npm:^1.0.4": 10209"inflight@npm:^1.0.4":
5966 version: 1.0.6 10210 version: 1.0.6
5967 resolution: "inflight@npm:1.0.6" 10211 resolution: "inflight@npm:1.0.6"
@@ -5972,13 +10216,48 @@ __metadata:
5972 languageName: node 10216 languageName: node
5973 linkType: hard 10217 linkType: hard
5974 10218
5975"inherits@npm:2, inherits@npm:^2.0.3": 10219"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:~2.0.3":
5976 version: 2.0.4 10220 version: 2.0.4
5977 resolution: "inherits@npm:2.0.4" 10221 resolution: "inherits@npm:2.0.4"
5978 checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 10222 checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2
5979 languageName: node 10223 languageName: node
5980 linkType: hard 10224 linkType: hard
5981 10225
10226"inherits@npm:2.0.3":
10227 version: 2.0.3
10228 resolution: "inherits@npm:2.0.3"
10229 checksum: 10c0/6e56402373149ea076a434072671f9982f5fad030c7662be0332122fe6c0fa490acb3cc1010d90b6eff8d640b1167d77674add52dfd1bb85d545cf29e80e73e7
10230 languageName: node
10231 linkType: hard
10232
10233"ini@npm:2.0.0":
10234 version: 2.0.0
10235 resolution: "ini@npm:2.0.0"
10236 checksum: 10c0/2e0c8f386369139029da87819438b20a1ff3fe58372d93fb1a86e9d9344125ace3a806b8ec4eb160a46e64cbc422fe68251869441676af49b7fc441af2389c25
10237 languageName: node
10238 linkType: hard
10239
10240"ini@npm:^1.3.4, ini@npm:^1.3.5, ini@npm:~1.3.0":
10241 version: 1.3.8
10242 resolution: "ini@npm:1.3.8"
10243 checksum: 10c0/ec93838d2328b619532e4f1ff05df7909760b6f66d9c9e2ded11e5c1897d6f2f9980c54dd638f88654b00919ce31e827040631eab0a3969e4d1abefa0719516a
10244 languageName: node
10245 linkType: hard
10246
10247"inline-style-parser@npm:0.1.1":
10248 version: 0.1.1
10249 resolution: "inline-style-parser@npm:0.1.1"
10250 checksum: 10c0/08832a533f51a1e17619f2eabf2f5ec5e956d6dcba1896351285c65df022c9420de61d73256e1dca8015a52abf96cc84ddc3b73b898b22de6589d3962b5e501b
10251 languageName: node
10252 linkType: hard
10253
10254"inline-style-parser@npm:0.2.3":
10255 version: 0.2.3
10256 resolution: "inline-style-parser@npm:0.2.3"
10257 checksum: 10c0/21b46d39a39c8aeaa738346650469388e8a412dd276ab75aa3d85b1883311e89c86a1fdbb8c2f1958f4c979bae74067f6ba0385455b125faf4fa77e1dbb94799
10258 languageName: node
10259 linkType: hard
10260
5982"internal-slot@npm:^1.0.7": 10261"internal-slot@npm:^1.0.7":
5983 version: 1.0.7 10262 version: 1.0.7
5984 resolution: "internal-slot@npm:1.0.7" 10263 resolution: "internal-slot@npm:1.0.7"
@@ -5997,6 +10276,22 @@ __metadata:
5997 languageName: node 10276 languageName: node
5998 linkType: hard 10277 linkType: hard
5999 10278
10279"interpret@npm:^1.0.0":
10280 version: 1.4.0
10281 resolution: "interpret@npm:1.4.0"
10282 checksum: 10c0/08c5ad30032edeec638485bc3f6db7d0094d9b3e85e0f950866600af3c52e9fd69715416d29564731c479d9f4d43ff3e4d302a178196bdc0e6837ec147640450
10283 languageName: node
10284 linkType: hard
10285
10286"invariant@npm:^2.2.4":
10287 version: 2.2.4
10288 resolution: "invariant@npm:2.2.4"
10289 dependencies:
10290 loose-envify: "npm:^1.0.0"
10291 checksum: 10c0/5af133a917c0bcf65e84e7f23e779e7abc1cd49cb7fdc62d00d1de74b0d8c1b5ee74ac7766099fb3be1b05b26dfc67bab76a17030d2fe7ea2eef867434362dfc
10292 languageName: node
10293 linkType: hard
10294
6000"ip@npm:^2.0.0": 10295"ip@npm:^2.0.0":
6001 version: 2.0.1 10296 version: 2.0.1
6002 resolution: "ip@npm:2.0.1" 10297 resolution: "ip@npm:2.0.1"
@@ -6004,6 +10299,37 @@ __metadata:
6004 languageName: node 10299 languageName: node
6005 linkType: hard 10300 linkType: hard
6006 10301
10302"ipaddr.js@npm:1.9.1":
10303 version: 1.9.1
10304 resolution: "ipaddr.js@npm:1.9.1"
10305 checksum: 10c0/0486e775047971d3fdb5fb4f063829bac45af299ae0b82dcf3afa2145338e08290563a2a70f34b732d795ecc8311902e541a8530eeb30d75860a78ff4e94ce2a
10306 languageName: node
10307 linkType: hard
10308
10309"ipaddr.js@npm:^2.0.1":
10310 version: 2.1.0
10311 resolution: "ipaddr.js@npm:2.1.0"
10312 checksum: 10c0/9aa43ff99771e3d14ab3683df3909b3b033fe81337646bc63780b00ec9bc51d4a696a047c0b261c05867c0a25086ab03f0ce32ea444a6b39e10fac1315d53cab
10313 languageName: node
10314 linkType: hard
10315
10316"is-alphabetical@npm:^2.0.0":
10317 version: 2.0.1
10318 resolution: "is-alphabetical@npm:2.0.1"
10319 checksum: 10c0/932367456f17237533fd1fc9fe179df77957271020b83ea31da50e5cc472d35ef6b5fb8147453274ffd251134472ce24eb6f8d8398d96dee98237cdb81a6c9a7
10320 languageName: node
10321 linkType: hard
10322
10323"is-alphanumerical@npm:^2.0.0":
10324 version: 2.0.1
10325 resolution: "is-alphanumerical@npm:2.0.1"
10326 dependencies:
10327 is-alphabetical: "npm:^2.0.0"
10328 is-decimal: "npm:^2.0.0"
10329 checksum: 10c0/4b35c42b18e40d41378293f82a3ecd9de77049b476f748db5697c297f686e1e05b072a6aaae2d16f54d2a57f85b00cbbe755c75f6d583d1c77d6657bd0feb5a2
10330 languageName: node
10331 linkType: hard
10332
6007"is-arguments@npm:^1.0.4": 10333"is-arguments@npm:^1.0.4":
6008 version: 1.1.1 10334 version: 1.1.1
6009 resolution: "is-arguments@npm:1.1.1" 10335 resolution: "is-arguments@npm:1.1.1"
@@ -6031,6 +10357,13 @@ __metadata:
6031 languageName: node 10357 languageName: node
6032 linkType: hard 10358 linkType: hard
6033 10359
10360"is-arrayish@npm:^0.3.1":
10361 version: 0.3.2
10362 resolution: "is-arrayish@npm:0.3.2"
10363 checksum: 10c0/f59b43dc1d129edb6f0e282595e56477f98c40278a2acdc8b0a5c57097c9eff8fe55470493df5775478cf32a4dc8eaf6d3a749f07ceee5bc263a78b2434f6a54
10364 languageName: node
10365 linkType: hard
10366
6034"is-async-function@npm:^2.0.0": 10367"is-async-function@npm:^2.0.0":
6035 version: 2.0.0 10368 version: 2.0.0
6036 resolution: "is-async-function@npm:2.0.0" 10369 resolution: "is-async-function@npm:2.0.0"
@@ -6075,6 +10408,17 @@ __metadata:
6075 languageName: node 10408 languageName: node
6076 linkType: hard 10409 linkType: hard
6077 10410
10411"is-ci@npm:^3.0.1":
10412 version: 3.0.1
10413 resolution: "is-ci@npm:3.0.1"
10414 dependencies:
10415 ci-info: "npm:^3.2.0"
10416 bin:
10417 is-ci: bin.js
10418 checksum: 10c0/0e81caa62f4520d4088a5bef6d6337d773828a88610346c4b1119fb50c842587ed8bef1e5d9a656835a599e7209405b5761ddf2339668f2d0f4e889a92fe6051
10419 languageName: node
10420 linkType: hard
10421
6078"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1": 10422"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1":
6079 version: 2.13.1 10423 version: 2.13.1
6080 resolution: "is-core-module@npm:2.13.1" 10424 resolution: "is-core-module@npm:2.13.1"
@@ -6102,6 +10446,29 @@ __metadata:
6102 languageName: node 10446 languageName: node
6103 linkType: hard 10447 linkType: hard
6104 10448
10449"is-decimal@npm:^2.0.0":
10450 version: 2.0.1
10451 resolution: "is-decimal@npm:2.0.1"
10452 checksum: 10c0/8085dd66f7d82f9de818fba48b9e9c0429cb4291824e6c5f2622e96b9680b54a07a624cfc663b24148b8e853c62a1c987cfe8b0b5a13f5156991afaf6736e334
10453 languageName: node
10454 linkType: hard
10455
10456"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1":
10457 version: 2.2.1
10458 resolution: "is-docker@npm:2.2.1"
10459 bin:
10460 is-docker: cli.js
10461 checksum: 10c0/e828365958d155f90c409cdbe958f64051d99e8aedc2c8c4cd7c89dcf35329daed42f7b99346f7828df013e27deb8f721cf9408ba878c76eb9e8290235fbcdcc
10462 languageName: node
10463 linkType: hard
10464
10465"is-extendable@npm:^0.1.0":
10466 version: 0.1.1
10467 resolution: "is-extendable@npm:0.1.1"
10468 checksum: 10c0/dd5ca3994a28e1740d1e25192e66eed128e0b2ff161a7ea348e87ae4f616554b486854de423877a2a2c171d5f7cd6e8093b91f54533bc88a59ee1c9838c43879
10469 languageName: node
10470 linkType: hard
10471
6105"is-extglob@npm:^2.1.1": 10472"is-extglob@npm:^2.1.1":
6106 version: 2.1.1 10473 version: 2.1.1
6107 resolution: "is-extglob@npm:2.1.1" 10474 resolution: "is-extglob@npm:2.1.1"
@@ -6143,6 +10510,23 @@ __metadata:
6143 languageName: node 10510 languageName: node
6144 linkType: hard 10511 linkType: hard
6145 10512
10513"is-hexadecimal@npm:^2.0.0":
10514 version: 2.0.1
10515 resolution: "is-hexadecimal@npm:2.0.1"
10516 checksum: 10c0/3eb60fe2f1e2bbc760b927dcad4d51eaa0c60138cf7fc671803f66353ad90c301605b502c7ea4c6bb0548e1c7e79dfd37b73b632652e3b76030bba603a7e9626
10517 languageName: node
10518 linkType: hard
10519
10520"is-installed-globally@npm:^0.4.0":
10521 version: 0.4.0
10522 resolution: "is-installed-globally@npm:0.4.0"
10523 dependencies:
10524 global-dirs: "npm:^3.0.0"
10525 is-path-inside: "npm:^3.0.2"
10526 checksum: 10c0/f3e6220ee5824b845c9ed0d4b42c24272701f1f9926936e30c0e676254ca5b34d1b92c6205cae11b283776f9529212c0cdabb20ec280a6451677d6493ca9c22d
10527 languageName: node
10528 linkType: hard
10529
6146"is-lambda@npm:^1.0.1": 10530"is-lambda@npm:^1.0.1":
6147 version: 1.0.1 10531 version: 1.0.1
6148 resolution: "is-lambda@npm:1.0.1" 10532 resolution: "is-lambda@npm:1.0.1"
@@ -6181,6 +10565,13 @@ __metadata:
6181 languageName: node 10565 languageName: node
6182 linkType: hard 10566 linkType: hard
6183 10567
10568"is-npm@npm:^6.0.0":
10569 version: 6.0.0
10570 resolution: "is-npm@npm:6.0.0"
10571 checksum: 10c0/1f064c66325cba6e494783bee4e635caa2655aad7f853a0e045d086e0bb7d83d2d6cdf1745dc9a7c7c93dacbf816fbee1f8d9179b02d5d01674d4f92541dc0d9
10572 languageName: node
10573 linkType: hard
10574
6184"is-number-object@npm:^1.0.4": 10575"is-number-object@npm:^1.0.4":
6185 version: 1.0.7 10576 version: 1.0.7
6186 resolution: "is-number-object@npm:1.0.7" 10577 resolution: "is-number-object@npm:1.0.7"
@@ -6204,13 +10595,66 @@ __metadata:
6204 languageName: node 10595 languageName: node
6205 linkType: hard 10596 linkType: hard
6206 10597
6207"is-path-inside@npm:^3.0.3": 10598"is-obj@npm:^2.0.0":
10599 version: 2.0.0
10600 resolution: "is-obj@npm:2.0.0"
10601 checksum: 10c0/85044ed7ba8bd169e2c2af3a178cacb92a97aa75de9569d02efef7f443a824b5e153eba72b9ae3aca6f8ce81955271aa2dc7da67a8b720575d3e38104208cb4e
10602 languageName: node
10603 linkType: hard
10604
10605"is-path-cwd@npm:^2.2.0":
10606 version: 2.2.0
10607 resolution: "is-path-cwd@npm:2.2.0"
10608 checksum: 10c0/afce71533a427a759cd0329301c18950333d7589533c2c90205bd3fdcf7b91eb92d1940493190567a433134d2128ec9325de2fd281e05be1920fbee9edd22e0a
10609 languageName: node
10610 linkType: hard
10611
10612"is-path-inside@npm:^3.0.2, is-path-inside@npm:^3.0.3":
6208 version: 3.0.3 10613 version: 3.0.3
6209 resolution: "is-path-inside@npm:3.0.3" 10614 resolution: "is-path-inside@npm:3.0.3"
6210 checksum: 10c0/cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05 10615 checksum: 10c0/cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05
6211 languageName: node 10616 languageName: node
6212 linkType: hard 10617 linkType: hard
6213 10618
10619"is-plain-obj@npm:^3.0.0":
10620 version: 3.0.0
10621 resolution: "is-plain-obj@npm:3.0.0"
10622 checksum: 10c0/8e6483bfb051d42ec9c704c0ede051a821c6b6f9a6c7a3e3b55aa855e00981b0580c8f3b1f5e2e62649b39179b1abfee35d6f8086d999bfaa32c1908d29b07bc
10623 languageName: node
10624 linkType: hard
10625
10626"is-plain-obj@npm:^4.0.0":
10627 version: 4.1.0
10628 resolution: "is-plain-obj@npm:4.1.0"
10629 checksum: 10c0/32130d651d71d9564dc88ba7e6fda0e91a1010a3694648e9f4f47bb6080438140696d3e3e15c741411d712e47ac9edc1a8a9de1fe76f3487b0d90be06ac9975e
10630 languageName: node
10631 linkType: hard
10632
10633"is-plain-object@npm:^2.0.4":
10634 version: 2.0.4
10635 resolution: "is-plain-object@npm:2.0.4"
10636 dependencies:
10637 isobject: "npm:^3.0.1"
10638 checksum: 10c0/f050fdd5203d9c81e8c4df1b3ff461c4bc64e8b5ca383bcdde46131361d0a678e80bcf00b5257646f6c636197629644d53bd8e2375aea633de09a82d57e942f4
10639 languageName: node
10640 linkType: hard
10641
10642"is-plain-object@npm:^5.0.0":
10643 version: 5.0.0
10644 resolution: "is-plain-object@npm:5.0.0"
10645 checksum: 10c0/893e42bad832aae3511c71fd61c0bf61aa3a6d853061c62a307261842727d0d25f761ce9379f7ba7226d6179db2a3157efa918e7fe26360f3bf0842d9f28942c
10646 languageName: node
10647 linkType: hard
10648
10649"is-reference@npm:^3.0.0":
10650 version: 3.0.2
10651 resolution: "is-reference@npm:3.0.2"
10652 dependencies:
10653 "@types/estree": "npm:*"
10654 checksum: 10c0/652d31b405e8e8269071cee78fe874b072745012eba202c6dc86880fd603a65ae043e3160990ab4a0a4b33567cbf662eecf3bc6b3c2c1550e6c2b6cf885ce5aa
10655 languageName: node
10656 linkType: hard
10657
6214"is-regex@npm:^1.1.4": 10658"is-regex@npm:^1.1.4":
6215 version: 1.1.4 10659 version: 1.1.4
6216 resolution: "is-regex@npm:1.1.4" 10660 resolution: "is-regex@npm:1.1.4"
@@ -6228,6 +10672,13 @@ __metadata:
6228 languageName: node 10672 languageName: node
6229 linkType: hard 10673 linkType: hard
6230 10674
10675"is-root@npm:^2.1.0":
10676 version: 2.1.0
10677 resolution: "is-root@npm:2.1.0"
10678 checksum: 10c0/83d3f5b052c3f28fbdbdf0d564bdd34fa14933f5694c78704f85cd1871255bc017fbe3fe2bc2fff2d227c6be5927ad2149b135c0a7c0060e7ac4e610d81a4f01
10679 languageName: node
10680 linkType: hard
10681
6231"is-set@npm:^2.0.1": 10682"is-set@npm:^2.0.1":
6232 version: 2.0.2 10683 version: 2.0.2
6233 resolution: "is-set@npm:2.0.2" 10684 resolution: "is-set@npm:2.0.2"
@@ -6278,6 +10729,13 @@ __metadata:
6278 languageName: node 10729 languageName: node
6279 linkType: hard 10730 linkType: hard
6280 10731
10732"is-typedarray@npm:^1.0.0":
10733 version: 1.0.0
10734 resolution: "is-typedarray@npm:1.0.0"
10735 checksum: 10c0/4c096275ba041a17a13cca33ac21c16bc4fd2d7d7eb94525e7cd2c2f2c1a3ab956e37622290642501ff4310601e413b675cf399ad6db49855527d2163b3eeeec
10736 languageName: node
10737 linkType: hard
10738
6281"is-weakmap@npm:^2.0.1": 10739"is-weakmap@npm:^2.0.1":
6282 version: 2.0.1 10740 version: 2.0.1
6283 resolution: "is-weakmap@npm:2.0.1" 10741 resolution: "is-weakmap@npm:2.0.1"
@@ -6304,6 +10762,29 @@ __metadata:
6304 languageName: node 10762 languageName: node
6305 linkType: hard 10763 linkType: hard
6306 10764
10765"is-wsl@npm:^2.2.0":
10766 version: 2.2.0
10767 resolution: "is-wsl@npm:2.2.0"
10768 dependencies:
10769 is-docker: "npm:^2.0.0"
10770 checksum: 10c0/a6fa2d370d21be487c0165c7a440d567274fbba1a817f2f0bfa41cc5e3af25041d84267baa22df66696956038a43973e72fca117918c91431920bdef490fa25e
10771 languageName: node
10772 linkType: hard
10773
10774"is-yarn-global@npm:^0.4.0":
10775 version: 0.4.1
10776 resolution: "is-yarn-global@npm:0.4.1"
10777 checksum: 10c0/8ff66f33454614f8e913ad91cc4de0d88d519a46c1ed41b3f589da79504ed0fcfa304064fe3096dda9360c5f35aa210cb8e978fd36798f3118cb66a4de64d365
10778 languageName: node
10779 linkType: hard
10780
10781"isarray@npm:0.0.1":
10782 version: 0.0.1
10783 resolution: "isarray@npm:0.0.1"
10784 checksum: 10c0/ed1e62da617f71fe348907c71743b5ed550448b455f8d269f89a7c7ddb8ae6e962de3dab6a74a237b06f5eb7f6ece7a45ada8ce96d87fe972926530f91ae3311
10785 languageName: node
10786 linkType: hard
10787
6307"isarray@npm:^2.0.5": 10788"isarray@npm:^2.0.5":
6308 version: 2.0.5 10789 version: 2.0.5
6309 resolution: "isarray@npm:2.0.5" 10790 resolution: "isarray@npm:2.0.5"
@@ -6311,6 +10792,13 @@ __metadata:
6311 languageName: node 10792 languageName: node
6312 linkType: hard 10793 linkType: hard
6313 10794
10795"isarray@npm:~1.0.0":
10796 version: 1.0.0
10797 resolution: "isarray@npm:1.0.0"
10798 checksum: 10c0/18b5be6669be53425f0b84098732670ed4e727e3af33bc7f948aac01782110eb9a18b3b329c5323bcdd3acdaae547ee077d3951317e7f133bff7105264b3003d
10799 languageName: node
10800 linkType: hard
10801
6314"isexe@npm:^2.0.0": 10802"isexe@npm:^2.0.0":
6315 version: 2.0.0 10803 version: 2.0.0
6316 resolution: "isexe@npm:2.0.0" 10804 resolution: "isexe@npm:2.0.0"
@@ -6318,6 +10806,13 @@ __metadata:
6318 languageName: node 10806 languageName: node
6319 linkType: hard 10807 linkType: hard
6320 10808
10809"isobject@npm:^3.0.1":
10810 version: 3.0.1
10811 resolution: "isobject@npm:3.0.1"
10812 checksum: 10c0/03344f5064a82f099a0cd1a8a407f4c0d20b7b8485e8e816c39f249e9416b06c322e8dec5b842b6bb8a06de0af9cb48e7bc1b5352f0fadc2f0abac033db3d4db
10813 languageName: node
10814 linkType: hard
10815
6321"isomorphic-fetch@npm:^3.0.0": 10816"isomorphic-fetch@npm:^3.0.0":
6322 version: 3.0.0 10817 version: 3.0.0
6323 resolution: "isomorphic-fetch@npm:3.0.0" 10818 resolution: "isomorphic-fetch@npm:3.0.0"
@@ -6368,6 +10863,20 @@ __metadata:
6368 languageName: node 10863 languageName: node
6369 linkType: hard 10864 linkType: hard
6370 10865
10866"jest-util@npm:^29.7.0":
10867 version: 29.7.0
10868 resolution: "jest-util@npm:29.7.0"
10869 dependencies:
10870 "@jest/types": "npm:^29.6.3"
10871 "@types/node": "npm:*"
10872 chalk: "npm:^4.0.0"
10873 ci-info: "npm:^3.2.0"
10874 graceful-fs: "npm:^4.2.9"
10875 picomatch: "npm:^2.2.3"
10876 checksum: 10c0/bc55a8f49fdbb8f51baf31d2a4f312fb66c9db1483b82f602c9c990e659cdd7ec529c8e916d5a89452ecbcfae4949b21b40a7a59d4ffc0cd813a973ab08c8150
10877 languageName: node
10878 linkType: hard
10879
6371"jest-worker@npm:^26.2.1": 10880"jest-worker@npm:^26.2.1":
6372 version: 26.6.2 10881 version: 26.6.2
6373 resolution: "jest-worker@npm:26.6.2" 10882 resolution: "jest-worker@npm:26.6.2"
@@ -6379,6 +10888,51 @@ __metadata:
6379 languageName: node 10888 languageName: node
6380 linkType: hard 10889 linkType: hard
6381 10890
10891"jest-worker@npm:^27.4.5":
10892 version: 27.5.1
10893 resolution: "jest-worker@npm:27.5.1"
10894 dependencies:
10895 "@types/node": "npm:*"
10896 merge-stream: "npm:^2.0.0"
10897 supports-color: "npm:^8.0.0"
10898 checksum: 10c0/8c4737ffd03887b3c6768e4cc3ca0269c0336c1e4b1b120943958ddb035ed2a0fc6acab6dc99631720a3720af4e708ff84fb45382ad1e83c27946adf3623969b
10899 languageName: node
10900 linkType: hard
10901
10902"jest-worker@npm:^29.1.2":
10903 version: 29.7.0
10904 resolution: "jest-worker@npm:29.7.0"
10905 dependencies:
10906 "@types/node": "npm:*"
10907 jest-util: "npm:^29.7.0"
10908 merge-stream: "npm:^2.0.0"
10909 supports-color: "npm:^8.0.0"
10910 checksum: 10c0/5570a3a005b16f46c131968b8a5b56d291f9bbb85ff4217e31c80bd8a02e7de799e59a54b95ca28d5c302f248b54cbffde2d177c2f0f52ffcee7504c6eabf660
10911 languageName: node
10912 linkType: hard
10913
10914"jiti@npm:^1.20.0":
10915 version: 1.21.0
10916 resolution: "jiti@npm:1.21.0"
10917 bin:
10918 jiti: bin/jiti.js
10919 checksum: 10c0/7f361219fe6c7a5e440d5f1dba4ab763a5538d2df8708cdc22561cf25ea3e44b837687931fca7cdd8cdd9f567300e90be989dd1321650045012d8f9ed6aab07f
10920 languageName: node
10921 linkType: hard
10922
10923"joi@npm:^17.9.2":
10924 version: 17.12.3
10925 resolution: "joi@npm:17.12.3"
10926 dependencies:
10927 "@hapi/hoek": "npm:^9.3.0"
10928 "@hapi/topo": "npm:^5.1.0"
10929 "@sideway/address": "npm:^4.1.5"
10930 "@sideway/formula": "npm:^3.0.1"
10931 "@sideway/pinpoint": "npm:^2.0.0"
10932 checksum: 10c0/818e51bd2d219339cff91f9d6fef8bab2da396e80a051cf73fb8ce7362c191af395bfa2d0e54eaa9c9cb8d5afafddb54eb768bc3068ab33908cbd5a1697e7d3e
10933 languageName: node
10934 linkType: hard
10935
6382"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": 10936"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0":
6383 version: 4.0.0 10937 version: 4.0.0
6384 resolution: "js-tokens@npm:4.0.0" 10938 resolution: "js-tokens@npm:4.0.0"
@@ -6386,6 +10940,18 @@ __metadata:
6386 languageName: node 10940 languageName: node
6387 linkType: hard 10941 linkType: hard
6388 10942
10943"js-yaml@npm:^3.13.1":
10944 version: 3.14.1
10945 resolution: "js-yaml@npm:3.14.1"
10946 dependencies:
10947 argparse: "npm:^1.0.7"
10948 esprima: "npm:^4.0.0"
10949 bin:
10950 js-yaml: bin/js-yaml.js
10951 checksum: 10c0/6746baaaeac312c4db8e75fa22331d9a04cccb7792d126ed8ce6a0bbcfef0cedaddd0c5098fade53db067c09fe00aa1c957674b4765610a8b06a5a189e46433b
10952 languageName: node
10953 linkType: hard
10954
6389"js-yaml@npm:^4.1.0": 10955"js-yaml@npm:^4.1.0":
6390 version: 4.1.0 10956 version: 4.1.0
6391 resolution: "js-yaml@npm:4.1.0" 10957 resolution: "js-yaml@npm:4.1.0"
@@ -6415,7 +10981,14 @@ __metadata:
6415 languageName: node 10981 languageName: node
6416 linkType: hard 10982 linkType: hard
6417 10983
6418"json-parse-even-better-errors@npm:^2.3.0": 10984"json-buffer@npm:3.0.1":
10985 version: 3.0.1
10986 resolution: "json-buffer@npm:3.0.1"
10987 checksum: 10c0/0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7
10988 languageName: node
10989 linkType: hard
10990
10991"json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1":
6419 version: 2.3.1 10992 version: 2.3.1
6420 resolution: "json-parse-even-better-errors@npm:2.3.1" 10993 resolution: "json-parse-even-better-errors@npm:2.3.1"
6421 checksum: 10c0/140932564c8f0b88455432e0f33c4cb4086b8868e37524e07e723f4eaedb9425bdc2bafd71bd1d9765bd15fd1e2d126972bc83990f55c467168c228c24d665f3 10994 checksum: 10c0/140932564c8f0b88455432e0f33c4cb4086b8868e37524e07e723f4eaedb9425bdc2bafd71bd1d9765bd15fd1e2d126972bc83990f55c467168c228c24d665f3
@@ -6461,7 +11034,7 @@ __metadata:
6461 languageName: node 11034 languageName: node
6462 linkType: hard 11035 linkType: hard
6463 11036
6464"json5@npm:^2.2.0, json5@npm:^2.2.2": 11037"json5@npm:^2.1.2, json5@npm:^2.2.0, json5@npm:^2.2.1, json5@npm:^2.2.3":
6465 version: 2.2.3 11038 version: 2.2.3
6466 resolution: "json5@npm:2.2.3" 11039 resolution: "json5@npm:2.2.3"
6467 bin: 11040 bin:
@@ -6527,6 +11100,29 @@ __metadata:
6527 languageName: node 11100 languageName: node
6528 linkType: hard 11101 linkType: hard
6529 11102
11103"keyv@npm:^4.5.3":
11104 version: 4.5.4
11105 resolution: "keyv@npm:4.5.4"
11106 dependencies:
11107 json-buffer: "npm:3.0.1"
11108 checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e
11109 languageName: node
11110 linkType: hard
11111
11112"kind-of@npm:^6.0.0, kind-of@npm:^6.0.2":
11113 version: 6.0.3
11114 resolution: "kind-of@npm:6.0.3"
11115 checksum: 10c0/61cdff9623dabf3568b6445e93e31376bee1cdb93f8ba7033d86022c2a9b1791a1d9510e026e6465ebd701a6dd2f7b0808483ad8838341ac52f003f512e0b4c4
11116 languageName: node
11117 linkType: hard
11118
11119"kleur@npm:^3.0.3":
11120 version: 3.0.3
11121 resolution: "kleur@npm:3.0.3"
11122 checksum: 10c0/cd3a0b8878e7d6d3799e54340efe3591ca787d9f95f109f28129bdd2915e37807bf8918bb295ab86afb8c82196beec5a1adcaf29042ce3f2bd932b038fe3aa4b
11123 languageName: node
11124 linkType: hard
11125
6530"language-subtag-registry@npm:^0.3.20": 11126"language-subtag-registry@npm:^0.3.20":
6531 version: 0.3.22 11127 version: 0.3.22
6532 resolution: "language-subtag-registry@npm:0.3.22" 11128 resolution: "language-subtag-registry@npm:0.3.22"
@@ -6543,6 +11139,25 @@ __metadata:
6543 languageName: node 11139 languageName: node
6544 linkType: hard 11140 linkType: hard
6545 11141
11142"latest-version@npm:^7.0.0":
11143 version: 7.0.0
11144 resolution: "latest-version@npm:7.0.0"
11145 dependencies:
11146 package-json: "npm:^8.1.0"
11147 checksum: 10c0/68045f5e419e005c12e595ae19687dd88317dd0108b83a8773197876622c7e9d164fe43aacca4f434b2cba105c92848b89277f658eabc5d50e81fb743bbcddb1
11148 languageName: node
11149 linkType: hard
11150
11151"launch-editor@npm:^2.6.0":
11152 version: 2.6.1
11153 resolution: "launch-editor@npm:2.6.1"
11154 dependencies:
11155 picocolors: "npm:^1.0.0"
11156 shell-quote: "npm:^1.8.1"
11157 checksum: 10c0/82d0bd9a44e7a972157719e63dac1b8196db6ec7066c1ec57a495f6c3d6e734f3c4da89549e7b33eb3b0356668ad02a9e7782b6733f5ebd7a61b7c5f635a3ee9
11158 languageName: node
11159 linkType: hard
11160
6546"leven@npm:^3.1.0": 11161"leven@npm:^3.1.0":
6547 version: 3.1.0 11162 version: 3.1.0
6548 resolution: "leven@npm:3.1.0" 11163 resolution: "leven@npm:3.1.0"
@@ -6560,6 +11175,13 @@ __metadata:
6560 languageName: node 11175 languageName: node
6561 linkType: hard 11176 linkType: hard
6562 11177
11178"lilconfig@npm:^2.0.3":
11179 version: 2.1.0
11180 resolution: "lilconfig@npm:2.1.0"
11181 checksum: 10c0/64645641aa8d274c99338e130554abd6a0190533c0d9eb2ce7ebfaf2e05c7d9961f3ffe2bfa39efd3b60c521ba3dd24fa236fe2775fc38501bf82bf49d4678b8
11182 languageName: node
11183 linkType: hard
11184
6563"lines-and-columns@npm:^1.1.6": 11185"lines-and-columns@npm:^1.1.6":
6564 version: 1.2.4 11186 version: 1.2.4
6565 resolution: "lines-and-columns@npm:1.2.4" 11187 resolution: "lines-and-columns@npm:1.2.4"
@@ -6567,6 +11189,50 @@ __metadata:
6567 languageName: node 11189 languageName: node
6568 linkType: hard 11190 linkType: hard
6569 11191
11192"loader-runner@npm:^4.2.0":
11193 version: 4.3.0
11194 resolution: "loader-runner@npm:4.3.0"
11195 checksum: 10c0/a44d78aae0907a72f73966fe8b82d1439c8c485238bd5a864b1b9a2a3257832effa858790241e6b37876b5446a78889adf2fcc8dd897ce54c089ecc0a0ce0bf0
11196 languageName: node
11197 linkType: hard
11198
11199"loader-utils@npm:^2.0.0":
11200 version: 2.0.4
11201 resolution: "loader-utils@npm:2.0.4"
11202 dependencies:
11203 big.js: "npm:^5.2.2"
11204 emojis-list: "npm:^3.0.0"
11205 json5: "npm:^2.1.2"
11206 checksum: 10c0/d5654a77f9d339ec2a03d88221a5a695f337bf71eb8dea031b3223420bb818964ba8ed0069145c19b095f6c8b8fd386e602a3fc7ca987042bd8bb1dcc90d7100
11207 languageName: node
11208 linkType: hard
11209
11210"loader-utils@npm:^3.2.0, loader-utils@npm:^3.2.1":
11211 version: 3.2.1
11212 resolution: "loader-utils@npm:3.2.1"
11213 checksum: 10c0/d3e1f217d160e8e894a0385a33500d4ce14065e8ffb250f5a81ae65bc2c3baa50625ec34182ba4417b46b4ac6725aed64429e1104d6401e074af2aa1dd018394
11214 languageName: node
11215 linkType: hard
11216
11217"locate-path@npm:^3.0.0":
11218 version: 3.0.0
11219 resolution: "locate-path@npm:3.0.0"
11220 dependencies:
11221 p-locate: "npm:^3.0.0"
11222 path-exists: "npm:^3.0.0"
11223 checksum: 10c0/3db394b7829a7fe2f4fbdd25d3c4689b85f003c318c5da4052c7e56eed697da8f1bce5294f685c69ff76e32cba7a33629d94396976f6d05fb7f4c755c5e2ae8b
11224 languageName: node
11225 linkType: hard
11226
11227"locate-path@npm:^5.0.0":
11228 version: 5.0.0
11229 resolution: "locate-path@npm:5.0.0"
11230 dependencies:
11231 p-locate: "npm:^4.1.0"
11232 checksum: 10c0/33a1c5247e87e022f9713e6213a744557a3e9ec32c5d0b5efb10aa3a38177615bf90221a5592674857039c1a0fd2063b82f285702d37b792d973e9e72ace6c59
11233 languageName: node
11234 linkType: hard
11235
6570"locate-path@npm:^6.0.0": 11236"locate-path@npm:^6.0.0":
6571 version: 6.0.0 11237 version: 6.0.0
6572 resolution: "locate-path@npm:6.0.0" 11238 resolution: "locate-path@npm:6.0.0"
@@ -6576,6 +11242,15 @@ __metadata:
6576 languageName: node 11242 languageName: node
6577 linkType: hard 11243 linkType: hard
6578 11244
11245"locate-path@npm:^7.1.0":
11246 version: 7.2.0
11247 resolution: "locate-path@npm:7.2.0"
11248 dependencies:
11249 p-locate: "npm:^6.0.0"
11250 checksum: 10c0/139e8a7fe11cfbd7f20db03923cacfa5db9e14fa14887ea121345597472b4a63c1a42a8a5187defeeff6acf98fd568da7382aa39682d38f0af27433953a97751
11251 languageName: node
11252 linkType: hard
11253
6579"lodash-es@npm:^4.17.21": 11254"lodash-es@npm:^4.17.21":
6580 version: 4.17.21 11255 version: 4.17.21
6581 resolution: "lodash-es@npm:4.17.21" 11256 resolution: "lodash-es@npm:4.17.21"
@@ -6590,6 +11265,13 @@ __metadata:
6590 languageName: node 11265 languageName: node
6591 linkType: hard 11266 linkType: hard
6592 11267
11268"lodash.memoize@npm:^4.1.2":
11269 version: 4.1.2
11270 resolution: "lodash.memoize@npm:4.1.2"
11271 checksum: 10c0/c8713e51eccc650422716a14cece1809cfe34bc5ab5e242b7f8b4e2241c2483697b971a604252807689b9dd69bfe3a98852e19a5b89d506b000b4187a1285df8
11272 languageName: node
11273 linkType: hard
11274
6593"lodash.merge@npm:^4.6.2": 11275"lodash.merge@npm:^4.6.2":
6594 version: 4.6.2 11276 version: 4.6.2
6595 resolution: "lodash.merge@npm:4.6.2" 11277 resolution: "lodash.merge@npm:4.6.2"
@@ -6604,6 +11286,13 @@ __metadata:
6604 languageName: node 11286 languageName: node
6605 linkType: hard 11287 linkType: hard
6606 11288
11289"lodash.uniq@npm:^4.5.0":
11290 version: 4.5.0
11291 resolution: "lodash.uniq@npm:4.5.0"
11292 checksum: 10c0/262d400bb0952f112162a320cc4a75dea4f66078b9e7e3075ffbc9c6aa30b3e9df3cf20e7da7d566105e1ccf7804e4fbd7d804eee0b53de05d83f16ffbf41c5e
11293 languageName: node
11294 linkType: hard
11295
6607"lodash@npm:^4.17.20, lodash@npm:^4.17.21": 11296"lodash@npm:^4.17.20, lodash@npm:^4.17.21":
6608 version: 4.17.21 11297 version: 4.17.21
6609 resolution: "lodash@npm:4.17.21" 11298 resolution: "lodash@npm:4.17.21"
@@ -6625,7 +11314,14 @@ __metadata:
6625 languageName: node 11314 languageName: node
6626 linkType: hard 11315 linkType: hard
6627 11316
6628"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": 11317"longest-streak@npm:^3.0.0":
11318 version: 3.1.0
11319 resolution: "longest-streak@npm:3.1.0"
11320 checksum: 10c0/7c2f02d0454b52834d1bcedef79c557bd295ee71fdabb02d041ff3aa9da48a90b5df7c0409156dedbc4df9b65da18742652aaea4759d6ece01f08971af6a7eaa
11321 languageName: node
11322 linkType: hard
11323
11324"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.2.0, loose-envify@npm:^1.3.1, loose-envify@npm:^1.4.0":
6629 version: 1.4.0 11325 version: 1.4.0
6630 resolution: "loose-envify@npm:1.4.0" 11326 resolution: "loose-envify@npm:1.4.0"
6631 dependencies: 11327 dependencies:
@@ -6645,6 +11341,13 @@ __metadata:
6645 languageName: node 11341 languageName: node
6646 linkType: hard 11342 linkType: hard
6647 11343
11344"lowercase-keys@npm:^3.0.0":
11345 version: 3.0.0
11346 resolution: "lowercase-keys@npm:3.0.0"
11347 checksum: 10c0/ef62b9fa5690ab0a6e4ef40c94efce68e3ed124f583cc3be38b26ff871da0178a28b9a84ce0c209653bb25ca135520ab87fea7cd411a54ac4899cb2f30501430
11348 languageName: node
11349 linkType: hard
11350
6648"lru-cache@npm:^5.1.1": 11351"lru-cache@npm:^5.1.1":
6649 version: 5.1.1 11352 version: 5.1.1
6650 resolution: "lru-cache@npm:5.1.1" 11353 resolution: "lru-cache@npm:5.1.1"
@@ -6686,6 +11389,15 @@ __metadata:
6686 languageName: node 11389 languageName: node
6687 linkType: hard 11390 linkType: hard
6688 11391
11392"make-dir@npm:^3.0.2, make-dir@npm:^3.1.0":
11393 version: 3.1.0
11394 resolution: "make-dir@npm:3.1.0"
11395 dependencies:
11396 semver: "npm:^6.0.0"
11397 checksum: 10c0/56aaafefc49c2dfef02c5c95f9b196c4eb6988040cf2c712185c7fe5c99b4091591a7fc4d4eafaaefa70ff763a26f6ab8c3ff60b9e75ea19876f49b18667ecaa
11398 languageName: node
11399 linkType: hard
11400
6689"make-fetch-happen@npm:^11.0.3": 11401"make-fetch-happen@npm:^11.0.3":
6690 version: 11.1.1 11402 version: 11.1.1
6691 resolution: "make-fetch-happen@npm:11.1.1" 11403 resolution: "make-fetch-happen@npm:11.1.1"
@@ -6709,6 +11421,303 @@ __metadata:
6709 languageName: node 11421 languageName: node
6710 linkType: hard 11422 linkType: hard
6711 11423
11424"markdown-extensions@npm:^2.0.0":
11425 version: 2.0.0
11426 resolution: "markdown-extensions@npm:2.0.0"
11427 checksum: 10c0/406139da2aa0d5ebad86195c8e8c02412f873c452b4c087ae7bc767af37956141be449998223bb379eea179b5fd38dfa610602b6f29c22ddab5d51e627a7e41d
11428 languageName: node
11429 linkType: hard
11430
11431"markdown-table@npm:^3.0.0":
11432 version: 3.0.3
11433 resolution: "markdown-table@npm:3.0.3"
11434 checksum: 10c0/47433a3f31e4637a184e38e873ab1d2fadfb0106a683d466fec329e99a2d8dfa09f091fa42202c6f13ec94aef0199f449a684b28042c636f2edbc1b7e1811dcd
11435 languageName: node
11436 linkType: hard
11437
11438"mdast-util-directive@npm:^3.0.0":
11439 version: 3.0.0
11440 resolution: "mdast-util-directive@npm:3.0.0"
11441 dependencies:
11442 "@types/mdast": "npm:^4.0.0"
11443 "@types/unist": "npm:^3.0.0"
11444 devlop: "npm:^1.0.0"
11445 mdast-util-from-markdown: "npm:^2.0.0"
11446 mdast-util-to-markdown: "npm:^2.0.0"
11447 parse-entities: "npm:^4.0.0"
11448 stringify-entities: "npm:^4.0.0"
11449 unist-util-visit-parents: "npm:^6.0.0"
11450 checksum: 10c0/4a71b27f5f0c4ead5293a12d4118d4d832951ac0efdeba4af2dd78f5679f9cabee80feb3619f219a33674c12df3780def1bd3150d7298aaf0ef734f0dfbab999
11451 languageName: node
11452 linkType: hard
11453
11454"mdast-util-find-and-replace@npm:^3.0.0, mdast-util-find-and-replace@npm:^3.0.1":
11455 version: 3.0.1
11456 resolution: "mdast-util-find-and-replace@npm:3.0.1"
11457 dependencies:
11458 "@types/mdast": "npm:^4.0.0"
11459 escape-string-regexp: "npm:^5.0.0"
11460 unist-util-is: "npm:^6.0.0"
11461 unist-util-visit-parents: "npm:^6.0.0"
11462 checksum: 10c0/1faca98c4ee10a919f23b8cc6d818e5bb6953216a71dfd35f51066ed5d51ef86e5063b43dcfdc6061cd946e016a9f0d44a1dccadd58452cf4ed14e39377f00cb
11463 languageName: node
11464 linkType: hard
11465
11466"mdast-util-from-markdown@npm:^2.0.0":
11467 version: 2.0.0
11468 resolution: "mdast-util-from-markdown@npm:2.0.0"
11469 dependencies:
11470 "@types/mdast": "npm:^4.0.0"
11471 "@types/unist": "npm:^3.0.0"
11472 decode-named-character-reference: "npm:^1.0.0"
11473 devlop: "npm:^1.0.0"
11474 mdast-util-to-string: "npm:^4.0.0"
11475 micromark: "npm:^4.0.0"
11476 micromark-util-decode-numeric-character-reference: "npm:^2.0.0"
11477 micromark-util-decode-string: "npm:^2.0.0"
11478 micromark-util-normalize-identifier: "npm:^2.0.0"
11479 micromark-util-symbol: "npm:^2.0.0"
11480 micromark-util-types: "npm:^2.0.0"
11481 unist-util-stringify-position: "npm:^4.0.0"
11482 checksum: 10c0/fb66e917f66e33fc60d6964264c4abd519fd8829a4a58ff9c61b2ba5c337554fb954b9ec31ca1c34e83c1163a73f310c39072d656f9a2d3184fe39c87cbba65a
11483 languageName: node
11484 linkType: hard
11485
11486"mdast-util-frontmatter@npm:^2.0.0":
11487 version: 2.0.1
11488 resolution: "mdast-util-frontmatter@npm:2.0.1"
11489 dependencies:
11490 "@types/mdast": "npm:^4.0.0"
11491 devlop: "npm:^1.0.0"
11492 escape-string-regexp: "npm:^5.0.0"
11493 mdast-util-from-markdown: "npm:^2.0.0"
11494 mdast-util-to-markdown: "npm:^2.0.0"
11495 micromark-extension-frontmatter: "npm:^2.0.0"
11496 checksum: 10c0/d9b0b70dd9c574cc0220d4e05dd8e9d86ac972a6a5af9e0c49c839b31cb750d4313445cfbbdf9264a7fbe3f8c8d920b45358b8500f4286e6b9dc830095b25b9a
11497 languageName: node
11498 linkType: hard
11499
11500"mdast-util-gfm-autolink-literal@npm:^2.0.0":
11501 version: 2.0.0
11502 resolution: "mdast-util-gfm-autolink-literal@npm:2.0.0"
11503 dependencies:
11504 "@types/mdast": "npm:^4.0.0"
11505 ccount: "npm:^2.0.0"
11506 devlop: "npm:^1.0.0"
11507 mdast-util-find-and-replace: "npm:^3.0.0"
11508 micromark-util-character: "npm:^2.0.0"
11509 checksum: 10c0/821ef91db108f05b321c54fdf4436df9d6badb33e18f714d8d52c0e70f988f5b6b118cdd4d607b4cb3bef1718304ce7e9fb25fa580622c3d20d68c1489c64875
11510 languageName: node
11511 linkType: hard
11512
11513"mdast-util-gfm-footnote@npm:^2.0.0":
11514 version: 2.0.0
11515 resolution: "mdast-util-gfm-footnote@npm:2.0.0"
11516 dependencies:
11517 "@types/mdast": "npm:^4.0.0"
11518 devlop: "npm:^1.1.0"
11519 mdast-util-from-markdown: "npm:^2.0.0"
11520 mdast-util-to-markdown: "npm:^2.0.0"
11521 micromark-util-normalize-identifier: "npm:^2.0.0"
11522 checksum: 10c0/c673b22bea24740235e74cfd66765b41a2fa540334f7043fa934b94938b06b7d3c93f2d3b33671910c5492b922c0cc98be833be3b04cfed540e0679650a6d2de
11523 languageName: node
11524 linkType: hard
11525
11526"mdast-util-gfm-strikethrough@npm:^2.0.0":
11527 version: 2.0.0
11528 resolution: "mdast-util-gfm-strikethrough@npm:2.0.0"
11529 dependencies:
11530 "@types/mdast": "npm:^4.0.0"
11531 mdast-util-from-markdown: "npm:^2.0.0"
11532 mdast-util-to-markdown: "npm:^2.0.0"
11533 checksum: 10c0/b053e93d62c7545019bd914271ea9e5667ad3b3b57d16dbf68e56fea39a7e19b4a345e781312714eb3d43fdd069ff7ee22a3ca7f6149dfa774554f19ce3ac056
11534 languageName: node
11535 linkType: hard
11536
11537"mdast-util-gfm-table@npm:^2.0.0":
11538 version: 2.0.0
11539 resolution: "mdast-util-gfm-table@npm:2.0.0"
11540 dependencies:
11541 "@types/mdast": "npm:^4.0.0"
11542 devlop: "npm:^1.0.0"
11543 markdown-table: "npm:^3.0.0"
11544 mdast-util-from-markdown: "npm:^2.0.0"
11545 mdast-util-to-markdown: "npm:^2.0.0"
11546 checksum: 10c0/128af47c503a53bd1c79f20642561e54a510ad5e2db1e418d28fefaf1294ab839e6c838e341aef5d7e404f9170b9ca3d1d89605f234efafde93ee51174a6e31e
11547 languageName: node
11548 linkType: hard
11549
11550"mdast-util-gfm-task-list-item@npm:^2.0.0":
11551 version: 2.0.0
11552 resolution: "mdast-util-gfm-task-list-item@npm:2.0.0"
11553 dependencies:
11554 "@types/mdast": "npm:^4.0.0"
11555 devlop: "npm:^1.0.0"
11556 mdast-util-from-markdown: "npm:^2.0.0"
11557 mdast-util-to-markdown: "npm:^2.0.0"
11558 checksum: 10c0/258d725288482b636c0a376c296431390c14b4f29588675297cb6580a8598ed311fc73ebc312acfca12cc8546f07a3a285a53a3b082712e2cbf5c190d677d834
11559 languageName: node
11560 linkType: hard
11561
11562"mdast-util-gfm@npm:^3.0.0":
11563 version: 3.0.0
11564 resolution: "mdast-util-gfm@npm:3.0.0"
11565 dependencies:
11566 mdast-util-from-markdown: "npm:^2.0.0"
11567 mdast-util-gfm-autolink-literal: "npm:^2.0.0"
11568 mdast-util-gfm-footnote: "npm:^2.0.0"
11569 mdast-util-gfm-strikethrough: "npm:^2.0.0"
11570 mdast-util-gfm-table: "npm:^2.0.0"
11571 mdast-util-gfm-task-list-item: "npm:^2.0.0"
11572 mdast-util-to-markdown: "npm:^2.0.0"
11573 checksum: 10c0/91596fe9bf3e4a0c546d0c57f88106c17956d9afbe88ceb08308e4da2388aff64489d649ddad599caecfdf755fc3ae4c9b82c219b85281bc0586b67599881fca
11574 languageName: node
11575 linkType: hard
11576
11577"mdast-util-mdx-expression@npm:^2.0.0":
11578 version: 2.0.0
11579 resolution: "mdast-util-mdx-expression@npm:2.0.0"
11580 dependencies:
11581 "@types/estree-jsx": "npm:^1.0.0"
11582 "@types/hast": "npm:^3.0.0"
11583 "@types/mdast": "npm:^4.0.0"
11584 devlop: "npm:^1.0.0"
11585 mdast-util-from-markdown: "npm:^2.0.0"
11586 mdast-util-to-markdown: "npm:^2.0.0"
11587 checksum: 10c0/512848cbc44b9dc7cffc1bb3f95f7e67f0d6562870e56a67d25647f475d411e136b915ba417c8069fb36eac1839d0209fb05fb323d377f35626a82fcb0879363
11588 languageName: node
11589 linkType: hard
11590
11591"mdast-util-mdx-jsx@npm:^3.0.0":
11592 version: 3.1.2
11593 resolution: "mdast-util-mdx-jsx@npm:3.1.2"
11594 dependencies:
11595 "@types/estree-jsx": "npm:^1.0.0"
11596 "@types/hast": "npm:^3.0.0"
11597 "@types/mdast": "npm:^4.0.0"
11598 "@types/unist": "npm:^3.0.0"
11599 ccount: "npm:^2.0.0"
11600 devlop: "npm:^1.1.0"
11601 mdast-util-from-markdown: "npm:^2.0.0"
11602 mdast-util-to-markdown: "npm:^2.0.0"
11603 parse-entities: "npm:^4.0.0"
11604 stringify-entities: "npm:^4.0.0"
11605 unist-util-remove-position: "npm:^5.0.0"
11606 unist-util-stringify-position: "npm:^4.0.0"
11607 vfile-message: "npm:^4.0.0"
11608 checksum: 10c0/855b60c3db9bde2fe142bd366597f7bd5892fc288428ba054e26ffcffc07bfe5648c0792d614ba6e08b1eab9784ffc3c1267cf29dfc6db92b419d68b5bcd487d
11609 languageName: node
11610 linkType: hard
11611
11612"mdast-util-mdx@npm:^3.0.0":
11613 version: 3.0.0
11614 resolution: "mdast-util-mdx@npm:3.0.0"
11615 dependencies:
11616 mdast-util-from-markdown: "npm:^2.0.0"
11617 mdast-util-mdx-expression: "npm:^2.0.0"
11618 mdast-util-mdx-jsx: "npm:^3.0.0"
11619 mdast-util-mdxjs-esm: "npm:^2.0.0"
11620 mdast-util-to-markdown: "npm:^2.0.0"
11621 checksum: 10c0/4faea13f77d6bc9aa64ee41a5e4779110b73444a17fda363df6ebe880ecfa58b321155b71f8801c3faa6d70d6222a32a00cbd6dbf5fad8db417f4688bc9c74e1
11622 languageName: node
11623 linkType: hard
11624
11625"mdast-util-mdxjs-esm@npm:^2.0.0":
11626 version: 2.0.1
11627 resolution: "mdast-util-mdxjs-esm@npm:2.0.1"
11628 dependencies:
11629 "@types/estree-jsx": "npm:^1.0.0"
11630 "@types/hast": "npm:^3.0.0"
11631 "@types/mdast": "npm:^4.0.0"
11632 devlop: "npm:^1.0.0"
11633 mdast-util-from-markdown: "npm:^2.0.0"
11634 mdast-util-to-markdown: "npm:^2.0.0"
11635 checksum: 10c0/5bda92fc154141705af2b804a534d891f28dac6273186edf1a4c5e3f045d5b01dbcac7400d27aaf91b7e76e8dce007c7b2fdf136c11ea78206ad00bdf9db46bc
11636 languageName: node
11637 linkType: hard
11638
11639"mdast-util-phrasing@npm:^4.0.0":
11640 version: 4.1.0
11641 resolution: "mdast-util-phrasing@npm:4.1.0"
11642 dependencies:
11643 "@types/mdast": "npm:^4.0.0"
11644 unist-util-is: "npm:^6.0.0"
11645 checksum: 10c0/bf6c31d51349aa3d74603d5e5a312f59f3f65662ed16c58017169a5fb0f84ca98578f626c5ee9e4aa3e0a81c996db8717096705521bddb4a0185f98c12c9b42f
11646 languageName: node
11647 linkType: hard
11648
11649"mdast-util-to-hast@npm:^13.0.0":
11650 version: 13.1.0
11651 resolution: "mdast-util-to-hast@npm:13.1.0"
11652 dependencies:
11653 "@types/hast": "npm:^3.0.0"
11654 "@types/mdast": "npm:^4.0.0"
11655 "@ungap/structured-clone": "npm:^1.0.0"
11656 devlop: "npm:^1.0.0"
11657 micromark-util-sanitize-uri: "npm:^2.0.0"
11658 trim-lines: "npm:^3.0.0"
11659 unist-util-position: "npm:^5.0.0"
11660 unist-util-visit: "npm:^5.0.0"
11661 vfile: "npm:^6.0.0"
11662 checksum: 10c0/a2b761bfae37b7eb6039e25ca2d3c4dc2f190cdef6b00e404e885d749ecc7f0ce6149f39130bdb02e122785c662eeb84dd1ac999ce3c311ffafe32ecf950071b
11663 languageName: node
11664 linkType: hard
11665
11666"mdast-util-to-markdown@npm:^2.0.0":
11667 version: 2.1.0
11668 resolution: "mdast-util-to-markdown@npm:2.1.0"
11669 dependencies:
11670 "@types/mdast": "npm:^4.0.0"
11671 "@types/unist": "npm:^3.0.0"
11672 longest-streak: "npm:^3.0.0"
11673 mdast-util-phrasing: "npm:^4.0.0"
11674 mdast-util-to-string: "npm:^4.0.0"
11675 micromark-util-decode-string: "npm:^2.0.0"
11676 unist-util-visit: "npm:^5.0.0"
11677 zwitch: "npm:^2.0.0"
11678 checksum: 10c0/8bd37a9627a438ef6418d6642661904d0cc03c5c732b8b018a8e238ef5cc82fe8aef1940b19c6f563245e58b9659f35e527209bd3fe145f3c723ba14d18fc3e6
11679 languageName: node
11680 linkType: hard
11681
11682"mdast-util-to-string@npm:^4.0.0":
11683 version: 4.0.0
11684 resolution: "mdast-util-to-string@npm:4.0.0"
11685 dependencies:
11686 "@types/mdast": "npm:^4.0.0"
11687 checksum: 10c0/2d3c1af29bf3fe9c20f552ee9685af308002488f3b04b12fa66652c9718f66f41a32f8362aa2d770c3ff464c034860b41715902ada2306bb0a055146cef064d7
11688 languageName: node
11689 linkType: hard
11690
11691"mdn-data@npm:2.0.14":
11692 version: 2.0.14
11693 resolution: "mdn-data@npm:2.0.14"
11694 checksum: 10c0/67241f8708c1e665a061d2b042d2d243366e93e5bf1f917693007f6d55111588b952dcbfd3ea9c2d0969fb754aad81b30fdcfdcc24546495fc3b24336b28d4bd
11695 languageName: node
11696 linkType: hard
11697
11698"media-typer@npm:0.3.0":
11699 version: 0.3.0
11700 resolution: "media-typer@npm:0.3.0"
11701 checksum: 10c0/d160f31246907e79fed398470285f21bafb45a62869dc469b1c8877f3f064f5eabc4bcc122f9479b8b605bc5c76187d7871cf84c4ee3ecd3e487da1993279928
11702 languageName: node
11703 linkType: hard
11704
11705"memfs@npm:^3.1.2, memfs@npm:^3.4.3":
11706 version: 3.5.3
11707 resolution: "memfs@npm:3.5.3"
11708 dependencies:
11709 fs-monkey: "npm:^1.0.4"
11710 checksum: 10c0/038fc81bce17ea92dde15aaa68fa0fdaf4960c721ce3ffc7c2cb87a259333f5159784ea48b3b72bf9e054254d9d0d0d5209d0fdc3d07d08653a09933b168fbd7
11711 languageName: node
11712 linkType: hard
11713
11714"merge-descriptors@npm:1.0.1":
11715 version: 1.0.1
11716 resolution: "merge-descriptors@npm:1.0.1"
11717 checksum: 10c0/b67d07bd44cfc45cebdec349bb6e1f7b077ee2fd5beb15d1f7af073849208cb6f144fe403e29a36571baf3f4e86469ac39acf13c318381e958e186b2766f54ec
11718 languageName: node
11719 linkType: hard
11720
6712"merge-stream@npm:^2.0.0": 11721"merge-stream@npm:^2.0.0":
6713 version: 2.0.0 11722 version: 2.0.0
6714 resolution: "merge-stream@npm:2.0.0" 11723 resolution: "merge-stream@npm:2.0.0"
@@ -6723,7 +11732,512 @@ __metadata:
6723 languageName: node 11732 languageName: node
6724 linkType: hard 11733 linkType: hard
6725 11734
6726"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": 11735"methods@npm:~1.1.2":
11736 version: 1.1.2
11737 resolution: "methods@npm:1.1.2"
11738 checksum: 10c0/bdf7cc72ff0a33e3eede03708c08983c4d7a173f91348b4b1e4f47d4cdbf734433ad971e7d1e8c77247d9e5cd8adb81ea4c67b0a2db526b758b2233d7814b8b2
11739 languageName: node
11740 linkType: hard
11741
11742"micromark-core-commonmark@npm:^2.0.0":
11743 version: 2.0.0
11744 resolution: "micromark-core-commonmark@npm:2.0.0"
11745 dependencies:
11746 decode-named-character-reference: "npm:^1.0.0"
11747 devlop: "npm:^1.0.0"
11748 micromark-factory-destination: "npm:^2.0.0"
11749 micromark-factory-label: "npm:^2.0.0"
11750 micromark-factory-space: "npm:^2.0.0"
11751 micromark-factory-title: "npm:^2.0.0"
11752 micromark-factory-whitespace: "npm:^2.0.0"
11753 micromark-util-character: "npm:^2.0.0"
11754 micromark-util-chunked: "npm:^2.0.0"
11755 micromark-util-classify-character: "npm:^2.0.0"
11756 micromark-util-html-tag-name: "npm:^2.0.0"
11757 micromark-util-normalize-identifier: "npm:^2.0.0"
11758 micromark-util-resolve-all: "npm:^2.0.0"
11759 micromark-util-subtokenize: "npm:^2.0.0"
11760 micromark-util-symbol: "npm:^2.0.0"
11761 micromark-util-types: "npm:^2.0.0"
11762 checksum: 10c0/e087824b98d1f1d0db34791ac53945b0d68fb5e541c6c9da6700cc3db54d6b697d8110d3120d5d30e2fb39443aabddccd3e2bbf684795359f38b5a696fdc5913
11763 languageName: node
11764 linkType: hard
11765
11766"micromark-extension-directive@npm:^3.0.0":
11767 version: 3.0.0
11768 resolution: "micromark-extension-directive@npm:3.0.0"
11769 dependencies:
11770 devlop: "npm:^1.0.0"
11771 micromark-factory-space: "npm:^2.0.0"
11772 micromark-factory-whitespace: "npm:^2.0.0"
11773 micromark-util-character: "npm:^2.0.0"
11774 micromark-util-symbol: "npm:^2.0.0"
11775 micromark-util-types: "npm:^2.0.0"
11776 parse-entities: "npm:^4.0.0"
11777 checksum: 10c0/ee84ecb445fb9f94bf36bf8f0dfd2c81b3fb5f46c275b9ac4445b9a0030a1ccbc3174707321b5512116f482e3a1fc8f0541ccaf57f924999f48141818f05595e
11778 languageName: node
11779 linkType: hard
11780
11781"micromark-extension-frontmatter@npm:^2.0.0":
11782 version: 2.0.0
11783 resolution: "micromark-extension-frontmatter@npm:2.0.0"
11784 dependencies:
11785 fault: "npm:^2.0.0"
11786 micromark-util-character: "npm:^2.0.0"
11787 micromark-util-symbol: "npm:^2.0.0"
11788 micromark-util-types: "npm:^2.0.0"
11789 checksum: 10c0/7d0d876e598917a67146d29f536d6fbbf9d1b2401a77e2f64a3f80f934a63ff26fa94b01759c9185c24b2a91e4e6abf908fa7aa246f00a7778a6b37a17464300
11790 languageName: node
11791 linkType: hard
11792
11793"micromark-extension-gfm-autolink-literal@npm:^2.0.0":
11794 version: 2.0.0
11795 resolution: "micromark-extension-gfm-autolink-literal@npm:2.0.0"
11796 dependencies:
11797 micromark-util-character: "npm:^2.0.0"
11798 micromark-util-sanitize-uri: "npm:^2.0.0"
11799 micromark-util-symbol: "npm:^2.0.0"
11800 micromark-util-types: "npm:^2.0.0"
11801 checksum: 10c0/9349b8a4c45ad6375d85f196ef6ffc7472311bf0e7493dc387cb6e37498c2fa56f0b670f54ae54f0c6bbbed3b22997643f05057ffcc58457ca56368f7a636319
11802 languageName: node
11803 linkType: hard
11804
11805"micromark-extension-gfm-footnote@npm:^2.0.0":
11806 version: 2.0.0
11807 resolution: "micromark-extension-gfm-footnote@npm:2.0.0"
11808 dependencies:
11809 devlop: "npm:^1.0.0"
11810 micromark-core-commonmark: "npm:^2.0.0"
11811 micromark-factory-space: "npm:^2.0.0"
11812 micromark-util-character: "npm:^2.0.0"
11813 micromark-util-normalize-identifier: "npm:^2.0.0"
11814 micromark-util-sanitize-uri: "npm:^2.0.0"
11815 micromark-util-symbol: "npm:^2.0.0"
11816 micromark-util-types: "npm:^2.0.0"
11817 checksum: 10c0/59958d8a6e28a16470937de69a01476cd9766f310a892655cb6bcd32b0833ffaa8accddb77e031b1c710c856fc943174e1b0f8f2c60dfa542743f4ba7cff6f15
11818 languageName: node
11819 linkType: hard
11820
11821"micromark-extension-gfm-strikethrough@npm:^2.0.0":
11822 version: 2.0.0
11823 resolution: "micromark-extension-gfm-strikethrough@npm:2.0.0"
11824 dependencies:
11825 devlop: "npm:^1.0.0"
11826 micromark-util-chunked: "npm:^2.0.0"
11827 micromark-util-classify-character: "npm:^2.0.0"
11828 micromark-util-resolve-all: "npm:^2.0.0"
11829 micromark-util-symbol: "npm:^2.0.0"
11830 micromark-util-types: "npm:^2.0.0"
11831 checksum: 10c0/b1c4f0e12935e1ffa3981a256de38c5c347f91a015cc1002c0bcdbab476fa97a5992f0d5a9788b2437a96bc94fe4c32d5f539d84b2d699a36dafe31b81b41eb1
11832 languageName: node
11833 linkType: hard
11834
11835"micromark-extension-gfm-table@npm:^2.0.0":
11836 version: 2.0.0
11837 resolution: "micromark-extension-gfm-table@npm:2.0.0"
11838 dependencies:
11839 devlop: "npm:^1.0.0"
11840 micromark-factory-space: "npm:^2.0.0"
11841 micromark-util-character: "npm:^2.0.0"
11842 micromark-util-symbol: "npm:^2.0.0"
11843 micromark-util-types: "npm:^2.0.0"
11844 checksum: 10c0/3777b5074054d97888ffdcb8e383399adc9066a755ad7197423fda16e09769a18d7e713d969c204228d9abf1e18fef19c7b04790698afc973418ea5f75015f72
11845 languageName: node
11846 linkType: hard
11847
11848"micromark-extension-gfm-tagfilter@npm:^2.0.0":
11849 version: 2.0.0
11850 resolution: "micromark-extension-gfm-tagfilter@npm:2.0.0"
11851 dependencies:
11852 micromark-util-types: "npm:^2.0.0"
11853 checksum: 10c0/995558843fff137ae4e46aecb878d8a4691cdf23527dcf1e2f0157d66786be9f7bea0109c52a8ef70e68e3f930af811828ba912239438e31a9cfb9981f44d34d
11854 languageName: node
11855 linkType: hard
11856
11857"micromark-extension-gfm-task-list-item@npm:^2.0.0":
11858 version: 2.0.1
11859 resolution: "micromark-extension-gfm-task-list-item@npm:2.0.1"
11860 dependencies:
11861 devlop: "npm:^1.0.0"
11862 micromark-factory-space: "npm:^2.0.0"
11863 micromark-util-character: "npm:^2.0.0"
11864 micromark-util-symbol: "npm:^2.0.0"
11865 micromark-util-types: "npm:^2.0.0"
11866 checksum: 10c0/16a55040a1697339eeeeebaabbbe28dc9e8281979cdeec343a58dc97f7b447365d3e37329f394455c5d17902639b786c7669dbbc4ea558cf8680eb7808330598
11867 languageName: node
11868 linkType: hard
11869
11870"micromark-extension-gfm@npm:^3.0.0":
11871 version: 3.0.0
11872 resolution: "micromark-extension-gfm@npm:3.0.0"
11873 dependencies:
11874 micromark-extension-gfm-autolink-literal: "npm:^2.0.0"
11875 micromark-extension-gfm-footnote: "npm:^2.0.0"
11876 micromark-extension-gfm-strikethrough: "npm:^2.0.0"
11877 micromark-extension-gfm-table: "npm:^2.0.0"
11878 micromark-extension-gfm-tagfilter: "npm:^2.0.0"
11879 micromark-extension-gfm-task-list-item: "npm:^2.0.0"
11880 micromark-util-combine-extensions: "npm:^2.0.0"
11881 micromark-util-types: "npm:^2.0.0"
11882 checksum: 10c0/970e28df6ebdd7c7249f52a0dda56e0566fbfa9ae56c8eeeb2445d77b6b89d44096880cd57a1c01e7821b1f4e31009109fbaca4e89731bff7b83b8519690e5d9
11883 languageName: node
11884 linkType: hard
11885
11886"micromark-extension-mdx-expression@npm:^3.0.0":
11887 version: 3.0.0
11888 resolution: "micromark-extension-mdx-expression@npm:3.0.0"
11889 dependencies:
11890 "@types/estree": "npm:^1.0.0"
11891 devlop: "npm:^1.0.0"
11892 micromark-factory-mdx-expression: "npm:^2.0.0"
11893 micromark-factory-space: "npm:^2.0.0"
11894 micromark-util-character: "npm:^2.0.0"
11895 micromark-util-events-to-acorn: "npm:^2.0.0"
11896 micromark-util-symbol: "npm:^2.0.0"
11897 micromark-util-types: "npm:^2.0.0"
11898 checksum: 10c0/fa799c594d8ff9ecbbd28e226959c4928590cfcddb60a926d9d859d00fc7acd25684b6f78dbe6a7f0830879a402b4a3628efd40bb9df1f5846e6d2b7332715f7
11899 languageName: node
11900 linkType: hard
11901
11902"micromark-extension-mdx-jsx@npm:^3.0.0":
11903 version: 3.0.0
11904 resolution: "micromark-extension-mdx-jsx@npm:3.0.0"
11905 dependencies:
11906 "@types/acorn": "npm:^4.0.0"
11907 "@types/estree": "npm:^1.0.0"
11908 devlop: "npm:^1.0.0"
11909 estree-util-is-identifier-name: "npm:^3.0.0"
11910 micromark-factory-mdx-expression: "npm:^2.0.0"
11911 micromark-factory-space: "npm:^2.0.0"
11912 micromark-util-character: "npm:^2.0.0"
11913 micromark-util-symbol: "npm:^2.0.0"
11914 micromark-util-types: "npm:^2.0.0"
11915 vfile-message: "npm:^4.0.0"
11916 checksum: 10c0/18a81c8def7f3a2088dc435bba19e649c19f679464b1a01e2c680f9518820e70fb0974b8403c790aee8f44205833a280b56ba157fe5a5b2903b476c5de5ba353
11917 languageName: node
11918 linkType: hard
11919
11920"micromark-extension-mdx-md@npm:^2.0.0":
11921 version: 2.0.0
11922 resolution: "micromark-extension-mdx-md@npm:2.0.0"
11923 dependencies:
11924 micromark-util-types: "npm:^2.0.0"
11925 checksum: 10c0/bae91c61273de0e5ba80a980c03470e6cd9d7924aa936f46fbda15d780704d9386e945b99eda200e087b96254fbb4271a9545d5ce02676cd6ae67886a8bf82df
11926 languageName: node
11927 linkType: hard
11928
11929"micromark-extension-mdxjs-esm@npm:^3.0.0":
11930 version: 3.0.0
11931 resolution: "micromark-extension-mdxjs-esm@npm:3.0.0"
11932 dependencies:
11933 "@types/estree": "npm:^1.0.0"
11934 devlop: "npm:^1.0.0"
11935 micromark-core-commonmark: "npm:^2.0.0"
11936 micromark-util-character: "npm:^2.0.0"
11937 micromark-util-events-to-acorn: "npm:^2.0.0"
11938 micromark-util-symbol: "npm:^2.0.0"
11939 micromark-util-types: "npm:^2.0.0"
11940 unist-util-position-from-estree: "npm:^2.0.0"
11941 vfile-message: "npm:^4.0.0"
11942 checksum: 10c0/13e3f726495a960650cdedcba39198ace5bdc953ccb12c14d71fc9ed9bb88e40cc3ba9231e973f6984da3b3573e7ddb23ce409f7c16f52a8d57b608bf46c748d
11943 languageName: node
11944 linkType: hard
11945
11946"micromark-extension-mdxjs@npm:^3.0.0":
11947 version: 3.0.0
11948 resolution: "micromark-extension-mdxjs@npm:3.0.0"
11949 dependencies:
11950 acorn: "npm:^8.0.0"
11951 acorn-jsx: "npm:^5.0.0"
11952 micromark-extension-mdx-expression: "npm:^3.0.0"
11953 micromark-extension-mdx-jsx: "npm:^3.0.0"
11954 micromark-extension-mdx-md: "npm:^2.0.0"
11955 micromark-extension-mdxjs-esm: "npm:^3.0.0"
11956 micromark-util-combine-extensions: "npm:^2.0.0"
11957 micromark-util-types: "npm:^2.0.0"
11958 checksum: 10c0/fd84f036ddad0aabbc12e7f1b3e9dcfe31573bbc413c5ae903779ef0366d7a4c08193547e7ba75718c9f45654e45f52e575cfc2f23a5f89205a8a70d9a506aea
11959 languageName: node
11960 linkType: hard
11961
11962"micromark-factory-destination@npm:^2.0.0":
11963 version: 2.0.0
11964 resolution: "micromark-factory-destination@npm:2.0.0"
11965 dependencies:
11966 micromark-util-character: "npm:^2.0.0"
11967 micromark-util-symbol: "npm:^2.0.0"
11968 micromark-util-types: "npm:^2.0.0"
11969 checksum: 10c0/b73492f687d41a6a379159c2f3acbf813042346bcea523d9041d0cc6124e6715f0779dbb2a0b3422719e9764c3b09f9707880aa159557e3cb4aeb03b9d274915
11970 languageName: node
11971 linkType: hard
11972
11973"micromark-factory-label@npm:^2.0.0":
11974 version: 2.0.0
11975 resolution: "micromark-factory-label@npm:2.0.0"
11976 dependencies:
11977 devlop: "npm:^1.0.0"
11978 micromark-util-character: "npm:^2.0.0"
11979 micromark-util-symbol: "npm:^2.0.0"
11980 micromark-util-types: "npm:^2.0.0"
11981 checksum: 10c0/8ffad00487a7891941b1d1f51d53a33c7a659dcf48617edb7a4008dad7aff67ec316baa16d55ca98ae3d75ce1d81628dbf72fedc7c6f108f740dec0d5d21c8ee
11982 languageName: node
11983 linkType: hard
11984
11985"micromark-factory-mdx-expression@npm:^2.0.0":
11986 version: 2.0.1
11987 resolution: "micromark-factory-mdx-expression@npm:2.0.1"
11988 dependencies:
11989 "@types/estree": "npm:^1.0.0"
11990 devlop: "npm:^1.0.0"
11991 micromark-util-character: "npm:^2.0.0"
11992 micromark-util-events-to-acorn: "npm:^2.0.0"
11993 micromark-util-symbol: "npm:^2.0.0"
11994 micromark-util-types: "npm:^2.0.0"
11995 unist-util-position-from-estree: "npm:^2.0.0"
11996 vfile-message: "npm:^4.0.0"
11997 checksum: 10c0/d9cf475a73a7fbfa09aba0d057e033d57e45b7adff78692be9efb4405c4a1717ece4594a632f92a4302e4f8f2ae96355785b616e3f5b2fe8599ec24cfdeee12d
11998 languageName: node
11999 linkType: hard
12000
12001"micromark-factory-space@npm:^1.0.0":
12002 version: 1.1.0
12003 resolution: "micromark-factory-space@npm:1.1.0"
12004 dependencies:
12005 micromark-util-character: "npm:^1.0.0"
12006 micromark-util-types: "npm:^1.0.0"
12007 checksum: 10c0/3da81187ce003dd4178c7adc4674052fb8befc8f1a700ae4c8227755f38581a4ae963866dc4857488d62d1dc9837606c9f2f435fa1332f62a0f1c49b83c6a822
12008 languageName: node
12009 linkType: hard
12010
12011"micromark-factory-space@npm:^2.0.0":
12012 version: 2.0.0
12013 resolution: "micromark-factory-space@npm:2.0.0"
12014 dependencies:
12015 micromark-util-character: "npm:^2.0.0"
12016 micromark-util-types: "npm:^2.0.0"
12017 checksum: 10c0/103ca954dade963d4ff1d2f27d397833fe855ddc72590205022832ef68b775acdea67949000cee221708e376530b1de78c745267b0bf8366740840783eb37122
12018 languageName: node
12019 linkType: hard
12020
12021"micromark-factory-title@npm:^2.0.0":
12022 version: 2.0.0
12023 resolution: "micromark-factory-title@npm:2.0.0"
12024 dependencies:
12025 micromark-factory-space: "npm:^2.0.0"
12026 micromark-util-character: "npm:^2.0.0"
12027 micromark-util-symbol: "npm:^2.0.0"
12028 micromark-util-types: "npm:^2.0.0"
12029 checksum: 10c0/2b2188e7a011b1b001faf8c860286d246d5c3485ef8819270c60a5808f4c7613e49d4e481dbdff62600ef7acdba0f5100be2d125cbd2a15e236c26b3668a8ebd
12030 languageName: node
12031 linkType: hard
12032
12033"micromark-factory-whitespace@npm:^2.0.0":
12034 version: 2.0.0
12035 resolution: "micromark-factory-whitespace@npm:2.0.0"
12036 dependencies:
12037 micromark-factory-space: "npm:^2.0.0"
12038 micromark-util-character: "npm:^2.0.0"
12039 micromark-util-symbol: "npm:^2.0.0"
12040 micromark-util-types: "npm:^2.0.0"
12041 checksum: 10c0/4e91baab0cc71873095134bd0e225d01d9786cde352701402d71b72d317973954754e8f9f1849901f165530e6421202209f4d97c460a27bb0808ec5a3fc3148c
12042 languageName: node
12043 linkType: hard
12044
12045"micromark-util-character@npm:^1.0.0, micromark-util-character@npm:^1.1.0":
12046 version: 1.2.0
12047 resolution: "micromark-util-character@npm:1.2.0"
12048 dependencies:
12049 micromark-util-symbol: "npm:^1.0.0"
12050 micromark-util-types: "npm:^1.0.0"
12051 checksum: 10c0/3390a675a50731b58a8e5493cd802e190427f10fa782079b455b00f6b54e406e36882df7d4a3bd32b709f7a2c3735b4912597ebc1c0a99566a8d8d0b816e2cd4
12052 languageName: node
12053 linkType: hard
12054
12055"micromark-util-character@npm:^2.0.0":
12056 version: 2.1.0
12057 resolution: "micromark-util-character@npm:2.1.0"
12058 dependencies:
12059 micromark-util-symbol: "npm:^2.0.0"
12060 micromark-util-types: "npm:^2.0.0"
12061 checksum: 10c0/fc37a76aaa5a5138191ba2bef1ac50c36b3bcb476522e98b1a42304ab4ec76f5b036a746ddf795d3de3e7004b2c09f21dd1bad42d161f39b8cfc0acd067e6373
12062 languageName: node
12063 linkType: hard
12064
12065"micromark-util-chunked@npm:^2.0.0":
12066 version: 2.0.0
12067 resolution: "micromark-util-chunked@npm:2.0.0"
12068 dependencies:
12069 micromark-util-symbol: "npm:^2.0.0"
12070 checksum: 10c0/043b5f2abc8c13a1e2e4c378ead191d1a47ed9e0cd6d0fa5a0a430b2df9e17ada9d5de5a20688a000bbc5932507e746144acec60a9589d9a79fa60918e029203
12071 languageName: node
12072 linkType: hard
12073
12074"micromark-util-classify-character@npm:^2.0.0":
12075 version: 2.0.0
12076 resolution: "micromark-util-classify-character@npm:2.0.0"
12077 dependencies:
12078 micromark-util-character: "npm:^2.0.0"
12079 micromark-util-symbol: "npm:^2.0.0"
12080 micromark-util-types: "npm:^2.0.0"
12081 checksum: 10c0/2bf5fa5050faa9b69f6c7e51dbaaf02329ab70fabad8229984381b356afbbf69db90f4617bec36d814a7d285fb7cad8e3c4e38d1daf4387dc9e240aa7f9a292a
12082 languageName: node
12083 linkType: hard
12084
12085"micromark-util-combine-extensions@npm:^2.0.0":
12086 version: 2.0.0
12087 resolution: "micromark-util-combine-extensions@npm:2.0.0"
12088 dependencies:
12089 micromark-util-chunked: "npm:^2.0.0"
12090 micromark-util-types: "npm:^2.0.0"
12091 checksum: 10c0/cd4c8d1a85255527facb419ff3b3cc3d7b7f27005c5ef5fa7ef2c4d0e57a9129534fc292a188ec2d467c2c458642d369c5f894bc8a9e142aed6696cc7989d3ea
12092 languageName: node
12093 linkType: hard
12094
12095"micromark-util-decode-numeric-character-reference@npm:^2.0.0":
12096 version: 2.0.1
12097 resolution: "micromark-util-decode-numeric-character-reference@npm:2.0.1"
12098 dependencies:
12099 micromark-util-symbol: "npm:^2.0.0"
12100 checksum: 10c0/3f6d684ee8f317c67806e19b3e761956256cb936a2e0533aad6d49ac5604c6536b2041769c6febdd387ab7175b7b7e551851bf2c1f78da943e7a3671ca7635ac
12101 languageName: node
12102 linkType: hard
12103
12104"micromark-util-decode-string@npm:^2.0.0":
12105 version: 2.0.0
12106 resolution: "micromark-util-decode-string@npm:2.0.0"
12107 dependencies:
12108 decode-named-character-reference: "npm:^1.0.0"
12109 micromark-util-character: "npm:^2.0.0"
12110 micromark-util-decode-numeric-character-reference: "npm:^2.0.0"
12111 micromark-util-symbol: "npm:^2.0.0"
12112 checksum: 10c0/f5413bebb21bdb686cfa1bcfa7e9c93093a523d1b42443ead303b062d2d680a94e5e8424549f57b8ba9d786a758e5a26a97f56068991bbdbca5d1885b3aa7227
12113 languageName: node
12114 linkType: hard
12115
12116"micromark-util-encode@npm:^2.0.0":
12117 version: 2.0.0
12118 resolution: "micromark-util-encode@npm:2.0.0"
12119 checksum: 10c0/ebdaafff23100bbf4c74e63b4b1612a9ddf94cd7211d6a076bc6fb0bc32c1b48d6fb615aa0953e607c62c97d849f97f1042260d3eb135259d63d372f401bbbb2
12120 languageName: node
12121 linkType: hard
12122
12123"micromark-util-events-to-acorn@npm:^2.0.0":
12124 version: 2.0.2
12125 resolution: "micromark-util-events-to-acorn@npm:2.0.2"
12126 dependencies:
12127 "@types/acorn": "npm:^4.0.0"
12128 "@types/estree": "npm:^1.0.0"
12129 "@types/unist": "npm:^3.0.0"
12130 devlop: "npm:^1.0.0"
12131 estree-util-visit: "npm:^2.0.0"
12132 micromark-util-symbol: "npm:^2.0.0"
12133 micromark-util-types: "npm:^2.0.0"
12134 vfile-message: "npm:^4.0.0"
12135 checksum: 10c0/2bd2660a49efddb625e6adcabdc3384ae4c50c7a04270737270f4aab53d09e8253e6d2607cd947c4c77f8a9900278915babb240e61fd143dc5bab51d9fd50709
12136 languageName: node
12137 linkType: hard
12138
12139"micromark-util-html-tag-name@npm:^2.0.0":
12140 version: 2.0.0
12141 resolution: "micromark-util-html-tag-name@npm:2.0.0"
12142 checksum: 10c0/988aa26367449bd345b627ae32cf605076daabe2dc1db71b578a8a511a47123e14af466bcd6dcbdacec60142f07bc2723ec5f7a0eed0f5319ce83b5e04825429
12143 languageName: node
12144 linkType: hard
12145
12146"micromark-util-normalize-identifier@npm:^2.0.0":
12147 version: 2.0.0
12148 resolution: "micromark-util-normalize-identifier@npm:2.0.0"
12149 dependencies:
12150 micromark-util-symbol: "npm:^2.0.0"
12151 checksum: 10c0/93bf8789b8449538f22cf82ac9b196363a5f3b2f26efd98aef87c4c1b1f8c05be3ef6391ff38316ff9b03c1a6fd077342567598019ddd12b9bd923dacc556333
12152 languageName: node
12153 linkType: hard
12154
12155"micromark-util-resolve-all@npm:^2.0.0":
12156 version: 2.0.0
12157 resolution: "micromark-util-resolve-all@npm:2.0.0"
12158 dependencies:
12159 micromark-util-types: "npm:^2.0.0"
12160 checksum: 10c0/3b912e88453dcefe728a9080c8934a75ac4732056d6576ceecbcaf97f42c5d6fa2df66db8abdc8427eb167c5ffddefe26713728cfe500bc0e314ed260d6e2746
12161 languageName: node
12162 linkType: hard
12163
12164"micromark-util-sanitize-uri@npm:^2.0.0":
12165 version: 2.0.0
12166 resolution: "micromark-util-sanitize-uri@npm:2.0.0"
12167 dependencies:
12168 micromark-util-character: "npm:^2.0.0"
12169 micromark-util-encode: "npm:^2.0.0"
12170 micromark-util-symbol: "npm:^2.0.0"
12171 checksum: 10c0/74763ca1c927dd520d3ab8fd9856a19740acf76fc091f0a1f5d4e99c8cd5f1b81c5a0be3efb564941a071fb6d85fd951103f2760eb6cff77b5ab3abe08341309
12172 languageName: node
12173 linkType: hard
12174
12175"micromark-util-subtokenize@npm:^2.0.0":
12176 version: 2.0.0
12177 resolution: "micromark-util-subtokenize@npm:2.0.0"
12178 dependencies:
12179 devlop: "npm:^1.0.0"
12180 micromark-util-chunked: "npm:^2.0.0"
12181 micromark-util-symbol: "npm:^2.0.0"
12182 micromark-util-types: "npm:^2.0.0"
12183 checksum: 10c0/1907c56c4974d430b984c50b3eb0930241112d931e611f178dee17d58f2976614950631b70f4e9c7e49dbccf21f91654ee61f250e028bf2f2b0f3d3aeb168da8
12184 languageName: node
12185 linkType: hard
12186
12187"micromark-util-symbol@npm:^1.0.0, micromark-util-symbol@npm:^1.0.1":
12188 version: 1.1.0
12189 resolution: "micromark-util-symbol@npm:1.1.0"
12190 checksum: 10c0/10ceaed33a90e6bfd3a5d57053dbb53f437d4809cc11430b5a09479c0ba601577059be9286df4a7eae6e350a60a2575dc9fa9d9872b5b8d058c875e075c33803
12191 languageName: node
12192 linkType: hard
12193
12194"micromark-util-symbol@npm:^2.0.0":
12195 version: 2.0.0
12196 resolution: "micromark-util-symbol@npm:2.0.0"
12197 checksum: 10c0/4e76186c185ce4cefb9cea8584213d9ffacd77099d1da30c0beb09fa21f46f66f6de4c84c781d7e34ff763fe3a06b530e132fa9004882afab9e825238d0aa8b3
12198 languageName: node
12199 linkType: hard
12200
12201"micromark-util-types@npm:^1.0.0":
12202 version: 1.1.0
12203 resolution: "micromark-util-types@npm:1.1.0"
12204 checksum: 10c0/a9749cb0a12a252ff536baabcb7012421b6fad4d91a5fdd80d7b33dc7b4c22e2d0c4637dfe5b902d00247fe6c9b01f4a24fce6b572b16ccaa4da90e6ce2a11e4
12205 languageName: node
12206 linkType: hard
12207
12208"micromark-util-types@npm:^2.0.0":
12209 version: 2.0.0
12210 resolution: "micromark-util-types@npm:2.0.0"
12211 checksum: 10c0/d74e913b9b61268e0d6939f4209e3abe9dada640d1ee782419b04fd153711112cfaaa3c4d5f37225c9aee1e23c3bb91a1f5223e1e33ba92d33e83956a53e61de
12212 languageName: node
12213 linkType: hard
12214
12215"micromark@npm:^4.0.0":
12216 version: 4.0.0
12217 resolution: "micromark@npm:4.0.0"
12218 dependencies:
12219 "@types/debug": "npm:^4.0.0"
12220 debug: "npm:^4.0.0"
12221 decode-named-character-reference: "npm:^1.0.0"
12222 devlop: "npm:^1.0.0"
12223 micromark-core-commonmark: "npm:^2.0.0"
12224 micromark-factory-space: "npm:^2.0.0"
12225 micromark-util-character: "npm:^2.0.0"
12226 micromark-util-chunked: "npm:^2.0.0"
12227 micromark-util-combine-extensions: "npm:^2.0.0"
12228 micromark-util-decode-numeric-character-reference: "npm:^2.0.0"
12229 micromark-util-encode: "npm:^2.0.0"
12230 micromark-util-normalize-identifier: "npm:^2.0.0"
12231 micromark-util-resolve-all: "npm:^2.0.0"
12232 micromark-util-sanitize-uri: "npm:^2.0.0"
12233 micromark-util-subtokenize: "npm:^2.0.0"
12234 micromark-util-symbol: "npm:^2.0.0"
12235 micromark-util-types: "npm:^2.0.0"
12236 checksum: 10c0/7e91c8d19ff27bc52964100853f1b3b32bb5b2ece57470a34ba1b2f09f4e2a183d90106c4ae585c9f2046969ee088576fed79b2f7061cba60d16652ccc2c64fd
12237 languageName: node
12238 linkType: hard
12239
12240"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5":
6727 version: 4.0.5 12241 version: 4.0.5
6728 resolution: "micromatch@npm:4.0.5" 12242 resolution: "micromatch@npm:4.0.5"
6729 dependencies: 12243 dependencies:
@@ -6733,16 +12247,88 @@ __metadata:
6733 languageName: node 12247 languageName: node
6734 linkType: hard 12248 linkType: hard
6735 12249
6736"minimatch@npm:9.0.3, minimatch@npm:^9.0.1": 12250"mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2":
6737 version: 9.0.3 12251 version: 1.52.0
6738 resolution: "minimatch@npm:9.0.3" 12252 resolution: "mime-db@npm:1.52.0"
12253 checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa
12254 languageName: node
12255 linkType: hard
12256
12257"mime-db@npm:~1.33.0":
12258 version: 1.33.0
12259 resolution: "mime-db@npm:1.33.0"
12260 checksum: 10c0/79172ce5468c8503b49dddfdddc18d3f5fe2599f9b5fe1bc321a8cbee14c96730fc6db22f907b23701b05b2936f865795f62ec3a78a7f3c8cb2450bb68c6763e
12261 languageName: node
12262 linkType: hard
12263
12264"mime-types@npm:2.1.18":
12265 version: 2.1.18
12266 resolution: "mime-types@npm:2.1.18"
6739 dependencies: 12267 dependencies:
6740 brace-expansion: "npm:^2.0.1" 12268 mime-db: "npm:~1.33.0"
6741 checksum: 10c0/85f407dcd38ac3e180f425e86553911d101455ca3ad5544d6a7cec16286657e4f8a9aa6695803025c55e31e35a91a2252b5dc8e7d527211278b8b65b4dbd5eac 12269 checksum: 10c0/a96a8d12f4bb98bc7bfac6a8ccbd045f40368fc1030d9366050c3613825d3715d1c1f393e10a75a885d2cdc1a26cd6d5e11f3a2a0d5c4d361f00242139430a0f
12270 languageName: node
12271 linkType: hard
12272
12273"mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34":
12274 version: 2.1.35
12275 resolution: "mime-types@npm:2.1.35"
12276 dependencies:
12277 mime-db: "npm:1.52.0"
12278 checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2
12279 languageName: node
12280 linkType: hard
12281
12282"mime@npm:1.6.0":
12283 version: 1.6.0
12284 resolution: "mime@npm:1.6.0"
12285 bin:
12286 mime: cli.js
12287 checksum: 10c0/b92cd0adc44888c7135a185bfd0dddc42c32606401c72896a842ae15da71eb88858f17669af41e498b463cd7eb998f7b48939a25b08374c7924a9c8a6f8a81b0
12288 languageName: node
12289 linkType: hard
12290
12291"mimic-fn@npm:^2.1.0":
12292 version: 2.1.0
12293 resolution: "mimic-fn@npm:2.1.0"
12294 checksum: 10c0/b26f5479d7ec6cc2bce275a08f146cf78f5e7b661b18114e2506dd91ec7ec47e7a25bf4360e5438094db0560bcc868079fb3b1fb3892b833c1ecbf63f80c95a4
12295 languageName: node
12296 linkType: hard
12297
12298"mimic-response@npm:^3.1.0":
12299 version: 3.1.0
12300 resolution: "mimic-response@npm:3.1.0"
12301 checksum: 10c0/0d6f07ce6e03e9e4445bee655202153bdb8a98d67ee8dc965ac140900d7a2688343e6b4c9a72cfc9ef2f7944dfd76eef4ab2482eb7b293a68b84916bac735362
12302 languageName: node
12303 linkType: hard
12304
12305"mimic-response@npm:^4.0.0":
12306 version: 4.0.0
12307 resolution: "mimic-response@npm:4.0.0"
12308 checksum: 10c0/761d788d2668ae9292c489605ffd4fad220f442fbae6832adce5ebad086d691e906a6d5240c290293c7a11e99fbdbbef04abbbed498bf8699a4ee0f31315e3fb
12309 languageName: node
12310 linkType: hard
12311
12312"mini-css-extract-plugin@npm:^2.7.6":
12313 version: 2.8.1
12314 resolution: "mini-css-extract-plugin@npm:2.8.1"
12315 dependencies:
12316 schema-utils: "npm:^4.0.0"
12317 tapable: "npm:^2.2.1"
12318 peerDependencies:
12319 webpack: ^5.0.0
12320 checksum: 10c0/ef0064f32051294e76141ba74ddf139d313ba26f3abcef1a3906347ca75df8e69c490351bd4c2f373b0cf5c934f39c7d643c8615421c24e4d2c724345294f80a
6742 languageName: node 12321 languageName: node
6743 linkType: hard 12322 linkType: hard
6744 12323
6745"minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": 12324"minimalistic-assert@npm:^1.0.0":
12325 version: 1.0.1
12326 resolution: "minimalistic-assert@npm:1.0.1"
12327 checksum: 10c0/96730e5601cd31457f81a296f521eb56036e6f69133c0b18c13fe941109d53ad23a4204d946a0d638d7f3099482a0cec8c9bb6d642604612ce43ee536be3dddd
12328 languageName: node
12329 linkType: hard
12330
12331"minimatch@npm:3.1.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
6746 version: 3.1.2 12332 version: 3.1.2
6747 resolution: "minimatch@npm:3.1.2" 12333 resolution: "minimatch@npm:3.1.2"
6748 dependencies: 12334 dependencies:
@@ -6760,6 +12346,15 @@ __metadata:
6760 languageName: node 12346 languageName: node
6761 linkType: hard 12347 linkType: hard
6762 12348
12349"minimatch@npm:^9.0.1, minimatch@npm:^9.0.4":
12350 version: 9.0.4
12351 resolution: "minimatch@npm:9.0.4"
12352 dependencies:
12353 brace-expansion: "npm:^2.0.1"
12354 checksum: 10c0/2c16f21f50e64922864e560ff97c587d15fd491f65d92a677a344e970fe62aafdbeafe648965fa96d33c061b4d0eabfe0213466203dd793367e7f28658cf6414
12355 languageName: node
12356 linkType: hard
12357
6763"minimist@npm:^1.2.0, minimist@npm:^1.2.6": 12358"minimist@npm:^1.2.0, minimist@npm:^1.2.6":
6764 version: 1.2.8 12359 version: 1.2.8
6765 resolution: "minimist@npm:1.2.8" 12360 resolution: "minimist@npm:1.2.8"
@@ -6884,6 +12479,20 @@ __metadata:
6884 languageName: node 12479 languageName: node
6885 linkType: hard 12480 linkType: hard
6886 12481
12482"mrmime@npm:^2.0.0":
12483 version: 2.0.0
12484 resolution: "mrmime@npm:2.0.0"
12485 checksum: 10c0/312b35ed288986aec90955410b21ed7427fd1e4ee318cb5fc18765c8d029eeded9444faa46589e5b1ed6b35fb2054a802ac8dcb917ddf6b3e189cb3bf11a965c
12486 languageName: node
12487 linkType: hard
12488
12489"ms@npm:2.0.0":
12490 version: 2.0.0
12491 resolution: "ms@npm:2.0.0"
12492 checksum: 10c0/f8fda810b39fd7255bbdc451c46286e549794fcc700dc9cd1d25658bbc4dc2563a5de6fe7c60f798a16a60c6ceb53f033cb353f493f0cf63e5199b702943159d
12493 languageName: node
12494 linkType: hard
12495
6887"ms@npm:2.1.2": 12496"ms@npm:2.1.2":
6888 version: 2.1.2 12497 version: 2.1.2
6889 resolution: "ms@npm:2.1.2" 12498 resolution: "ms@npm:2.1.2"
@@ -6891,13 +12500,25 @@ __metadata:
6891 languageName: node 12500 languageName: node
6892 linkType: hard 12501 linkType: hard
6893 12502
6894"ms@npm:^2.0.0, ms@npm:^2.1.1, ms@npm:^2.1.3": 12503"ms@npm:2.1.3, ms@npm:^2.0.0, ms@npm:^2.1.1, ms@npm:^2.1.3":
6895 version: 2.1.3 12504 version: 2.1.3
6896 resolution: "ms@npm:2.1.3" 12505 resolution: "ms@npm:2.1.3"
6897 checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 12506 checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48
6898 languageName: node 12507 languageName: node
6899 linkType: hard 12508 linkType: hard
6900 12509
12510"multicast-dns@npm:^7.2.5":
12511 version: 7.2.5
12512 resolution: "multicast-dns@npm:7.2.5"
12513 dependencies:
12514 dns-packet: "npm:^5.2.2"
12515 thunky: "npm:^1.0.2"
12516 bin:
12517 multicast-dns: cli.js
12518 checksum: 10c0/5120171d4bdb1577764c5afa96e413353bff530d1b37081cb29cccc747f989eb1baf40574fe8e27060fc1aef72b59c042f72b9b208413de33bcf411343c69057
12519 languageName: node
12520 linkType: hard
12521
6901"nanoid@npm:^3.3.7": 12522"nanoid@npm:^3.3.7":
6902 version: 3.3.7 12523 version: 3.3.7
6903 resolution: "nanoid@npm:3.3.7" 12524 resolution: "nanoid@npm:3.3.7"
@@ -6907,12 +12528,12 @@ __metadata:
6907 languageName: node 12528 languageName: node
6908 linkType: hard 12529 linkType: hard
6909 12530
6910"nanoid@npm:^5.0.6": 12531"nanoid@npm:^5.0.7":
6911 version: 5.0.6 12532 version: 5.0.7
6912 resolution: "nanoid@npm:5.0.6" 12533 resolution: "nanoid@npm:5.0.7"
6913 bin: 12534 bin:
6914 nanoid: bin/nanoid.js 12535 nanoid: bin/nanoid.js
6915 checksum: 10c0/6660f99b7bb3816f04fd9a14126859482e07d1705c02e1a6c1a722545c65186659f6f734eb21329f54e838b6409579bef687e2fb13661b716529dcefc5d86ec6 12536 checksum: 10c0/a3fb1c157e3e35378f44e5a7130c70f80c9037f66c9a37285e5e3d8298e8405fcb2399baaa420980b0fe5fd9c2e4186a6a31c3526f21de03cf34c1b459871401
6916 languageName: node 12537 languageName: node
6917 linkType: hard 12538 linkType: hard
6918 12539
@@ -6923,13 +12544,29 @@ __metadata:
6923 languageName: node 12544 languageName: node
6924 linkType: hard 12545 linkType: hard
6925 12546
6926"negotiator@npm:^0.6.3": 12547"negotiator@npm:0.6.3, negotiator@npm:^0.6.3":
6927 version: 0.6.3 12548 version: 0.6.3
6928 resolution: "negotiator@npm:0.6.3" 12549 resolution: "negotiator@npm:0.6.3"
6929 checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 12550 checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2
6930 languageName: node 12551 languageName: node
6931 linkType: hard 12552 linkType: hard
6932 12553
12554"neo-async@npm:^2.6.2":
12555 version: 2.6.2
12556 resolution: "neo-async@npm:2.6.2"
12557 checksum: 10c0/c2f5a604a54a8ec5438a342e1f356dff4bc33ccccdb6dc668d94fe8e5eccfc9d2c2eea6064b0967a767ba63b33763f51ccf2cd2441b461a7322656c1f06b3f5d
12558 languageName: node
12559 linkType: hard
12560
12561"nlcst-to-string@npm:^4.0.0":
12562 version: 4.0.0
12563 resolution: "nlcst-to-string@npm:4.0.0"
12564 dependencies:
12565 "@types/nlcst": "npm:^2.0.0"
12566 checksum: 10c0/a192c8b3365a7c076812004e72ae5b4a1734e582be2a6f3c062f3beecf18868a9fe2d1bad870bfead320fb39830f2c4f3752e5ae6574c4e59157126fd1ddba70
12567 languageName: node
12568 linkType: hard
12569
6933"no-case@npm:^3.0.4": 12570"no-case@npm:^3.0.4":
6934 version: 3.0.4 12571 version: 3.0.4
6935 resolution: "no-case@npm:3.0.4" 12572 resolution: "no-case@npm:3.0.4"
@@ -6940,6 +12577,18 @@ __metadata:
6940 languageName: node 12577 languageName: node
6941 linkType: hard 12578 linkType: hard
6942 12579
12580"node-emoji@npm:^2.1.0":
12581 version: 2.1.3
12582 resolution: "node-emoji@npm:2.1.3"
12583 dependencies:
12584 "@sindresorhus/is": "npm:^4.6.0"
12585 char-regex: "npm:^1.0.2"
12586 emojilib: "npm:^2.4.0"
12587 skin-tone: "npm:^2.0.0"
12588 checksum: 10c0/e688333373563aa8308df16111eee2b5837b53a51fb63bf8b7fbea2896327c5d24c9984eb0c8ca6ac155d4d9c194dcf1840d271033c1b588c7c45a3b65339ef7
12589 languageName: node
12590 linkType: hard
12591
6943"node-fetch@npm:^2.6.1": 12592"node-fetch@npm:^2.6.1":
6944 version: 2.7.0 12593 version: 2.7.0
6945 resolution: "node-fetch@npm:2.7.0" 12594 resolution: "node-fetch@npm:2.7.0"
@@ -6954,6 +12603,13 @@ __metadata:
6954 languageName: node 12603 languageName: node
6955 linkType: hard 12604 linkType: hard
6956 12605
12606"node-forge@npm:^1":
12607 version: 1.3.1
12608 resolution: "node-forge@npm:1.3.1"
12609 checksum: 10c0/e882819b251a4321f9fc1d67c85d1501d3004b4ee889af822fd07f64de3d1a8e272ff00b689570af0465d65d6bf5074df9c76e900e0aff23e60b847f2a46fbe8
12610 languageName: node
12611 linkType: hard
12612
6957"node-gyp@npm:latest": 12613"node-gyp@npm:latest":
6958 version: 9.4.0 12614 version: 9.4.0
6959 resolution: "node-gyp@npm:9.4.0" 12615 resolution: "node-gyp@npm:9.4.0"
@@ -6975,10 +12631,10 @@ __metadata:
6975 languageName: node 12631 languageName: node
6976 linkType: hard 12632 linkType: hard
6977 12633
6978"node-releases@npm:^2.0.13": 12634"node-releases@npm:^2.0.14":
6979 version: 2.0.13 12635 version: 2.0.14
6980 resolution: "node-releases@npm:2.0.13" 12636 resolution: "node-releases@npm:2.0.14"
6981 checksum: 10c0/2fb44bf70fc949d27f3a48a7fd1a9d1d603ddad4ccd091f26b3fb8b1da976605d919330d7388ccd55ca2ade0dc8b2e12841ba19ef249c8bb29bf82532d401af7 12637 checksum: 10c0/199fc93773ae70ec9969bc6d5ac5b2bbd6eb986ed1907d751f411fef3ede0e4bfdb45ceb43711f8078bea237b6036db8b1bf208f6ff2b70c7d615afd157f3ab9
6982 languageName: node 12638 languageName: node
6983 linkType: hard 12639 linkType: hard
6984 12640
@@ -7000,6 +12656,27 @@ __metadata:
7000 languageName: node 12656 languageName: node
7001 linkType: hard 12657 linkType: hard
7002 12658
12659"normalize-range@npm:^0.1.2":
12660 version: 0.1.2
12661 resolution: "normalize-range@npm:0.1.2"
12662 checksum: 10c0/bf39b73a63e0a42ad1a48c2bd1bda5a07ede64a7e2567307a407674e595bcff0fa0d57e8e5f1e7fa5e91000797c7615e13613227aaaa4d6d6e87f5bd5cc95de6
12663 languageName: node
12664 linkType: hard
12665
12666"normalize-url@npm:^6.0.1":
12667 version: 6.1.0
12668 resolution: "normalize-url@npm:6.1.0"
12669 checksum: 10c0/95d948f9bdd2cfde91aa786d1816ae40f8262946e13700bf6628105994fe0ff361662c20af3961161c38a119dc977adeb41fc0b41b1745eb77edaaf9cb22db23
12670 languageName: node
12671 linkType: hard
12672
12673"normalize-url@npm:^8.0.0":
12674 version: 8.0.1
12675 resolution: "normalize-url@npm:8.0.1"
12676 checksum: 10c0/eb439231c4b84430f187530e6fdac605c5048ef4ec556447a10c00a91fc69b52d8d8298d9d608e68d3e0f7dc2d812d3455edf425e0f215993667c3183bcab1ef
12677 languageName: node
12678 linkType: hard
12679
7003"notistack@npm:^3.0.1": 12680"notistack@npm:^3.0.1":
7004 version: 3.0.1 12681 version: 3.0.1
7005 resolution: "notistack@npm:3.0.1" 12682 resolution: "notistack@npm:3.0.1"
@@ -7013,6 +12690,15 @@ __metadata:
7013 languageName: node 12690 languageName: node
7014 linkType: hard 12691 linkType: hard
7015 12692
12693"npm-run-path@npm:^4.0.1":
12694 version: 4.0.1
12695 resolution: "npm-run-path@npm:4.0.1"
12696 dependencies:
12697 path-key: "npm:^3.0.0"
12698 checksum: 10c0/6f9353a95288f8455cf64cbeb707b28826a7f29690244c1e4bb61ec573256e021b6ad6651b394eb1ccfd00d6ec50147253aba2c5fe58a57ceb111fad62c519ac
12699 languageName: node
12700 linkType: hard
12701
7016"npmlog@npm:^6.0.0": 12702"npmlog@npm:^6.0.0":
7017 version: 6.0.2 12703 version: 6.0.2
7018 resolution: "npmlog@npm:6.0.2" 12704 resolution: "npmlog@npm:6.0.2"
@@ -7025,6 +12711,22 @@ __metadata:
7025 languageName: node 12711 languageName: node
7026 linkType: hard 12712 linkType: hard
7027 12713
12714"nprogress@npm:^0.2.0":
12715 version: 0.2.0
12716 resolution: "nprogress@npm:0.2.0"
12717 checksum: 10c0/eab9a923a1ad1eed71a455ecfbc358442dd9bcd71b9fa3fa1c67eddf5159360b182c218f76fca320c97541a1b45e19ced04e6dcb044a662244c5419f8ae9e821
12718 languageName: node
12719 linkType: hard
12720
12721"nth-check@npm:^2.0.1":
12722 version: 2.1.1
12723 resolution: "nth-check@npm:2.1.1"
12724 dependencies:
12725 boolbase: "npm:^1.0.0"
12726 checksum: 10c0/5fee7ff309727763689cfad844d979aedd2204a817fbaaf0e1603794a7c20db28548d7b024692f953557df6ce4a0ee4ae46cd8ebd9b36cfb300b9226b567c479
12727 languageName: node
12728 linkType: hard
12729
7028"object-assign@npm:^4.1.1": 12730"object-assign@npm:^4.1.1":
7029 version: 4.1.1 12731 version: 4.1.1
7030 resolution: "object-assign@npm:4.1.1" 12732 resolution: "object-assign@npm:4.1.1"
@@ -7124,6 +12826,29 @@ __metadata:
7124 languageName: node 12826 languageName: node
7125 linkType: hard 12827 linkType: hard
7126 12828
12829"obuf@npm:^1.0.0, obuf@npm:^1.1.2":
12830 version: 1.1.2
12831 resolution: "obuf@npm:1.1.2"
12832 checksum: 10c0/520aaac7ea701618eacf000fc96ae458e20e13b0569845800fc582f81b386731ab22d55354b4915d58171db00e79cfcd09c1638c02f89577ef092b38c65b7d81
12833 languageName: node
12834 linkType: hard
12835
12836"on-finished@npm:2.4.1":
12837 version: 2.4.1
12838 resolution: "on-finished@npm:2.4.1"
12839 dependencies:
12840 ee-first: "npm:1.1.1"
12841 checksum: 10c0/46fb11b9063782f2d9968863d9cbba33d77aa13c17f895f56129c274318b86500b22af3a160fe9995aa41317efcd22941b6eba747f718ced08d9a73afdb087b4
12842 languageName: node
12843 linkType: hard
12844
12845"on-headers@npm:~1.0.2":
12846 version: 1.0.2
12847 resolution: "on-headers@npm:1.0.2"
12848 checksum: 10c0/f649e65c197bf31505a4c0444875db0258e198292f34b884d73c2f751e91792ef96bb5cf89aa0f4fecc2e4dc662461dda606b1274b0e564f539cae5d2f5fc32f
12849 languageName: node
12850 linkType: hard
12851
7127"once@npm:^1.3.0": 12852"once@npm:^1.3.0":
7128 version: 1.4.0 12853 version: 1.4.0
7129 resolution: "once@npm:1.4.0" 12854 resolution: "once@npm:1.4.0"
@@ -7133,6 +12858,35 @@ __metadata:
7133 languageName: node 12858 languageName: node
7134 linkType: hard 12859 linkType: hard
7135 12860
12861"onetime@npm:^5.1.2":
12862 version: 5.1.2
12863 resolution: "onetime@npm:5.1.2"
12864 dependencies:
12865 mimic-fn: "npm:^2.1.0"
12866 checksum: 10c0/ffcef6fbb2692c3c40749f31ea2e22677a876daea92959b8a80b521d95cca7a668c884d8b2045d1d8ee7d56796aa405c405462af112a1477594cc63531baeb8f
12867 languageName: node
12868 linkType: hard
12869
12870"open@npm:^8.0.9, open@npm:^8.4.0":
12871 version: 8.4.2
12872 resolution: "open@npm:8.4.2"
12873 dependencies:
12874 define-lazy-prop: "npm:^2.0.0"
12875 is-docker: "npm:^2.1.1"
12876 is-wsl: "npm:^2.2.0"
12877 checksum: 10c0/bb6b3a58401dacdb0aad14360626faf3fb7fba4b77816b373495988b724fb48941cad80c1b65d62bb31a17609b2cd91c41a181602caea597ca80dfbcc27e84c9
12878 languageName: node
12879 linkType: hard
12880
12881"opener@npm:^1.5.2":
12882 version: 1.5.2
12883 resolution: "opener@npm:1.5.2"
12884 bin:
12885 opener: bin/opener-bin.js
12886 checksum: 10c0/dd56256ab0cf796585617bc28e06e058adf09211781e70b264c76a1dbe16e90f868c974e5bf5309c93469157c7d14b89c35dc53fe7293b0e40b4d2f92073bc79
12887 languageName: node
12888 linkType: hard
12889
7136"optionator@npm:^0.9.3": 12890"optionator@npm:^0.9.3":
7137 version: 0.9.3 12891 version: 0.9.3
7138 resolution: "optionator@npm:0.9.3" 12892 resolution: "optionator@npm:0.9.3"
@@ -7147,6 +12901,22 @@ __metadata:
7147 languageName: node 12901 languageName: node
7148 linkType: hard 12902 linkType: hard
7149 12903
12904"p-cancelable@npm:^3.0.0":
12905 version: 3.0.0
12906 resolution: "p-cancelable@npm:3.0.0"
12907 checksum: 10c0/948fd4f8e87b956d9afc2c6c7392de9113dac817cb1cecf4143f7a3d4c57ab5673614a80be3aba91ceec5e4b69fd8c869852d7e8048bc3d9273c4c36ce14b9aa
12908 languageName: node
12909 linkType: hard
12910
12911"p-limit@npm:^2.0.0, p-limit@npm:^2.2.0":
12912 version: 2.3.0
12913 resolution: "p-limit@npm:2.3.0"
12914 dependencies:
12915 p-try: "npm:^2.0.0"
12916 checksum: 10c0/8da01ac53efe6a627080fafc127c873da40c18d87b3f5d5492d465bb85ec7207e153948df6b9cbaeb130be70152f874229b8242ee2be84c0794082510af97f12
12917 languageName: node
12918 linkType: hard
12919
7150"p-limit@npm:^3.0.2": 12920"p-limit@npm:^3.0.2":
7151 version: 3.1.0 12921 version: 3.1.0
7152 resolution: "p-limit@npm:3.1.0" 12922 resolution: "p-limit@npm:3.1.0"
@@ -7156,6 +12926,33 @@ __metadata:
7156 languageName: node 12926 languageName: node
7157 linkType: hard 12927 linkType: hard
7158 12928
12929"p-limit@npm:^4.0.0":
12930 version: 4.0.0
12931 resolution: "p-limit@npm:4.0.0"
12932 dependencies:
12933 yocto-queue: "npm:^1.0.0"
12934 checksum: 10c0/a56af34a77f8df2ff61ddfb29431044557fcbcb7642d5a3233143ebba805fc7306ac1d448de724352861cb99de934bc9ab74f0d16fe6a5460bdbdf938de875ad
12935 languageName: node
12936 linkType: hard
12937
12938"p-locate@npm:^3.0.0":
12939 version: 3.0.0
12940 resolution: "p-locate@npm:3.0.0"
12941 dependencies:
12942 p-limit: "npm:^2.0.0"
12943 checksum: 10c0/7b7f06f718f19e989ce6280ed4396fb3c34dabdee0df948376483032f9d5ec22fdf7077ec942143a75827bb85b11da72016497fc10dac1106c837ed593969ee8
12944 languageName: node
12945 linkType: hard
12946
12947"p-locate@npm:^4.1.0":
12948 version: 4.1.0
12949 resolution: "p-locate@npm:4.1.0"
12950 dependencies:
12951 p-limit: "npm:^2.2.0"
12952 checksum: 10c0/1b476ad69ad7f6059744f343b26d51ce091508935c1dbb80c4e0a2f397ffce0ca3a1f9f5cd3c7ce19d7929a09719d5c65fe70d8ee289c3f267cd36f2881813e9
12953 languageName: node
12954 linkType: hard
12955
7159"p-locate@npm:^5.0.0": 12956"p-locate@npm:^5.0.0":
7160 version: 5.0.0 12957 version: 5.0.0
7161 resolution: "p-locate@npm:5.0.0" 12958 resolution: "p-locate@npm:5.0.0"
@@ -7165,6 +12962,15 @@ __metadata:
7165 languageName: node 12962 languageName: node
7166 linkType: hard 12963 linkType: hard
7167 12964
12965"p-locate@npm:^6.0.0":
12966 version: 6.0.0
12967 resolution: "p-locate@npm:6.0.0"
12968 dependencies:
12969 p-limit: "npm:^4.0.0"
12970 checksum: 10c0/d72fa2f41adce59c198270aa4d3c832536c87a1806e0f69dffb7c1a7ca998fb053915ca833d90f166a8c082d3859eabfed95f01698a3214c20df6bb8de046312
12971 languageName: node
12972 linkType: hard
12973
7168"p-map@npm:^4.0.0": 12974"p-map@npm:^4.0.0":
7169 version: 4.0.0 12975 version: 4.0.0
7170 resolution: "p-map@npm:4.0.0" 12976 resolution: "p-map@npm:4.0.0"
@@ -7174,6 +12980,35 @@ __metadata:
7174 languageName: node 12980 languageName: node
7175 linkType: hard 12981 linkType: hard
7176 12982
12983"p-retry@npm:^4.5.0":
12984 version: 4.6.2
12985 resolution: "p-retry@npm:4.6.2"
12986 dependencies:
12987 "@types/retry": "npm:0.12.0"
12988 retry: "npm:^0.13.1"
12989 checksum: 10c0/d58512f120f1590cfedb4c2e0c42cb3fa66f3cea8a4646632fcb834c56055bb7a6f138aa57b20cc236fb207c9d694e362e0b5c2b14d9b062f67e8925580c73b0
12990 languageName: node
12991 linkType: hard
12992
12993"p-try@npm:^2.0.0":
12994 version: 2.2.0
12995 resolution: "p-try@npm:2.2.0"
12996 checksum: 10c0/c36c19907734c904b16994e6535b02c36c2224d433e01a2f1ab777237f4d86e6289fd5fd464850491e940379d4606ed850c03e0f9ab600b0ebddb511312e177f
12997 languageName: node
12998 linkType: hard
12999
13000"package-json@npm:^8.1.0":
13001 version: 8.1.1
13002 resolution: "package-json@npm:8.1.1"
13003 dependencies:
13004 got: "npm:^12.1.0"
13005 registry-auth-token: "npm:^5.0.1"
13006 registry-url: "npm:^6.0.0"
13007 semver: "npm:^7.3.7"
13008 checksum: 10c0/83b057878bca229033aefad4ef51569b484e63a65831ddf164dc31f0486817e17ffcb58c819c7af3ef3396042297096b3ffc04e107fd66f8f48756f6d2071c8f
13009 languageName: node
13010 linkType: hard
13011
7177"param-case@npm:^3.0.4": 13012"param-case@npm:^3.0.4":
7178 version: 3.0.4 13013 version: 3.0.4
7179 resolution: "param-case@npm:3.0.4" 13014 resolution: "param-case@npm:3.0.4"
@@ -7193,7 +13028,23 @@ __metadata:
7193 languageName: node 13028 languageName: node
7194 linkType: hard 13029 linkType: hard
7195 13030
7196"parse-json@npm:^5.0.0": 13031"parse-entities@npm:^4.0.0":
13032 version: 4.0.1
13033 resolution: "parse-entities@npm:4.0.1"
13034 dependencies:
13035 "@types/unist": "npm:^2.0.0"
13036 character-entities: "npm:^2.0.0"
13037 character-entities-legacy: "npm:^3.0.0"
13038 character-reference-invalid: "npm:^2.0.0"
13039 decode-named-character-reference: "npm:^1.0.0"
13040 is-alphanumerical: "npm:^2.0.0"
13041 is-decimal: "npm:^2.0.0"
13042 is-hexadecimal: "npm:^2.0.0"
13043 checksum: 10c0/9dfa3b0dc43a913c2558c4bd625b1abcc2d6c6b38aa5724b141ed988471977248f7ad234eed57e1bc70b694dd15b0d710a04f66c2f7c096e35abd91962b7d926
13044 languageName: node
13045 linkType: hard
13046
13047"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0":
7197 version: 5.2.0 13048 version: 5.2.0
7198 resolution: "parse-json@npm:5.2.0" 13049 resolution: "parse-json@npm:5.2.0"
7199 dependencies: 13050 dependencies:
@@ -7205,6 +13056,53 @@ __metadata:
7205 languageName: node 13056 languageName: node
7206 linkType: hard 13057 linkType: hard
7207 13058
13059"parse-latin@npm:^7.0.0":
13060 version: 7.0.0
13061 resolution: "parse-latin@npm:7.0.0"
13062 dependencies:
13063 "@types/nlcst": "npm:^2.0.0"
13064 "@types/unist": "npm:^3.0.0"
13065 nlcst-to-string: "npm:^4.0.0"
13066 unist-util-modify-children: "npm:^4.0.0"
13067 unist-util-visit-children: "npm:^3.0.0"
13068 vfile: "npm:^6.0.0"
13069 checksum: 10c0/4232a464f98c41c6680575c54bc2c9b21ac4b82a1f796a871bfef5efa6eddaab9bccf734b08cde6b0a5504ef46a0a14041ddd0bc5d9cc70f73a507f93f610596
13070 languageName: node
13071 linkType: hard
13072
13073"parse-numeric-range@npm:^1.3.0":
13074 version: 1.3.0
13075 resolution: "parse-numeric-range@npm:1.3.0"
13076 checksum: 10c0/53465afaa92111e86697281b684aa4574427360889cc23a1c215488c06b72441febdbf09f47ab0bef9a0c701e059629f3eebd2fe6fb241a254ad7a7a642aebe8
13077 languageName: node
13078 linkType: hard
13079
13080"parse5-htmlparser2-tree-adapter@npm:^7.0.0":
13081 version: 7.0.0
13082 resolution: "parse5-htmlparser2-tree-adapter@npm:7.0.0"
13083 dependencies:
13084 domhandler: "npm:^5.0.2"
13085 parse5: "npm:^7.0.0"
13086 checksum: 10c0/e820cacb8486e6f7ede403327d18480df086d70e32ede2f6654d8c3a8b4b8dc4a4d5c21c03c18a92ba2466c513b93ca63be4a138dd73cd0995f384eb3b9edf11
13087 languageName: node
13088 linkType: hard
13089
13090"parse5@npm:^7.0.0":
13091 version: 7.1.2
13092 resolution: "parse5@npm:7.1.2"
13093 dependencies:
13094 entities: "npm:^4.4.0"
13095 checksum: 10c0/297d7af8224f4b5cb7f6617ecdae98eeaed7f8cbd78956c42785e230505d5a4f07cef352af10d3006fa5c1544b76b57784d3a22d861ae071bbc460c649482bf4
13096 languageName: node
13097 linkType: hard
13098
13099"parseurl@npm:~1.3.2, parseurl@npm:~1.3.3":
13100 version: 1.3.3
13101 resolution: "parseurl@npm:1.3.3"
13102 checksum: 10c0/90dd4760d6f6174adb9f20cf0965ae12e23879b5f5464f38e92fce8073354341e4b3b76fa3d878351efe7d01e617121955284cfd002ab087fba1a0726ec0b4f5
13103 languageName: node
13104 linkType: hard
13105
7208"pascal-case@npm:^3.1.2": 13106"pascal-case@npm:^3.1.2":
7209 version: 3.1.2 13107 version: 3.1.2
7210 resolution: "pascal-case@npm:3.1.2" 13108 resolution: "pascal-case@npm:3.1.2"
@@ -7215,6 +13113,13 @@ __metadata:
7215 languageName: node 13113 languageName: node
7216 linkType: hard 13114 linkType: hard
7217 13115
13116"path-exists@npm:^3.0.0":
13117 version: 3.0.0
13118 resolution: "path-exists@npm:3.0.0"
13119 checksum: 10c0/17d6a5664bc0a11d48e2b2127d28a0e58822c6740bde30403f08013da599182289c56518bec89407e3f31d3c2b6b296a4220bc3f867f0911fee6952208b04167
13120 languageName: node
13121 linkType: hard
13122
7218"path-exists@npm:^4.0.0": 13123"path-exists@npm:^4.0.0":
7219 version: 4.0.0 13124 version: 4.0.0
7220 resolution: "path-exists@npm:4.0.0" 13125 resolution: "path-exists@npm:4.0.0"
@@ -7222,6 +13127,13 @@ __metadata:
7222 languageName: node 13127 languageName: node
7223 linkType: hard 13128 linkType: hard
7224 13129
13130"path-exists@npm:^5.0.0":
13131 version: 5.0.0
13132 resolution: "path-exists@npm:5.0.0"
13133 checksum: 10c0/b170f3060b31604cde93eefdb7392b89d832dfbc1bed717c9718cbe0f230c1669b7e75f87e19901da2250b84d092989a0f9e44d2ef41deb09aa3ad28e691a40a
13134 languageName: node
13135 linkType: hard
13136
7225"path-is-absolute@npm:^1.0.0": 13137"path-is-absolute@npm:^1.0.0":
7226 version: 1.0.1 13138 version: 1.0.1
7227 resolution: "path-is-absolute@npm:1.0.1" 13139 resolution: "path-is-absolute@npm:1.0.1"
@@ -7229,7 +13141,14 @@ __metadata:
7229 languageName: node 13141 languageName: node
7230 linkType: hard 13142 linkType: hard
7231 13143
7232"path-key@npm:^3.1.0": 13144"path-is-inside@npm:1.0.2":
13145 version: 1.0.2
13146 resolution: "path-is-inside@npm:1.0.2"
13147 checksum: 10c0/7fdd4b41672c70461cce734fc222b33e7b447fa489c7c4377c95e7e6852d83d69741f307d88ec0cc3b385b41cb4accc6efac3c7c511cd18512e95424f5fa980c
13148 languageName: node
13149 linkType: hard
13150
13151"path-key@npm:^3.0.0, path-key@npm:^3.1.0":
7233 version: 3.1.1 13152 version: 3.1.1
7234 resolution: "path-key@npm:3.1.1" 13153 resolution: "path-key@npm:3.1.1"
7235 checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c 13154 checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c
@@ -7253,6 +13172,29 @@ __metadata:
7253 languageName: node 13172 languageName: node
7254 linkType: hard 13173 linkType: hard
7255 13174
13175"path-to-regexp@npm:0.1.7":
13176 version: 0.1.7
13177 resolution: "path-to-regexp@npm:0.1.7"
13178 checksum: 10c0/50a1ddb1af41a9e68bd67ca8e331a705899d16fb720a1ea3a41e310480948387daf603abb14d7b0826c58f10146d49050a1291ba6a82b78a382d1c02c0b8f905
13179 languageName: node
13180 linkType: hard
13181
13182"path-to-regexp@npm:2.2.1":
13183 version: 2.2.1
13184 resolution: "path-to-regexp@npm:2.2.1"
13185 checksum: 10c0/f4b51090a73dad5ce0720f13ce8528ac77914bc927d72cc4ba05ab32770ad3a8d2e431962734b688b9ed863d4098d858da6ff4746037e4e24259cbd3b2c32b79
13186 languageName: node
13187 linkType: hard
13188
13189"path-to-regexp@npm:^1.7.0":
13190 version: 1.8.0
13191 resolution: "path-to-regexp@npm:1.8.0"
13192 dependencies:
13193 isarray: "npm:0.0.1"
13194 checksum: 10c0/7b25d6f27a8de03f49406d16195450f5ced694398adea1510b0f949d9660600d1769c5c6c83668583b7e6b503f3caf1ede8ffc08135dbe3e982f034f356fbb5c
13195 languageName: node
13196 linkType: hard
13197
7256"path-type@npm:^4.0.0": 13198"path-type@npm:^4.0.0":
7257 version: 4.0.0 13199 version: 4.0.0
7258 resolution: "path-type@npm:4.0.0" 13200 resolution: "path-type@npm:4.0.0"
@@ -7267,6 +13209,17 @@ __metadata:
7267 languageName: node 13209 languageName: node
7268 linkType: hard 13210 linkType: hard
7269 13211
13212"periscopic@npm:^3.0.0":
13213 version: 3.1.0
13214 resolution: "periscopic@npm:3.1.0"
13215 dependencies:
13216 "@types/estree": "npm:^1.0.0"
13217 estree-walker: "npm:^3.0.0"
13218 is-reference: "npm:^3.0.0"
13219 checksum: 10c0/fb5ce7cd810c49254cdf1cd3892811e6dd1a1dfbdf5f10a0a33fb7141baac36443c4cad4f0e2b30abd4eac613f6ab845c2bc1b7ce66ae9694c7321e6ada5bd96
13220 languageName: node
13221 linkType: hard
13222
7270"picocolors@npm:^1.0.0": 13223"picocolors@npm:^1.0.0":
7271 version: 1.0.0 13224 version: 1.0.0
7272 resolution: "picocolors@npm:1.0.0" 13225 resolution: "picocolors@npm:1.0.0"
@@ -7274,13 +13227,40 @@ __metadata:
7274 languageName: node 13227 languageName: node
7275 linkType: hard 13228 linkType: hard
7276 13229
7277"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.3.1": 13230"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1":
7278 version: 2.3.1 13231 version: 2.3.1
7279 resolution: "picomatch@npm:2.3.1" 13232 resolution: "picomatch@npm:2.3.1"
7280 checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be 13233 checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be
7281 languageName: node 13234 languageName: node
7282 linkType: hard 13235 linkType: hard
7283 13236
13237"pkg-dir@npm:^4.1.0":
13238 version: 4.2.0
13239 resolution: "pkg-dir@npm:4.2.0"
13240 dependencies:
13241 find-up: "npm:^4.0.0"
13242 checksum: 10c0/c56bda7769e04907a88423feb320babaed0711af8c436ce3e56763ab1021ba107c7b0cafb11cde7529f669cfc22bffcaebffb573645cbd63842ea9fb17cd7728
13243 languageName: node
13244 linkType: hard
13245
13246"pkg-dir@npm:^7.0.0":
13247 version: 7.0.0
13248 resolution: "pkg-dir@npm:7.0.0"
13249 dependencies:
13250 find-up: "npm:^6.3.0"
13251 checksum: 10c0/1afb23d2efb1ec9d8b2c4a0c37bf146822ad2774f074cb05b853be5dca1b40815c5960dd126df30ab8908349262a266f31b771e877235870a3b8fd313beebec5
13252 languageName: node
13253 linkType: hard
13254
13255"pkg-up@npm:^3.1.0":
13256 version: 3.1.0
13257 resolution: "pkg-up@npm:3.1.0"
13258 dependencies:
13259 find-up: "npm:^3.0.0"
13260 checksum: 10c0/ecb60e1f8e1f611c0bdf1a0b6a474d6dfb51185567dc6f29cdef37c8d480ecba5362e006606bb290519bbb6f49526c403fabea93c3090c20368d98bb90c999ab
13261 languageName: node
13262 linkType: hard
13263
7284"pnpapi@npm:^0.0.0": 13264"pnpapi@npm:^0.0.0":
7285 version: 0.0.0 13265 version: 0.0.0
7286 resolution: "pnpapi@npm:0.0.0" 13266 resolution: "pnpapi@npm:0.0.0"
@@ -7295,7 +13275,441 @@ __metadata:
7295 languageName: node 13275 languageName: node
7296 linkType: hard 13276 linkType: hard
7297 13277
7298"postcss@npm:^8.4.38": 13278"postcss-calc@npm:^8.2.3":
13279 version: 8.2.4
13280 resolution: "postcss-calc@npm:8.2.4"
13281 dependencies:
13282 postcss-selector-parser: "npm:^6.0.9"
13283 postcss-value-parser: "npm:^4.2.0"
13284 peerDependencies:
13285 postcss: ^8.2.2
13286 checksum: 10c0/8518a429488c3283ff1560c83a511f6f772329bc61d88875eb7c83e13a8683b7ccbdccaa9946024cf1553da3eacd2f40fcbcebf1095f7fdeb432bf86bc6ba6ba
13287 languageName: node
13288 linkType: hard
13289
13290"postcss-colormin@npm:^5.3.1":
13291 version: 5.3.1
13292 resolution: "postcss-colormin@npm:5.3.1"
13293 dependencies:
13294 browserslist: "npm:^4.21.4"
13295 caniuse-api: "npm:^3.0.0"
13296 colord: "npm:^2.9.1"
13297 postcss-value-parser: "npm:^4.2.0"
13298 peerDependencies:
13299 postcss: ^8.2.15
13300 checksum: 10c0/c4ca6f335dd992dc8e3df24bffc3495c4e504eba8489c81cb6836fdce3203f423cf4c0b640c4b63c586f588c59d82adb5313c3c5d1a68113896d18ed71caa462
13301 languageName: node
13302 linkType: hard
13303
13304"postcss-convert-values@npm:^5.1.3":
13305 version: 5.1.3
13306 resolution: "postcss-convert-values@npm:5.1.3"
13307 dependencies:
13308 browserslist: "npm:^4.21.4"
13309 postcss-value-parser: "npm:^4.2.0"
13310 peerDependencies:
13311 postcss: ^8.2.15
13312 checksum: 10c0/cd10a81781a12487b2921ff84a1a068e948a1956b9539a284c202abecf4cacdd3e106eb026026b22dbf70933f4315c824c111f6b71f56c355e47b842ca9b1dec
13313 languageName: node
13314 linkType: hard
13315
13316"postcss-discard-comments@npm:^5.1.2":
13317 version: 5.1.2
13318 resolution: "postcss-discard-comments@npm:5.1.2"
13319 peerDependencies:
13320 postcss: ^8.2.15
13321 checksum: 10c0/cb5ba81623c498e18d406138e7d27d69fc668802a1139a8de69d28e80b3fe222cda7b634940512cae78d04f0c78afcd15d92bcf80e537c6c85fa8ff9cd61d00f
13322 languageName: node
13323 linkType: hard
13324
13325"postcss-discard-duplicates@npm:^5.1.0":
13326 version: 5.1.0
13327 resolution: "postcss-discard-duplicates@npm:5.1.0"
13328 peerDependencies:
13329 postcss: ^8.2.15
13330 checksum: 10c0/3d3a49536c56097c06b4f085412e0cda0854fac1c559563ccb922d9fab6305ff13058cd6fee422aa66c1d7e466add4e7672d7ae2ff551a4af6f1a8d2142d471f
13331 languageName: node
13332 linkType: hard
13333
13334"postcss-discard-empty@npm:^5.1.1":
13335 version: 5.1.1
13336 resolution: "postcss-discard-empty@npm:5.1.1"
13337 peerDependencies:
13338 postcss: ^8.2.15
13339 checksum: 10c0/36c8b2197af836dbd93168c72cde4edc1f10fe00e564824119da076d3764909745bb60e4ada04052322e26872d1bce6a37c56815f1c48c813a21adca1a41fbdc
13340 languageName: node
13341 linkType: hard
13342
13343"postcss-discard-overridden@npm:^5.1.0":
13344 version: 5.1.0
13345 resolution: "postcss-discard-overridden@npm:5.1.0"
13346 peerDependencies:
13347 postcss: ^8.2.15
13348 checksum: 10c0/7d3fc0b0d90599606fc083327a7c24390f90270a94a0119af4b74815d518948581579281f63b9bfa62e2644edf59bc9e725dc04ea5ba213f697804f3fb4dd8dc
13349 languageName: node
13350 linkType: hard
13351
13352"postcss-discard-unused@npm:^5.1.0":
13353 version: 5.1.0
13354 resolution: "postcss-discard-unused@npm:5.1.0"
13355 dependencies:
13356 postcss-selector-parser: "npm:^6.0.5"
13357 peerDependencies:
13358 postcss: ^8.2.15
13359 checksum: 10c0/eb7649eae1ef9987c397f4f533eb83f4245686317a5a0b468affd875d4d22778b62134e638198750efbaa41b7b7767995a91e5eb58d5fbbfe097506a3311102b
13360 languageName: node
13361 linkType: hard
13362
13363"postcss-loader@npm:^7.3.3":
13364 version: 7.3.4
13365 resolution: "postcss-loader@npm:7.3.4"
13366 dependencies:
13367 cosmiconfig: "npm:^8.3.5"
13368 jiti: "npm:^1.20.0"
13369 semver: "npm:^7.5.4"
13370 peerDependencies:
13371 postcss: ^7.0.0 || ^8.0.1
13372 webpack: ^5.0.0
13373 checksum: 10c0/1bf7614aeea9ad1f8ee6be3a5451576c059391688ea67f825aedc2674056369597faeae4e4a81fe10843884c9904a71403d9a54197e1f560e8fbb9e61f2a2680
13374 languageName: node
13375 linkType: hard
13376
13377"postcss-merge-idents@npm:^5.1.1":
13378 version: 5.1.1
13379 resolution: "postcss-merge-idents@npm:5.1.1"
13380 dependencies:
13381 cssnano-utils: "npm:^3.1.0"
13382 postcss-value-parser: "npm:^4.2.0"
13383 peerDependencies:
13384 postcss: ^8.2.15
13385 checksum: 10c0/97552b831330a8055641d3aea7b9840c60922d22d7fefdaf109daa7dee543e48a93ea6189a5549798b3f29e66657bc5c520e76493a04f8f999b94a2c8fee6060
13386 languageName: node
13387 linkType: hard
13388
13389"postcss-merge-longhand@npm:^5.1.7":
13390 version: 5.1.7
13391 resolution: "postcss-merge-longhand@npm:5.1.7"
13392 dependencies:
13393 postcss-value-parser: "npm:^4.2.0"
13394 stylehacks: "npm:^5.1.1"
13395 peerDependencies:
13396 postcss: ^8.2.15
13397 checksum: 10c0/4d9f44b03f19522cc81ae4f5b1f2a9ef2db918dbd8b3042d4f1b2461b2230b8ec1269334db6a67a863ba68f64cabd712e6e45340ddb22a3fc03cd34df69d2bf0
13398 languageName: node
13399 linkType: hard
13400
13401"postcss-merge-rules@npm:^5.1.4":
13402 version: 5.1.4
13403 resolution: "postcss-merge-rules@npm:5.1.4"
13404 dependencies:
13405 browserslist: "npm:^4.21.4"
13406 caniuse-api: "npm:^3.0.0"
13407 cssnano-utils: "npm:^3.1.0"
13408 postcss-selector-parser: "npm:^6.0.5"
13409 peerDependencies:
13410 postcss: ^8.2.15
13411 checksum: 10c0/e7686cdda052071bf98810ad381e26145c43a2286f9540f04f97ef93101604b78d478dd555db91e5f73751bb353c283ba75c2fcb16a3751ac7d93dc6a0130c41
13412 languageName: node
13413 linkType: hard
13414
13415"postcss-minify-font-values@npm:^5.1.0":
13416 version: 5.1.0
13417 resolution: "postcss-minify-font-values@npm:5.1.0"
13418 dependencies:
13419 postcss-value-parser: "npm:^4.2.0"
13420 peerDependencies:
13421 postcss: ^8.2.15
13422 checksum: 10c0/7aa4f93a853b657f79a8b28d0e924cafce3720086d9da02ce04b8b2f8de42e18ce32c8f7f1078390fb5ec82468e2d8e771614387cea3563f05fd9fa1798e1c59
13423 languageName: node
13424 linkType: hard
13425
13426"postcss-minify-gradients@npm:^5.1.1":
13427 version: 5.1.1
13428 resolution: "postcss-minify-gradients@npm:5.1.1"
13429 dependencies:
13430 colord: "npm:^2.9.1"
13431 cssnano-utils: "npm:^3.1.0"
13432 postcss-value-parser: "npm:^4.2.0"
13433 peerDependencies:
13434 postcss: ^8.2.15
13435 checksum: 10c0/bcb2802d7c8f0f76c7cff089884844f26c24b95f35c3ec951d7dec8c212495d1873d6ba62d6225ce264570e8e0668e271f9bc79bb6f5d2429c1f8933f4e3021d
13436 languageName: node
13437 linkType: hard
13438
13439"postcss-minify-params@npm:^5.1.4":
13440 version: 5.1.4
13441 resolution: "postcss-minify-params@npm:5.1.4"
13442 dependencies:
13443 browserslist: "npm:^4.21.4"
13444 cssnano-utils: "npm:^3.1.0"
13445 postcss-value-parser: "npm:^4.2.0"
13446 peerDependencies:
13447 postcss: ^8.2.15
13448 checksum: 10c0/debce6f0f7dd9af69b4bb9e467ea1ccccff2d849b6020461a2b9741c0c137340e6076c245dc2e83880180eb2e82936280fa31dfe8608e5a2e3618f3d864314c5
13449 languageName: node
13450 linkType: hard
13451
13452"postcss-minify-selectors@npm:^5.2.1":
13453 version: 5.2.1
13454 resolution: "postcss-minify-selectors@npm:5.2.1"
13455 dependencies:
13456 postcss-selector-parser: "npm:^6.0.5"
13457 peerDependencies:
13458 postcss: ^8.2.15
13459 checksum: 10c0/f3f4ec110f5f697cfc9dde3e491ff10aa07509bf33cc940aa539e4b5b643d1b9f8bb97f8bb83d05fc96f5eeb220500ebdeffbde513bd176c0671e21c2c96fab9
13460 languageName: node
13461 linkType: hard
13462
13463"postcss-modules-extract-imports@npm:^3.1.0":
13464 version: 3.1.0
13465 resolution: "postcss-modules-extract-imports@npm:3.1.0"
13466 peerDependencies:
13467 postcss: ^8.1.0
13468 checksum: 10c0/402084bcab376083c4b1b5111b48ec92974ef86066f366f0b2d5b2ac2b647d561066705ade4db89875a13cb175b33dd6af40d16d32b2ea5eaf8bac63bd2bf219
13469 languageName: node
13470 linkType: hard
13471
13472"postcss-modules-local-by-default@npm:^4.0.5":
13473 version: 4.0.5
13474 resolution: "postcss-modules-local-by-default@npm:4.0.5"
13475 dependencies:
13476 icss-utils: "npm:^5.0.0"
13477 postcss-selector-parser: "npm:^6.0.2"
13478 postcss-value-parser: "npm:^4.1.0"
13479 peerDependencies:
13480 postcss: ^8.1.0
13481 checksum: 10c0/f4ad35abeb685ecb25f80c93d9fe23c8b89ee45ac4185f3560e701b4d7372f9b798577e79c5ed03b6d9c80bc923b001210c127c04ced781f43cda9e32b202a5b
13482 languageName: node
13483 linkType: hard
13484
13485"postcss-modules-scope@npm:^3.2.0":
13486 version: 3.2.0
13487 resolution: "postcss-modules-scope@npm:3.2.0"
13488 dependencies:
13489 postcss-selector-parser: "npm:^6.0.4"
13490 peerDependencies:
13491 postcss: ^8.1.0
13492 checksum: 10c0/a2f5ffe372169b3feb8628cd785eb748bf12e344cfa57bce9e5cdc4fa5adcdb40d36daa86bb35dad53427703b185772aad08825b5783f745fcb1b6039454a84b
13493 languageName: node
13494 linkType: hard
13495
13496"postcss-modules-values@npm:^4.0.0":
13497 version: 4.0.0
13498 resolution: "postcss-modules-values@npm:4.0.0"
13499 dependencies:
13500 icss-utils: "npm:^5.0.0"
13501 peerDependencies:
13502 postcss: ^8.1.0
13503 checksum: 10c0/dd18d7631b5619fb9921b198c86847a2a075f32e0c162e0428d2647685e318c487a2566cc8cc669fc2077ef38115cde7a068e321f46fb38be3ad49646b639dbc
13504 languageName: node
13505 linkType: hard
13506
13507"postcss-normalize-charset@npm:^5.1.0":
13508 version: 5.1.0
13509 resolution: "postcss-normalize-charset@npm:5.1.0"
13510 peerDependencies:
13511 postcss: ^8.2.15
13512 checksum: 10c0/aa481584d4db48e0dbf820f992fa235e6c41ff3d4701a62d349f33c1ad4c5c7dcdea3096db9ff2a5c9497e9bed2186d594ccdb1b42d57b30f58affba5829ad9c
13513 languageName: node
13514 linkType: hard
13515
13516"postcss-normalize-display-values@npm:^5.1.0":
13517 version: 5.1.0
13518 resolution: "postcss-normalize-display-values@npm:5.1.0"
13519 dependencies:
13520 postcss-value-parser: "npm:^4.2.0"
13521 peerDependencies:
13522 postcss: ^8.2.15
13523 checksum: 10c0/70b164fda885c097c02c98914fba4cd19b2382ff5f85f77e5315d88a1d477b4803f0f271d95a38e044e2a6c3b781c5c9bfb83222fc577199f2aeb0b8f4254e2f
13524 languageName: node
13525 linkType: hard
13526
13527"postcss-normalize-positions@npm:^5.1.1":
13528 version: 5.1.1
13529 resolution: "postcss-normalize-positions@npm:5.1.1"
13530 dependencies:
13531 postcss-value-parser: "npm:^4.2.0"
13532 peerDependencies:
13533 postcss: ^8.2.15
13534 checksum: 10c0/910d58991fd38a7cf6ed6471e6fa4a96349690ad1a99a02e8cac46d76ba5045f2fca453088b68b05ff665afd96dc617c4674c68acaeabbe83f502e4963fb78b1
13535 languageName: node
13536 linkType: hard
13537
13538"postcss-normalize-repeat-style@npm:^5.1.1":
13539 version: 5.1.1
13540 resolution: "postcss-normalize-repeat-style@npm:5.1.1"
13541 dependencies:
13542 postcss-value-parser: "npm:^4.2.0"
13543 peerDependencies:
13544 postcss: ^8.2.15
13545 checksum: 10c0/57c3817a2107ebb17e4ceee3831d230c72a3ccc7650f4d5f12aa54f6ea766777401f4f63b2615b721350b2e8c7ae0b0bbc3f1c5ad4e7fa737c9efb92cfa0cbb0
13546 languageName: node
13547 linkType: hard
13548
13549"postcss-normalize-string@npm:^5.1.0":
13550 version: 5.1.0
13551 resolution: "postcss-normalize-string@npm:5.1.0"
13552 dependencies:
13553 postcss-value-parser: "npm:^4.2.0"
13554 peerDependencies:
13555 postcss: ^8.2.15
13556 checksum: 10c0/a5e9979998f478d385ddff865bdd8a4870af69fa8c91c9398572a299ff39b39a6bda922a48fab0d2cddc639f30159c39baaed880ed7d13cd27cc64eaa9400b3b
13557 languageName: node
13558 linkType: hard
13559
13560"postcss-normalize-timing-functions@npm:^5.1.0":
13561 version: 5.1.0
13562 resolution: "postcss-normalize-timing-functions@npm:5.1.0"
13563 dependencies:
13564 postcss-value-parser: "npm:^4.2.0"
13565 peerDependencies:
13566 postcss: ^8.2.15
13567 checksum: 10c0/afb34d8e313004ae8cd92910bf1a6eb9885f29ae803cd9032b6dfe7b67a9ad93f800976f10e55170b2b08fe9484825e9272629971186812c2764c73843268237
13568 languageName: node
13569 linkType: hard
13570
13571"postcss-normalize-unicode@npm:^5.1.1":
13572 version: 5.1.1
13573 resolution: "postcss-normalize-unicode@npm:5.1.1"
13574 dependencies:
13575 browserslist: "npm:^4.21.4"
13576 postcss-value-parser: "npm:^4.2.0"
13577 peerDependencies:
13578 postcss: ^8.2.15
13579 checksum: 10c0/c102888d488d05c53ab10ffcd4e0efb892ef0cc2f9b0abe9c9b175a2d7a9c226981ca6806ed9e5c1b82a8190f2b3a8342a6de800f019b417130661b0787ff6d7
13580 languageName: node
13581 linkType: hard
13582
13583"postcss-normalize-url@npm:^5.1.0":
13584 version: 5.1.0
13585 resolution: "postcss-normalize-url@npm:5.1.0"
13586 dependencies:
13587 normalize-url: "npm:^6.0.1"
13588 postcss-value-parser: "npm:^4.2.0"
13589 peerDependencies:
13590 postcss: ^8.2.15
13591 checksum: 10c0/a016cefd1ef80f74ef9dbed50593d3b533101e93aaadfc292896fddd8d6c3eb732a9fc5cb2e0d27f79c1f60f0fdfc40b045a494b514451e9610c6acf9392eb98
13592 languageName: node
13593 linkType: hard
13594
13595"postcss-normalize-whitespace@npm:^5.1.1":
13596 version: 5.1.1
13597 resolution: "postcss-normalize-whitespace@npm:5.1.1"
13598 dependencies:
13599 postcss-value-parser: "npm:^4.2.0"
13600 peerDependencies:
13601 postcss: ^8.2.15
13602 checksum: 10c0/d7b53dd90fe369bfb9838a40096db904a41f50dadfd04247ec07d7ab5588c3d4e70d1c7f930523bd061cb74e6683cef45c6e6c4eb57ea174ee3fc99f3de222d1
13603 languageName: node
13604 linkType: hard
13605
13606"postcss-ordered-values@npm:^5.1.3":
13607 version: 5.1.3
13608 resolution: "postcss-ordered-values@npm:5.1.3"
13609 dependencies:
13610 cssnano-utils: "npm:^3.1.0"
13611 postcss-value-parser: "npm:^4.2.0"
13612 peerDependencies:
13613 postcss: ^8.2.15
13614 checksum: 10c0/55abfbd2c7267eefed62a881ed0b5c0c98409c50a589526a3ebb9f8d879979203e523b8888fa84732bdd1ac887f721287a037002fa70c27c8d33f1bcbae9d9c6
13615 languageName: node
13616 linkType: hard
13617
13618"postcss-reduce-idents@npm:^5.2.0":
13619 version: 5.2.0
13620 resolution: "postcss-reduce-idents@npm:5.2.0"
13621 dependencies:
13622 postcss-value-parser: "npm:^4.2.0"
13623 peerDependencies:
13624 postcss: ^8.2.15
13625 checksum: 10c0/f7a6bc0caa531e7983c98a79d796e078ff8d02df1bb38357a5d7f11ddb5842d6777ab090fd811e889ab1a5e92ba2644c9a9e5e353f7c9f7ce85dbf1e07001c29
13626 languageName: node
13627 linkType: hard
13628
13629"postcss-reduce-initial@npm:^5.1.2":
13630 version: 5.1.2
13631 resolution: "postcss-reduce-initial@npm:5.1.2"
13632 dependencies:
13633 browserslist: "npm:^4.21.4"
13634 caniuse-api: "npm:^3.0.0"
13635 peerDependencies:
13636 postcss: ^8.2.15
13637 checksum: 10c0/ddb2ce61c8d0997184f08200eafdf32b3c67e88228fee960f5e2010c32da0c1d8ea07712585bf2b3aaa15f583066401d45db2c1131527c5116ca6794ebebd865
13638 languageName: node
13639 linkType: hard
13640
13641"postcss-reduce-transforms@npm:^5.1.0":
13642 version: 5.1.0
13643 resolution: "postcss-reduce-transforms@npm:5.1.0"
13644 dependencies:
13645 postcss-value-parser: "npm:^4.2.0"
13646 peerDependencies:
13647 postcss: ^8.2.15
13648 checksum: 10c0/caefaeb78652ad8701b94e91500e38551255e4899fa298a7357519a36cbeebae088eab4535e00f17675a1230f448c4a7077045639d496da4614a46bc41df4add
13649 languageName: node
13650 linkType: hard
13651
13652"postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.0.5, postcss-selector-parser@npm:^6.0.9":
13653 version: 6.0.16
13654 resolution: "postcss-selector-parser@npm:6.0.16"
13655 dependencies:
13656 cssesc: "npm:^3.0.0"
13657 util-deprecate: "npm:^1.0.2"
13658 checksum: 10c0/0e11657cb3181aaf9ff67c2e59427c4df496b4a1b6a17063fae579813f80af79d444bf38f82eeb8b15b4679653fd3089e66ef0283f9aab01874d885e6cf1d2cf
13659 languageName: node
13660 linkType: hard
13661
13662"postcss-sort-media-queries@npm:^4.4.1":
13663 version: 4.4.1
13664 resolution: "postcss-sort-media-queries@npm:4.4.1"
13665 dependencies:
13666 sort-css-media-queries: "npm:2.1.0"
13667 peerDependencies:
13668 postcss: ^8.4.16
13669 checksum: 10c0/8bbc604daee29dc3e1f5090df972599c3c0eb08b37650e16c134a040cc1357484a48bbe03dac2977d616be1d490cde2934226fa1e6f7e52f4f5e7bf8f57e98d6
13670 languageName: node
13671 linkType: hard
13672
13673"postcss-svgo@npm:^5.1.0":
13674 version: 5.1.0
13675 resolution: "postcss-svgo@npm:5.1.0"
13676 dependencies:
13677 postcss-value-parser: "npm:^4.2.0"
13678 svgo: "npm:^2.7.0"
13679 peerDependencies:
13680 postcss: ^8.2.15
13681 checksum: 10c0/309634a587e38fef244648bc9cd1817e12144868d24f1173d87b1edc14a4a7fca614962b2cb9d93f4801e11bd8d676083986ad40ebab4438cb84731ce1571994
13682 languageName: node
13683 linkType: hard
13684
13685"postcss-unique-selectors@npm:^5.1.1":
13686 version: 5.1.1
13687 resolution: "postcss-unique-selectors@npm:5.1.1"
13688 dependencies:
13689 postcss-selector-parser: "npm:^6.0.5"
13690 peerDependencies:
13691 postcss: ^8.2.15
13692 checksum: 10c0/484f6409346d6244c134c5cdcd62f4f2751b269742f95222f13d8bac5fb224471ffe04e28a354670cbe0bdc2707778ead034fc1b801b473ffcbea5436807de30
13693 languageName: node
13694 linkType: hard
13695
13696"postcss-value-parser@npm:^4.1.0, postcss-value-parser@npm:^4.2.0":
13697 version: 4.2.0
13698 resolution: "postcss-value-parser@npm:4.2.0"
13699 checksum: 10c0/f4142a4f56565f77c1831168e04e3effd9ffcc5aebaf0f538eee4b2d465adfd4b85a44257bb48418202a63806a7da7fe9f56c330aebb3cac898e46b4cbf49161
13700 languageName: node
13701 linkType: hard
13702
13703"postcss-zindex@npm:^5.1.0":
13704 version: 5.1.0
13705 resolution: "postcss-zindex@npm:5.1.0"
13706 peerDependencies:
13707 postcss: ^8.2.15
13708 checksum: 10c0/f739d3c0dec3875c770d6a101bc6ac1ccf545b0121e75b7fade911ad6ce454a2af87e6c3587c80a76a00f217e1761778f2083c2807eb78c17bfc53624b625ded
13709 languageName: node
13710 linkType: hard
13711
13712"postcss@npm:^8.4.17, postcss@npm:^8.4.21, postcss@npm:^8.4.26, postcss@npm:^8.4.33, postcss@npm:^8.4.38":
7299 version: 8.4.38 13713 version: 8.4.38
7300 resolution: "postcss@npm:8.4.38" 13714 resolution: "postcss@npm:8.4.38"
7301 dependencies: 13715 dependencies:
@@ -7354,6 +13768,49 @@ __metadata:
7354 languageName: node 13768 languageName: node
7355 linkType: hard 13769 linkType: hard
7356 13770
13771"pretty-error@npm:^4.0.0":
13772 version: 4.0.0
13773 resolution: "pretty-error@npm:4.0.0"
13774 dependencies:
13775 lodash: "npm:^4.17.20"
13776 renderkid: "npm:^3.0.0"
13777 checksum: 10c0/dc292c087e2857b2e7592784ab31e37a40f3fa918caa11eba51f9fb2853e1d4d6e820b219917e35f5721d833cfd20fdf4f26ae931a90fd1ad0cae2125c345138
13778 languageName: node
13779 linkType: hard
13780
13781"pretty-time@npm:^1.1.0":
13782 version: 1.1.0
13783 resolution: "pretty-time@npm:1.1.0"
13784 checksum: 10c0/ba9d7af19cd43838fb2b147654990949575e400dc2cc24bf71ec4a6c4033a38ba8172b1014b597680c6d4d3c075e94648b2c13a7206c5f0c90b711c7388726f3
13785 languageName: node
13786 linkType: hard
13787
13788"prism-react-renderer@npm:^2.3.0, prism-react-renderer@npm:^2.3.1":
13789 version: 2.3.1
13790 resolution: "prism-react-renderer@npm:2.3.1"
13791 dependencies:
13792 "@types/prismjs": "npm:^1.26.0"
13793 clsx: "npm:^2.0.0"
13794 peerDependencies:
13795 react: ">=16.0.0"
13796 checksum: 10c0/566932127ca18049a651aa038a8f8c7c1ca15950d21b659c2ce71fd95bd03bef2b5d40c489e7aa3453eaf15d984deef542a609d7842e423e6a13427dd90bd371
13797 languageName: node
13798 linkType: hard
13799
13800"prismjs@npm:^1.29.0":
13801 version: 1.29.0
13802 resolution: "prismjs@npm:1.29.0"
13803 checksum: 10c0/d906c4c4d01b446db549b4f57f72d5d7e6ccaca04ecc670fb85cea4d4b1acc1283e945a9cbc3d81819084a699b382f970e02f9d1378e14af9808d366d9ed7ec6
13804 languageName: node
13805 linkType: hard
13806
13807"process-nextick-args@npm:~2.0.0":
13808 version: 2.0.1
13809 resolution: "process-nextick-args@npm:2.0.1"
13810 checksum: 10c0/bec089239487833d46b59d80327a1605e1c5287eaad770a291add7f45fda1bb5e28b38e0e061add0a1d0ee0984788ce74fa394d345eed1c420cacf392c554367
13811 languageName: node
13812 linkType: hard
13813
7357"promise-retry@npm:^2.0.1": 13814"promise-retry@npm:^2.0.1":
7358 version: 2.0.1 13815 version: 2.0.1
7359 resolution: "promise-retry@npm:2.0.1" 13816 resolution: "promise-retry@npm:2.0.1"
@@ -7364,7 +13821,17 @@ __metadata:
7364 languageName: node 13821 languageName: node
7365 linkType: hard 13822 linkType: hard
7366 13823
7367"prop-types@npm:^15.6.2, prop-types@npm:^15.8.1": 13824"prompts@npm:^2.4.2":
13825 version: 2.4.2
13826 resolution: "prompts@npm:2.4.2"
13827 dependencies:
13828 kleur: "npm:^3.0.3"
13829 sisteransi: "npm:^1.0.5"
13830 checksum: 10c0/16f1ac2977b19fe2cf53f8411cc98db7a3c8b115c479b2ca5c82b5527cd937aa405fa04f9a5960abeb9daef53191b53b4d13e35c1f5d50e8718c76917c5f1ea4
13831 languageName: node
13832 linkType: hard
13833
13834"prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1":
7368 version: 15.8.1 13835 version: 15.8.1
7369 resolution: "prop-types@npm:15.8.1" 13836 resolution: "prop-types@npm:15.8.1"
7370 dependencies: 13837 dependencies:
@@ -7375,6 +13842,37 @@ __metadata:
7375 languageName: node 13842 languageName: node
7376 linkType: hard 13843 linkType: hard
7377 13844
13845"property-information@npm:^6.0.0":
13846 version: 6.5.0
13847 resolution: "property-information@npm:6.5.0"
13848 checksum: 10c0/981e0f9cc2e5acdb414a6fd48a99dd0fd3a4079e7a91ab41cf97a8534cf43e0e0bc1ffada6602a1b3d047a33db8b5fc2ef46d863507eda712d5ceedac443f0ef
13849 languageName: node
13850 linkType: hard
13851
13852"proto-list@npm:~1.2.1":
13853 version: 1.2.4
13854 resolution: "proto-list@npm:1.2.4"
13855 checksum: 10c0/b9179f99394ec8a68b8afc817690185f3b03933f7b46ce2e22c1930dc84b60d09f5ad222beab4e59e58c6c039c7f7fcf620397235ef441a356f31f9744010e12
13856 languageName: node
13857 linkType: hard
13858
13859"proxy-addr@npm:~2.0.7":
13860 version: 2.0.7
13861 resolution: "proxy-addr@npm:2.0.7"
13862 dependencies:
13863 forwarded: "npm:0.2.0"
13864 ipaddr.js: "npm:1.9.1"
13865 checksum: 10c0/c3eed999781a35f7fd935f398b6d8920b6fb00bbc14287bc6de78128ccc1a02c89b95b56742bf7cf0362cc333c61d138532049c7dedc7a328ef13343eff81210
13866 languageName: node
13867 linkType: hard
13868
13869"punycode@npm:^1.3.2":
13870 version: 1.4.1
13871 resolution: "punycode@npm:1.4.1"
13872 checksum: 10c0/354b743320518aef36f77013be6e15da4db24c2b4f62c5f1eb0529a6ed02fbaf1cb52925785f6ab85a962f2b590d9cd5ad730b70da72b5f180e2556b8bd3ca08
13873 languageName: node
13874 linkType: hard
13875
7378"punycode@npm:^2.1.0": 13876"punycode@npm:^2.1.0":
7379 version: 2.3.0 13877 version: 2.3.0
7380 resolution: "punycode@npm:2.3.0" 13878 resolution: "punycode@npm:2.3.0"
@@ -7382,6 +13880,24 @@ __metadata:
7382 languageName: node 13880 languageName: node
7383 linkType: hard 13881 linkType: hard
7384 13882
13883"pupa@npm:^3.1.0":
13884 version: 3.1.0
13885 resolution: "pupa@npm:3.1.0"
13886 dependencies:
13887 escape-goat: "npm:^4.0.0"
13888 checksum: 10c0/02afa6e4547a733484206aaa8f8eb3fbfb12d3dd17d7ca4fa1ea390a7da2cb8f381e38868bbf68009c4d372f8f6059f553171b6a712d8f2802c7cd43d513f06c
13889 languageName: node
13890 linkType: hard
13891
13892"qs@npm:6.11.0":
13893 version: 6.11.0
13894 resolution: "qs@npm:6.11.0"
13895 dependencies:
13896 side-channel: "npm:^1.0.4"
13897 checksum: 10c0/4e4875e4d7c7c31c233d07a448e7e4650f456178b9dd3766b7cfa13158fdb24ecb8c4f059fa91e820dc6ab9f2d243721d071c9c0378892dcdad86e9e9a27c68f
13898 languageName: node
13899 linkType: hard
13900
7385"queue-microtask@npm:^1.2.2": 13901"queue-microtask@npm:^1.2.2":
7386 version: 1.2.3 13902 version: 1.2.3
7387 resolution: "queue-microtask@npm:1.2.3" 13903 resolution: "queue-microtask@npm:1.2.3"
@@ -7389,6 +13905,22 @@ __metadata:
7389 languageName: node 13905 languageName: node
7390 linkType: hard 13906 linkType: hard
7391 13907
13908"queue@npm:6.0.2":
13909 version: 6.0.2
13910 resolution: "queue@npm:6.0.2"
13911 dependencies:
13912 inherits: "npm:~2.0.3"
13913 checksum: 10c0/cf987476cc72e7d3aaabe23ccefaab1cd757a2b5e0c8d80b67c9575a6b5e1198807ffd4f0948a3f118b149d1111d810ee773473530b77a5c606673cac2c9c996
13914 languageName: node
13915 linkType: hard
13916
13917"quick-lru@npm:^5.1.1":
13918 version: 5.1.1
13919 resolution: "quick-lru@npm:5.1.1"
13920 checksum: 10c0/a24cba5da8cec30d70d2484be37622580f64765fb6390a928b17f60cd69e8dbd32a954b3ff9176fa1b86d86ff2ba05252fae55dc4d40d0291c60412b0ad096da
13921 languageName: node
13922 linkType: hard
13923
7392"raf@npm:^3.4.1": 13924"raf@npm:^3.4.1":
7393 version: 3.4.1 13925 version: 3.4.1
7394 resolution: "raf@npm:3.4.1" 13926 resolution: "raf@npm:3.4.1"
@@ -7407,19 +13939,135 @@ __metadata:
7407 languageName: node 13939 languageName: node
7408 linkType: hard 13940 linkType: hard
7409 13941
7410"react-dom@npm:^18.2.0": 13942"range-parser@npm:1.2.0":
7411 version: 18.2.0 13943 version: 1.2.0
7412 resolution: "react-dom@npm:18.2.0" 13944 resolution: "range-parser@npm:1.2.0"
13945 checksum: 10c0/c7aef4f6588eb974c475649c157f197d07437d8c6c8ff7e36280a141463fb5ab7a45918417334ebd7b665c6b8321cf31c763f7631dd5f5db9372249261b8b02a
13946 languageName: node
13947 linkType: hard
13948
13949"range-parser@npm:^1.2.1, range-parser@npm:~1.2.1":
13950 version: 1.2.1
13951 resolution: "range-parser@npm:1.2.1"
13952 checksum: 10c0/96c032ac2475c8027b7a4e9fe22dc0dfe0f6d90b85e496e0f016fbdb99d6d066de0112e680805075bd989905e2123b3b3d002765149294dce0c1f7f01fcc2ea0
13953 languageName: node
13954 linkType: hard
13955
13956"raw-body@npm:2.5.2":
13957 version: 2.5.2
13958 resolution: "raw-body@npm:2.5.2"
13959 dependencies:
13960 bytes: "npm:3.1.2"
13961 http-errors: "npm:2.0.0"
13962 iconv-lite: "npm:0.4.24"
13963 unpipe: "npm:1.0.0"
13964 checksum: 10c0/b201c4b66049369a60e766318caff5cb3cc5a900efd89bdac431463822d976ad0670912c931fdbdcf5543207daf6f6833bca57aa116e1661d2ea91e12ca692c4
13965 languageName: node
13966 linkType: hard
13967
13968"rc@npm:1.2.8":
13969 version: 1.2.8
13970 resolution: "rc@npm:1.2.8"
13971 dependencies:
13972 deep-extend: "npm:^0.6.0"
13973 ini: "npm:~1.3.0"
13974 minimist: "npm:^1.2.0"
13975 strip-json-comments: "npm:~2.0.1"
13976 bin:
13977 rc: ./cli.js
13978 checksum: 10c0/24a07653150f0d9ac7168e52943cc3cb4b7a22c0e43c7dff3219977c2fdca5a2760a304a029c20811a0e79d351f57d46c9bde216193a0f73978496afc2b85b15
13979 languageName: node
13980 linkType: hard
13981
13982"react-dev-utils@npm:^12.0.1":
13983 version: 12.0.1
13984 resolution: "react-dev-utils@npm:12.0.1"
13985 dependencies:
13986 "@babel/code-frame": "npm:^7.16.0"
13987 address: "npm:^1.1.2"
13988 browserslist: "npm:^4.18.1"
13989 chalk: "npm:^4.1.2"
13990 cross-spawn: "npm:^7.0.3"
13991 detect-port-alt: "npm:^1.1.6"
13992 escape-string-regexp: "npm:^4.0.0"
13993 filesize: "npm:^8.0.6"
13994 find-up: "npm:^5.0.0"
13995 fork-ts-checker-webpack-plugin: "npm:^6.5.0"
13996 global-modules: "npm:^2.0.0"
13997 globby: "npm:^11.0.4"
13998 gzip-size: "npm:^6.0.0"
13999 immer: "npm:^9.0.7"
14000 is-root: "npm:^2.1.0"
14001 loader-utils: "npm:^3.2.0"
14002 open: "npm:^8.4.0"
14003 pkg-up: "npm:^3.1.0"
14004 prompts: "npm:^2.4.2"
14005 react-error-overlay: "npm:^6.0.11"
14006 recursive-readdir: "npm:^2.2.2"
14007 shell-quote: "npm:^1.7.3"
14008 strip-ansi: "npm:^6.0.1"
14009 text-table: "npm:^0.2.0"
14010 checksum: 10c0/94bc4ee5014290ca47a025e53ab2205c5dc0299670724d46a0b1bacbdd48904827b5ae410842d0a3a92481509097ae032e4a9dc7ca70db437c726eaba6411e82
14011 languageName: node
14012 linkType: hard
14013
14014"react-dom@npm:^18.3.1":
14015 version: 18.3.1
14016 resolution: "react-dom@npm:18.3.1"
7413 dependencies: 14017 dependencies:
7414 loose-envify: "npm:^1.1.0" 14018 loose-envify: "npm:^1.1.0"
7415 scheduler: "npm:^0.23.0" 14019 scheduler: "npm:^0.23.2"
14020 peerDependencies:
14021 react: ^18.3.1
14022 checksum: 10c0/a752496c1941f958f2e8ac56239172296fcddce1365ce45222d04a1947e0cc5547df3e8447f855a81d6d39f008d7c32eab43db3712077f09e3f67c4874973e85
14023 languageName: node
14024 linkType: hard
14025
14026"react-error-overlay@npm:^6.0.11":
14027 version: 6.0.11
14028 resolution: "react-error-overlay@npm:6.0.11"
14029 checksum: 10c0/8fc93942976e0c704274aec87dbc8e21f62a2cc78d1c93f9bcfff9f7494b00c60f7a2f0bd48d832bcd3190627c0255a1df907373f61f820371373a65ec4b2d64
14030 languageName: node
14031 linkType: hard
14032
14033"react-fast-compare@npm:^3.2.0, react-fast-compare@npm:^3.2.2":
14034 version: 3.2.2
14035 resolution: "react-fast-compare@npm:3.2.2"
14036 checksum: 10c0/0bbd2f3eb41ab2ff7380daaa55105db698d965c396df73e6874831dbafec8c4b5b08ba36ff09df01526caa3c61595247e3269558c284e37646241cba2b90a367
14037 languageName: node
14038 linkType: hard
14039
14040"react-helmet-async@npm:*":
14041 version: 2.0.4
14042 resolution: "react-helmet-async@npm:2.0.4"
14043 dependencies:
14044 invariant: "npm:^2.2.4"
14045 react-fast-compare: "npm:^3.2.2"
14046 shallowequal: "npm:^1.1.0"
7416 peerDependencies: 14047 peerDependencies:
7417 react: ^18.2.0 14048 react: ^16.6.0 || ^17.0.0 || ^18.0.0
7418 checksum: 10c0/66dfc5f93e13d0674e78ef41f92ed21dfb80f9c4ac4ac25a4b51046d41d4d2186abc915b897f69d3d0ebbffe6184e7c5876f2af26bfa956f179225d921be713a 14049 react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0
14050 checksum: 10c0/91f99150c0cfb3853fc68658c10ff8e63bde4e635bd8ae5e820b586b2a9e45af78b7f9040d399aae55ab5698a588055549424084b09e482be2031ba7a85dee3e
7419 languageName: node 14051 languageName: node
7420 linkType: hard 14052 linkType: hard
7421 14053
7422"react-is@npm:^16.13.1, react-is@npm:^16.7.0": 14054"react-helmet-async@npm:^1.3.0":
14055 version: 1.3.0
14056 resolution: "react-helmet-async@npm:1.3.0"
14057 dependencies:
14058 "@babel/runtime": "npm:^7.12.5"
14059 invariant: "npm:^2.2.4"
14060 prop-types: "npm:^15.7.2"
14061 react-fast-compare: "npm:^3.2.0"
14062 shallowequal: "npm:^1.1.0"
14063 peerDependencies:
14064 react: ^16.6.0 || ^17.0.0 || ^18.0.0
14065 react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0
14066 checksum: 10c0/8f3e6d26beff61d2ed18f7b41561df3e4d83a7582914c7196aa65158c7f3cce939276547d7a0b8987952d9d44131406df74efba02d1f8fa8a3940b49e6ced70b
14067 languageName: node
14068 linkType: hard
14069
14070"react-is@npm:^16.13.1, react-is@npm:^16.6.0, react-is@npm:^16.7.0":
7423 version: 16.13.1 14071 version: 16.13.1
7424 resolution: "react-is@npm:16.13.1" 14072 resolution: "react-is@npm:16.13.1"
7425 checksum: 10c0/33977da7a5f1a287936a0c85639fec6ca74f4f15ef1e59a6bc20338fc73dc69555381e211f7a3529b8150a1f71e4225525b41b60b52965bda53ce7d47377ada1 14073 checksum: 10c0/33977da7a5f1a287936a0c85639fec6ca74f4f15ef1e59a6bc20338fc73dc69555381e211f7a3529b8150a1f71e4225525b41b60b52965bda53ce7d47377ada1
@@ -7433,6 +14081,18 @@ __metadata:
7433 languageName: node 14081 languageName: node
7434 linkType: hard 14082 linkType: hard
7435 14083
14084"react-loadable-ssr-addon-v5-slorber@npm:^1.0.1":
14085 version: 1.0.1
14086 resolution: "react-loadable-ssr-addon-v5-slorber@npm:1.0.1"
14087 dependencies:
14088 "@babel/runtime": "npm:^7.10.3"
14089 peerDependencies:
14090 react-loadable: "*"
14091 webpack: ">=4.41.1 || 5.x"
14092 checksum: 10c0/7b0645f66adec56646f985ba8094c66a1c0a4627d96ad80eea32431d773ef1f79aa47d3247a8f21db3b064a0c6091653c5b5d3483b7046722eb64e55bffe635c
14093 languageName: node
14094 linkType: hard
14095
7436"react-resize-detector@npm:^10.0.1": 14096"react-resize-detector@npm:^10.0.1":
7437 version: 10.0.1 14097 version: 10.0.1
7438 resolution: "react-resize-detector@npm:10.0.1" 14098 resolution: "react-resize-detector@npm:10.0.1"
@@ -7445,6 +14105,54 @@ __metadata:
7445 languageName: node 14105 languageName: node
7446 linkType: hard 14106 linkType: hard
7447 14107
14108"react-router-config@npm:^5.1.1":
14109 version: 5.1.1
14110 resolution: "react-router-config@npm:5.1.1"
14111 dependencies:
14112 "@babel/runtime": "npm:^7.1.2"
14113 peerDependencies:
14114 react: ">=15"
14115 react-router: ">=5"
14116 checksum: 10c0/1f8f4e55ca68b7b012293e663eb0ee4d670a3df929b78928f713ef98cd9d62c7f5c30a098d6668e64bbb11c7d6bb24e9e6b9c985a8b82465a1858dc7ba663f2b
14117 languageName: node
14118 linkType: hard
14119
14120"react-router-dom@npm:^5.3.4":
14121 version: 5.3.4
14122 resolution: "react-router-dom@npm:5.3.4"
14123 dependencies:
14124 "@babel/runtime": "npm:^7.12.13"
14125 history: "npm:^4.9.0"
14126 loose-envify: "npm:^1.3.1"
14127 prop-types: "npm:^15.6.2"
14128 react-router: "npm:5.3.4"
14129 tiny-invariant: "npm:^1.0.2"
14130 tiny-warning: "npm:^1.0.0"
14131 peerDependencies:
14132 react: ">=15"
14133 checksum: 10c0/f04f727e2ed2e9d1d3830af02cc61690ff67b1524c0d18690582bfba0f4d14142ccc88fb6da6befad644fddf086f5ae4c2eb7048c67da8a0b0929c19426421b0
14134 languageName: node
14135 linkType: hard
14136
14137"react-router@npm:5.3.4, react-router@npm:^5.3.4":
14138 version: 5.3.4
14139 resolution: "react-router@npm:5.3.4"
14140 dependencies:
14141 "@babel/runtime": "npm:^7.12.13"
14142 history: "npm:^4.9.0"
14143 hoist-non-react-statics: "npm:^3.1.0"
14144 loose-envify: "npm:^1.3.1"
14145 path-to-regexp: "npm:^1.7.0"
14146 prop-types: "npm:^15.6.2"
14147 react-is: "npm:^16.6.0"
14148 tiny-invariant: "npm:^1.0.2"
14149 tiny-warning: "npm:^1.0.0"
14150 peerDependencies:
14151 react: ">=15"
14152 checksum: 10c0/e15c00dfef199249b4c6e6d98e5e76cc352ce66f3270f13df37cc069ddf7c05e43281e8c308fc407e4435d72924373baef1d2890e0f6b0b1eb423cf47315a053
14153 languageName: node
14154 linkType: hard
14155
7448"react-transition-group@npm:^4.4.5": 14156"react-transition-group@npm:^4.4.5":
7449 version: 4.4.5 14157 version: 4.4.5
7450 resolution: "react-transition-group@npm:4.4.5" 14158 resolution: "react-transition-group@npm:4.4.5"
@@ -7460,16 +14168,31 @@ __metadata:
7460 languageName: node 14168 languageName: node
7461 linkType: hard 14169 linkType: hard
7462 14170
7463"react@npm:^18.2.0": 14171"react@npm:^18.3.1":
7464 version: 18.2.0 14172 version: 18.3.1
7465 resolution: "react@npm:18.2.0" 14173 resolution: "react@npm:18.3.1"
7466 dependencies: 14174 dependencies:
7467 loose-envify: "npm:^1.1.0" 14175 loose-envify: "npm:^1.1.0"
7468 checksum: 10c0/b562d9b569b0cb315e44b48099f7712283d93df36b19a39a67c254c6686479d3980b7f013dc931f4a5a3ae7645eae6386b4aa5eea933baa54ecd0f9acb0902b8 14176 checksum: 10c0/283e8c5efcf37802c9d1ce767f302dd569dd97a70d9bb8c7be79a789b9902451e0d16334b05d73299b20f048cbc3c7d288bbbde10b701fa194e2089c237dbea3
14177 languageName: node
14178 linkType: hard
14179
14180"readable-stream@npm:^2.0.1":
14181 version: 2.3.8
14182 resolution: "readable-stream@npm:2.3.8"
14183 dependencies:
14184 core-util-is: "npm:~1.0.0"
14185 inherits: "npm:~2.0.3"
14186 isarray: "npm:~1.0.0"
14187 process-nextick-args: "npm:~2.0.0"
14188 safe-buffer: "npm:~5.1.1"
14189 string_decoder: "npm:~1.1.1"
14190 util-deprecate: "npm:~1.0.1"
14191 checksum: 10c0/7efdb01f3853bc35ac62ea25493567bf588773213f5f4a79f9c365e1ad13bab845ac0dae7bc946270dc40c3929483228415e92a3fc600cc7e4548992f41ee3fa
7469 languageName: node 14192 languageName: node
7470 linkType: hard 14193 linkType: hard
7471 14194
7472"readable-stream@npm:^3.6.0": 14195"readable-stream@npm:^3.0.6, readable-stream@npm:^3.6.0":
7473 version: 3.6.2 14196 version: 3.6.2
7474 resolution: "readable-stream@npm:3.6.2" 14197 resolution: "readable-stream@npm:3.6.2"
7475 dependencies: 14198 dependencies:
@@ -7489,6 +14212,13 @@ __metadata:
7489 languageName: node 14212 languageName: node
7490 linkType: hard 14213 linkType: hard
7491 14214
14215"reading-time@npm:^1.5.0":
14216 version: 1.5.0
14217 resolution: "reading-time@npm:1.5.0"
14218 checksum: 10c0/0f730852fd4fb99e5f78c5b0cf36ab8c3fa15db96f87d9563843f6fd07a47864273ade539ebb184b785b728cde81a70283aa2d9b80cba5ca03b81868be03cabc
14219 languageName: node
14220 linkType: hard
14221
7492"recast@npm:^0.23.1": 14222"recast@npm:^0.23.1":
7493 version: 0.23.4 14223 version: 0.23.4
7494 resolution: "recast@npm:0.23.4" 14224 resolution: "recast@npm:0.23.4"
@@ -7502,6 +14232,24 @@ __metadata:
7502 languageName: node 14232 languageName: node
7503 linkType: hard 14233 linkType: hard
7504 14234
14235"rechoir@npm:^0.6.2":
14236 version: 0.6.2
14237 resolution: "rechoir@npm:0.6.2"
14238 dependencies:
14239 resolve: "npm:^1.1.6"
14240 checksum: 10c0/22c4bb32f4934a9468468b608417194f7e3ceba9a508512125b16082c64f161915a28467562368eeb15dc16058eb5b7c13a20b9eb29ff9927d1ebb3b5aa83e84
14241 languageName: node
14242 linkType: hard
14243
14244"recursive-readdir@npm:^2.2.2":
14245 version: 2.2.3
14246 resolution: "recursive-readdir@npm:2.2.3"
14247 dependencies:
14248 minimatch: "npm:^3.0.5"
14249 checksum: 10c0/d0238f137b03af9cd645e1e0b40ae78b6cda13846e3ca57f626fcb58a66c79ae018a10e926b13b3a460f1285acc946a4e512ea8daa2e35df4b76a105709930d1
14250 languageName: node
14251 linkType: hard
14252
7505"reflect.getprototypeof@npm:^1.0.4": 14253"reflect.getprototypeof@npm:^1.0.4":
7506 version: 1.0.4 14254 version: 1.0.4
7507 resolution: "reflect.getprototypeof@npm:1.0.4" 14255 resolution: "reflect.getprototypeof@npm:1.0.4"
@@ -7546,7 +14294,7 @@ __metadata:
7546 languageName: node 14294 languageName: node
7547 linkType: hard 14295 linkType: hard
7548 14296
7549"regenerator-transform@npm:^0.15.0": 14297"regenerator-transform@npm:^0.15.2":
7550 version: 0.15.2 14298 version: 0.15.2
7551 resolution: "regenerator-transform@npm:0.15.2" 14299 resolution: "regenerator-transform@npm:0.15.2"
7552 dependencies: 14300 dependencies:
@@ -7567,7 +14315,7 @@ __metadata:
7567 languageName: node 14315 languageName: node
7568 linkType: hard 14316 linkType: hard
7569 14317
7570"regexpu-core@npm:^5.1.0": 14318"regexpu-core@npm:^5.3.1":
7571 version: 5.3.2 14319 version: 5.3.2
7572 resolution: "regexpu-core@npm:5.3.2" 14320 resolution: "regexpu-core@npm:5.3.2"
7573 dependencies: 14321 dependencies:
@@ -7581,6 +14329,24 @@ __metadata:
7581 languageName: node 14329 languageName: node
7582 linkType: hard 14330 linkType: hard
7583 14331
14332"registry-auth-token@npm:^5.0.1":
14333 version: 5.0.2
14334 resolution: "registry-auth-token@npm:5.0.2"
14335 dependencies:
14336 "@pnpm/npm-conf": "npm:^2.1.0"
14337 checksum: 10c0/20fc2225681cc54ae7304b31ebad5a708063b1949593f02dfe5fb402bc1fc28890cecec6497ea396ba86d6cca8a8480715926dfef8cf1f2f11e6f6cc0a1b4bde
14338 languageName: node
14339 linkType: hard
14340
14341"registry-url@npm:^6.0.0":
14342 version: 6.0.1
14343 resolution: "registry-url@npm:6.0.1"
14344 dependencies:
14345 rc: "npm:1.2.8"
14346 checksum: 10c0/66e2221c8113fc35ee9d23fe58cb516fc8d556a189fb8d6f1011a02efccc846c4c9b5075b4027b99a5d5c9ad1345ac37f297bea3c0ca30d607ec8084bf561b90
14347 languageName: node
14348 linkType: hard
14349
7584"regjsparser@npm:^0.9.1": 14350"regjsparser@npm:^0.9.1":
7585 version: 0.9.1 14351 version: 0.9.1
7586 resolution: "regjsparser@npm:0.9.1" 14352 resolution: "regjsparser@npm:0.9.1"
@@ -7592,6 +14358,17 @@ __metadata:
7592 languageName: node 14358 languageName: node
7593 linkType: hard 14359 linkType: hard
7594 14360
14361"rehype-raw@npm:^7.0.0":
14362 version: 7.0.0
14363 resolution: "rehype-raw@npm:7.0.0"
14364 dependencies:
14365 "@types/hast": "npm:^3.0.0"
14366 hast-util-raw: "npm:^9.0.0"
14367 vfile: "npm:^6.0.0"
14368 checksum: 10c0/1435b4b6640a5bc3abe3b2133885c4dbff5ef2190ef9cfe09d6a63f74dd7d7ffd0cede70603278560ccf1acbfb9da9faae4b68065a28bc5aa88ad18e40f32d52
14369 languageName: node
14370 linkType: hard
14371
7595"relateurl@npm:^0.2.7": 14372"relateurl@npm:^0.2.7":
7596 version: 0.2.7 14373 version: 0.2.7
7597 resolution: "relateurl@npm:0.2.7" 14374 resolution: "relateurl@npm:0.2.7"
@@ -7599,6 +14376,128 @@ __metadata:
7599 languageName: node 14376 languageName: node
7600 linkType: hard 14377 linkType: hard
7601 14378
14379"remark-directive@npm:^3.0.0":
14380 version: 3.0.0
14381 resolution: "remark-directive@npm:3.0.0"
14382 dependencies:
14383 "@types/mdast": "npm:^4.0.0"
14384 mdast-util-directive: "npm:^3.0.0"
14385 micromark-extension-directive: "npm:^3.0.0"
14386 unified: "npm:^11.0.0"
14387 checksum: 10c0/eeec4d70501c5bce55b2528fa0c8f1e2a5c713c9f72a7d4678dd3868c425620ec409a719bb2656663296bc476c63f5d7bcacd5a9059146bfc89d40e4ce13a7f6
14388 languageName: node
14389 linkType: hard
14390
14391"remark-emoji@npm:^4.0.0":
14392 version: 4.0.1
14393 resolution: "remark-emoji@npm:4.0.1"
14394 dependencies:
14395 "@types/mdast": "npm:^4.0.2"
14396 emoticon: "npm:^4.0.1"
14397 mdast-util-find-and-replace: "npm:^3.0.1"
14398 node-emoji: "npm:^2.1.0"
14399 unified: "npm:^11.0.4"
14400 checksum: 10c0/27f88892215f3efe8f25c43f226a82d70144a1ae5906d36f6e09390b893b2d5524d5949bd8ca6a02be0e3cb5cba908b35c4221f4e07f34e93d13d6ff9347dbb8
14401 languageName: node
14402 linkType: hard
14403
14404"remark-frontmatter@npm:^5.0.0":
14405 version: 5.0.0
14406 resolution: "remark-frontmatter@npm:5.0.0"
14407 dependencies:
14408 "@types/mdast": "npm:^4.0.0"
14409 mdast-util-frontmatter: "npm:^2.0.0"
14410 micromark-extension-frontmatter: "npm:^2.0.0"
14411 unified: "npm:^11.0.0"
14412 checksum: 10c0/102325d5edbcf30eaf74de8a0a6e03096cc2370dfef19080fd2dd208f368fbb2323388751ac9931a1aa38a4f2828fa4bad6c52dc5249dcadcd34861693b52bf9
14413 languageName: node
14414 linkType: hard
14415
14416"remark-gfm@npm:^4.0.0":
14417 version: 4.0.0
14418 resolution: "remark-gfm@npm:4.0.0"
14419 dependencies:
14420 "@types/mdast": "npm:^4.0.0"
14421 mdast-util-gfm: "npm:^3.0.0"
14422 micromark-extension-gfm: "npm:^3.0.0"
14423 remark-parse: "npm:^11.0.0"
14424 remark-stringify: "npm:^11.0.0"
14425 unified: "npm:^11.0.0"
14426 checksum: 10c0/db0aa85ab718d475c2596e27c95be9255d3b0fc730a4eda9af076b919f7dd812f7be3ac020611a8dbe5253fd29671d7b12750b56e529fdc32dfebad6dbf77403
14427 languageName: node
14428 linkType: hard
14429
14430"remark-mdx@npm:^3.0.0":
14431 version: 3.0.1
14432 resolution: "remark-mdx@npm:3.0.1"
14433 dependencies:
14434 mdast-util-mdx: "npm:^3.0.0"
14435 micromark-extension-mdxjs: "npm:^3.0.0"
14436 checksum: 10c0/9e16cd5ff3b30620bd25351a2dd1701627fa5555785b35ee5fe07bd1e6793a9c825cc1f6af9e54a44351f74879f8b5ea2bce8e5a21379aeab58935e76a4d69ce
14437 languageName: node
14438 linkType: hard
14439
14440"remark-parse@npm:^11.0.0":
14441 version: 11.0.0
14442 resolution: "remark-parse@npm:11.0.0"
14443 dependencies:
14444 "@types/mdast": "npm:^4.0.0"
14445 mdast-util-from-markdown: "npm:^2.0.0"
14446 micromark-util-types: "npm:^2.0.0"
14447 unified: "npm:^11.0.0"
14448 checksum: 10c0/6eed15ddb8680eca93e04fcb2d1b8db65a743dcc0023f5007265dda558b09db595a087f622062ccad2630953cd5cddc1055ce491d25a81f3317c858348a8dd38
14449 languageName: node
14450 linkType: hard
14451
14452"remark-rehype@npm:^11.0.0":
14453 version: 11.1.0
14454 resolution: "remark-rehype@npm:11.1.0"
14455 dependencies:
14456 "@types/hast": "npm:^3.0.0"
14457 "@types/mdast": "npm:^4.0.0"
14458 mdast-util-to-hast: "npm:^13.0.0"
14459 unified: "npm:^11.0.0"
14460 vfile: "npm:^6.0.0"
14461 checksum: 10c0/7a9534847ea70e78cf09227a4302af7e491f625fd092351a1b1ee27a2de0a369ac4acf069682e8a8ec0a55847b3e83f0be76b2028aa90e98e69e21420b9794c3
14462 languageName: node
14463 linkType: hard
14464
14465"remark-smartypants@npm:^3.0.1":
14466 version: 3.0.1
14467 resolution: "remark-smartypants@npm:3.0.1"
14468 dependencies:
14469 retext: "npm:^9.0.0"
14470 retext-smartypants: "npm:^6.0.0"
14471 unified: "npm:^11.0.4"
14472 unist-util-visit: "npm:^5.0.0"
14473 checksum: 10c0/db0cc1aafa0aa6d5a599a343f0b27cf929f86051b7bcc1daa0e028ea58fd0bf195932e26f50678949562f2e0400a71c427cd15a6851b4ba76806ae457998e318
14474 languageName: node
14475 linkType: hard
14476
14477"remark-stringify@npm:^11.0.0":
14478 version: 11.0.0
14479 resolution: "remark-stringify@npm:11.0.0"
14480 dependencies:
14481 "@types/mdast": "npm:^4.0.0"
14482 mdast-util-to-markdown: "npm:^2.0.0"
14483 unified: "npm:^11.0.0"
14484 checksum: 10c0/0cdb37ce1217578f6f847c7ec9f50cbab35df5b9e3903d543e74b405404e67c07defcb23cd260a567b41b769400f6de03c2c3d9cd6ae7a6707d5c8d89ead489f
14485 languageName: node
14486 linkType: hard
14487
14488"renderkid@npm:^3.0.0":
14489 version: 3.0.0
14490 resolution: "renderkid@npm:3.0.0"
14491 dependencies:
14492 css-select: "npm:^4.1.3"
14493 dom-converter: "npm:^0.2.0"
14494 htmlparser2: "npm:^6.1.0"
14495 lodash: "npm:^4.17.21"
14496 strip-ansi: "npm:^6.0.1"
14497 checksum: 10c0/24a9fae4cc50e731d059742d1b3eec163dc9e3872b12010d120c3fcbd622765d9cda41f79a1bbb4bf63c1d3442f18a08f6e1642cb5d7ebf092a0ce3f7a3bd143
14498 languageName: node
14499 linkType: hard
14500
7602"require-directory@npm:^2.1.1": 14501"require-directory@npm:^2.1.1":
7603 version: 2.1.1 14502 version: 2.1.1
7604 resolution: "require-directory@npm:2.1.1" 14503 resolution: "require-directory@npm:2.1.1"
@@ -7613,6 +14512,20 @@ __metadata:
7613 languageName: node 14512 languageName: node
7614 linkType: hard 14513 linkType: hard
7615 14514
14515"require-like@npm:>= 0.1.1":
14516 version: 0.1.2
14517 resolution: "require-like@npm:0.1.2"
14518 checksum: 10c0/9035ff6c4000a56ede6fc51dd5c56541fafa5a7dddc9b1c3a5f9148d95ee21c603c9bf5c6e37b19fc7de13d9294260842d8590b2ffd6c7c773e78603d1af8050
14519 languageName: node
14520 linkType: hard
14521
14522"requires-port@npm:^1.0.0":
14523 version: 1.0.0
14524 resolution: "requires-port@npm:1.0.0"
14525 checksum: 10c0/b2bfdd09db16c082c4326e573a82c0771daaf7b53b9ce8ad60ea46aa6e30aaf475fe9b164800b89f93b748d2c234d8abff945d2551ba47bf5698e04cd7713267
14526 languageName: node
14527 linkType: hard
14528
7616"reselect@npm:^4.1.8": 14529"reselect@npm:^4.1.8":
7617 version: 4.1.8 14530 version: 4.1.8
7618 resolution: "reselect@npm:4.1.8" 14531 resolution: "reselect@npm:4.1.8"
@@ -7620,6 +14533,13 @@ __metadata:
7620 languageName: node 14533 languageName: node
7621 linkType: hard 14534 linkType: hard
7622 14535
14536"resolve-alpn@npm:^1.2.0":
14537 version: 1.2.1
14538 resolution: "resolve-alpn@npm:1.2.1"
14539 checksum: 10c0/b70b29c1843bc39781ef946c8cd4482e6d425976599c0f9c138cec8209e4e0736161bf39319b01676a847000085dfdaf63583c6fb4427bf751a10635bd2aa0c4
14540 languageName: node
14541 linkType: hard
14542
7623"resolve-from@npm:^4.0.0": 14543"resolve-from@npm:^4.0.0":
7624 version: 4.0.0 14544 version: 4.0.0
7625 resolution: "resolve-from@npm:4.0.0" 14545 resolution: "resolve-from@npm:4.0.0"
@@ -7627,6 +14547,13 @@ __metadata:
7627 languageName: node 14547 languageName: node
7628 linkType: hard 14548 linkType: hard
7629 14549
14550"resolve-pathname@npm:^3.0.0":
14551 version: 3.0.0
14552 resolution: "resolve-pathname@npm:3.0.0"
14553 checksum: 10c0/c6ec49b670dc35b9a303c47fa83ba9348a71e92d64a4c4bb85e1b659a29b407aa1ac1cb14a9b5b502982132ca77482bd80534bca147439d66880d35a137fe723
14554 languageName: node
14555 linkType: hard
14556
7630"resolve-pkg-maps@npm:^1.0.0": 14557"resolve-pkg-maps@npm:^1.0.0":
7631 version: 1.0.0 14558 version: 1.0.0
7632 resolution: "resolve-pkg-maps@npm:1.0.0" 14559 resolution: "resolve-pkg-maps@npm:1.0.0"
@@ -7634,16 +14561,16 @@ __metadata:
7634 languageName: node 14561 languageName: node
7635 linkType: hard 14562 linkType: hard
7636 14563
7637"resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.22.4": 14564"resolve@npm:^1.1.6, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.22.4":
7638 version: 1.22.4 14565 version: 1.22.8
7639 resolution: "resolve@npm:1.22.4" 14566 resolution: "resolve@npm:1.22.8"
7640 dependencies: 14567 dependencies:
7641 is-core-module: "npm:^2.13.0" 14568 is-core-module: "npm:^2.13.0"
7642 path-parse: "npm:^1.0.7" 14569 path-parse: "npm:^1.0.7"
7643 supports-preserve-symlinks-flag: "npm:^1.0.0" 14570 supports-preserve-symlinks-flag: "npm:^1.0.0"
7644 bin: 14571 bin:
7645 resolve: bin/resolve 14572 resolve: bin/resolve
7646 checksum: 10c0/b1adb7885a05e31fc2be19e85e338b8d48d9e442b568d91e9c925990ed1c3bff66683ccea03b9e9893b857ec25dee0f7951a0d0630be49e4e1f5c1150ddc35dc 14573 checksum: 10c0/07e179f4375e1fd072cfb72ad66d78547f86e6196c4014b31cb0b8bb1db5f7ca871f922d08da0fbc05b94e9fd42206f819648fa3b5b873ebbc8e1dc68fec433a
7647 languageName: node 14574 languageName: node
7648 linkType: hard 14575 linkType: hard
7649 14576
@@ -7660,16 +14587,16 @@ __metadata:
7660 languageName: node 14587 languageName: node
7661 linkType: hard 14588 linkType: hard
7662 14589
7663"resolve@patch:resolve@npm%3A^1.14.2#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin<compat/resolve>": 14590"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin<compat/resolve>":
7664 version: 1.22.4 14591 version: 1.22.8
7665 resolution: "resolve@patch:resolve@npm%3A1.22.4#optional!builtin<compat/resolve>::version=1.22.4&hash=c3c19d" 14592 resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin<compat/resolve>::version=1.22.8&hash=c3c19d"
7666 dependencies: 14593 dependencies:
7667 is-core-module: "npm:^2.13.0" 14594 is-core-module: "npm:^2.13.0"
7668 path-parse: "npm:^1.0.7" 14595 path-parse: "npm:^1.0.7"
7669 supports-preserve-symlinks-flag: "npm:^1.0.0" 14596 supports-preserve-symlinks-flag: "npm:^1.0.0"
7670 bin: 14597 bin:
7671 resolve: bin/resolve 14598 resolve: bin/resolve
7672 checksum: 10c0/60ca179599acf8b1bb17b850280a7081781b457d235d48197dc893b82d75741f191c5fe2d93e5729292234d0b0d88e9add273df4b9e04755eeed4fd7d23f1c79 14599 checksum: 10c0/0446f024439cd2e50c6c8fa8ba77eaa8370b4180f401a96abf3d1ebc770ac51c1955e12764cde449fde3fff480a61f84388e3505ecdbab778f4bef5f8212c729
7673 languageName: node 14600 languageName: node
7674 linkType: hard 14601 linkType: hard
7675 14602
@@ -7686,6 +14613,81 @@ __metadata:
7686 languageName: node 14613 languageName: node
7687 linkType: hard 14614 linkType: hard
7688 14615
14616"responselike@npm:^3.0.0":
14617 version: 3.0.0
14618 resolution: "responselike@npm:3.0.0"
14619 dependencies:
14620 lowercase-keys: "npm:^3.0.0"
14621 checksum: 10c0/8af27153f7e47aa2c07a5f2d538cb1e5872995f0e9ff77def858ecce5c3fe677d42b824a62cde502e56d275ab832b0a8bd350d5cd6b467ac0425214ac12ae658
14622 languageName: node
14623 linkType: hard
14624
14625"responsive-loader@npm:^3.1.2":
14626 version: 3.1.2
14627 resolution: "responsive-loader@npm:3.1.2"
14628 dependencies:
14629 "@types/node": "npm:^18.11.9"
14630 find-cache-dir: "npm:^3.3.2"
14631 json5: "npm:^2.2.1"
14632 loader-utils: "npm:^3.2.1"
14633 make-dir: "npm:^3.1.0"
14634 schema-utils: "npm:^4.0.0"
14635 peerDependencies:
14636 webpack: ^5.73.0
14637 peerDependenciesMeta:
14638 jimp:
14639 optional: true
14640 sharp:
14641 optional: true
14642 checksum: 10c0/c93b200bb51fe2968ee8092b4817db55dd55f2306d1d75fa66aa6cd2dbddf9c7f394528f9182acbc3a37489fed9b5d743b51a5275c88d31fb665195cf0f5adaf
14643 languageName: node
14644 linkType: hard
14645
14646"retext-latin@npm:^4.0.0":
14647 version: 4.0.0
14648 resolution: "retext-latin@npm:4.0.0"
14649 dependencies:
14650 "@types/nlcst": "npm:^2.0.0"
14651 parse-latin: "npm:^7.0.0"
14652 unified: "npm:^11.0.0"
14653 checksum: 10c0/51530be66db9ef6ab8e9cda5dd0598377ff4321481d6a941bf70dac16fa6e9123ff7d8ff093a05c30a3e00e282e37094b845b6130a8005a3cb7186a961ab99cb
14654 languageName: node
14655 linkType: hard
14656
14657"retext-smartypants@npm:^6.0.0":
14658 version: 6.1.0
14659 resolution: "retext-smartypants@npm:6.1.0"
14660 dependencies:
14661 "@types/nlcst": "npm:^2.0.0"
14662 nlcst-to-string: "npm:^4.0.0"
14663 unist-util-visit: "npm:^5.0.0"
14664 checksum: 10c0/9247095884c192377b40309c48f2185fd6bee9800c34cf60c4886ab0653353bd9b1617007da655147a680b3e869730c017abcdcda5d64299aecda4d5173dda49
14665 languageName: node
14666 linkType: hard
14667
14668"retext-stringify@npm:^4.0.0":
14669 version: 4.0.0
14670 resolution: "retext-stringify@npm:4.0.0"
14671 dependencies:
14672 "@types/nlcst": "npm:^2.0.0"
14673 nlcst-to-string: "npm:^4.0.0"
14674 unified: "npm:^11.0.0"
14675 checksum: 10c0/eb2930356c85999a8978092a5d6ba3695fea859c71f221dcdc485704552922641bc17e50fea2ae0599d665192eaad002e98bb4236ecac94a570b73581b99004d
14676 languageName: node
14677 linkType: hard
14678
14679"retext@npm:^9.0.0":
14680 version: 9.0.0
14681 resolution: "retext@npm:9.0.0"
14682 dependencies:
14683 "@types/nlcst": "npm:^2.0.0"
14684 retext-latin: "npm:^4.0.0"
14685 retext-stringify: "npm:^4.0.0"
14686 unified: "npm:^11.0.0"
14687 checksum: 10c0/eee9f66ff6fae5670a5eeccc0b5e2639112f868475273ce307d3079cfe7deb9d1b0f2b8fa28b4ab30abaf8538345185a44908f461a27bbf43c4f94feda90ecac
14688 languageName: node
14689 linkType: hard
14690
7689"retry@npm:^0.12.0": 14691"retry@npm:^0.12.0":
7690 version: 0.12.0 14692 version: 0.12.0
7691 resolution: "retry@npm:0.12.0" 14693 resolution: "retry@npm:0.12.0"
@@ -7693,6 +14695,13 @@ __metadata:
7693 languageName: node 14695 languageName: node
7694 linkType: hard 14696 linkType: hard
7695 14697
14698"retry@npm:^0.13.1":
14699 version: 0.13.1
14700 resolution: "retry@npm:0.13.1"
14701 checksum: 10c0/9ae822ee19db2163497e074ea919780b1efa00431d197c7afdb950e42bf109196774b92a49fc9821f0b8b328a98eea6017410bfc5e8a0fc19c85c6d11adb3772
14702 languageName: node
14703 linkType: hard
14704
7696"reusify@npm:^1.0.4": 14705"reusify@npm:^1.0.4":
7697 version: 1.0.4 14706 version: 1.0.4
7698 resolution: "reusify@npm:1.0.4" 14707 resolution: "reusify@npm:1.0.4"
@@ -7754,22 +14763,24 @@ __metadata:
7754 linkType: hard 14763 linkType: hard
7755 14764
7756"rollup@npm:^4.13.0": 14765"rollup@npm:^4.13.0":
7757 version: 4.13.0 14766 version: 4.14.1
7758 resolution: "rollup@npm:4.13.0" 14767 resolution: "rollup@npm:4.14.1"
7759 dependencies: 14768 dependencies:
7760 "@rollup/rollup-android-arm-eabi": "npm:4.13.0" 14769 "@rollup/rollup-android-arm-eabi": "npm:4.14.1"
7761 "@rollup/rollup-android-arm64": "npm:4.13.0" 14770 "@rollup/rollup-android-arm64": "npm:4.14.1"
7762 "@rollup/rollup-darwin-arm64": "npm:4.13.0" 14771 "@rollup/rollup-darwin-arm64": "npm:4.14.1"
7763 "@rollup/rollup-darwin-x64": "npm:4.13.0" 14772 "@rollup/rollup-darwin-x64": "npm:4.14.1"
7764 "@rollup/rollup-linux-arm-gnueabihf": "npm:4.13.0" 14773 "@rollup/rollup-linux-arm-gnueabihf": "npm:4.14.1"
7765 "@rollup/rollup-linux-arm64-gnu": "npm:4.13.0" 14774 "@rollup/rollup-linux-arm64-gnu": "npm:4.14.1"
7766 "@rollup/rollup-linux-arm64-musl": "npm:4.13.0" 14775 "@rollup/rollup-linux-arm64-musl": "npm:4.14.1"
7767 "@rollup/rollup-linux-riscv64-gnu": "npm:4.13.0" 14776 "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.14.1"
7768 "@rollup/rollup-linux-x64-gnu": "npm:4.13.0" 14777 "@rollup/rollup-linux-riscv64-gnu": "npm:4.14.1"
7769 "@rollup/rollup-linux-x64-musl": "npm:4.13.0" 14778 "@rollup/rollup-linux-s390x-gnu": "npm:4.14.1"
7770 "@rollup/rollup-win32-arm64-msvc": "npm:4.13.0" 14779 "@rollup/rollup-linux-x64-gnu": "npm:4.14.1"
7771 "@rollup/rollup-win32-ia32-msvc": "npm:4.13.0" 14780 "@rollup/rollup-linux-x64-musl": "npm:4.14.1"
7772 "@rollup/rollup-win32-x64-msvc": "npm:4.13.0" 14781 "@rollup/rollup-win32-arm64-msvc": "npm:4.14.1"
14782 "@rollup/rollup-win32-ia32-msvc": "npm:4.14.1"
14783 "@rollup/rollup-win32-x64-msvc": "npm:4.14.1"
7773 "@types/estree": "npm:1.0.5" 14784 "@types/estree": "npm:1.0.5"
7774 fsevents: "npm:~2.3.2" 14785 fsevents: "npm:~2.3.2"
7775 dependenciesMeta: 14786 dependenciesMeta:
@@ -7787,8 +14798,12 @@ __metadata:
7787 optional: true 14798 optional: true
7788 "@rollup/rollup-linux-arm64-musl": 14799 "@rollup/rollup-linux-arm64-musl":
7789 optional: true 14800 optional: true
14801 "@rollup/rollup-linux-powerpc64le-gnu":
14802 optional: true
7790 "@rollup/rollup-linux-riscv64-gnu": 14803 "@rollup/rollup-linux-riscv64-gnu":
7791 optional: true 14804 optional: true
14805 "@rollup/rollup-linux-s390x-gnu":
14806 optional: true
7792 "@rollup/rollup-linux-x64-gnu": 14807 "@rollup/rollup-linux-x64-gnu":
7793 optional: true 14808 optional: true
7794 "@rollup/rollup-linux-x64-musl": 14809 "@rollup/rollup-linux-x64-musl":
@@ -7803,7 +14818,28 @@ __metadata:
7803 optional: true 14818 optional: true
7804 bin: 14819 bin:
7805 rollup: dist/bin/rollup 14820 rollup: dist/bin/rollup
7806 checksum: 10c0/90f8cdf9c2115223cbcfe91d932170a85c0928ae1943f45af6877907ea150585b80f656cf2bc471c6f809cb7e158dd85dbea9f91ab4fd5bce0eaf6c3f5f4fd92 14821 checksum: 10c0/c9028c04537f7f16f9b5e4d75c84d2f0dc960d280fc4eca5960f0d67e786d993b8b707a63fc8b2e054b018fdb3a5a98d5eb7ed5674635c7612dd0b66696805fa
14822 languageName: node
14823 linkType: hard
14824
14825"rtl-detect@npm:^1.0.4":
14826 version: 1.1.2
14827 resolution: "rtl-detect@npm:1.1.2"
14828 checksum: 10c0/1b92888aafca1593314f837e83fdf02eb208faae3e713ab87c176804728efd3b1980d53b64f65f1fa593348087e852c5cd729b7b9372950f6e9b7be489afc0ca
14829 languageName: node
14830 linkType: hard
14831
14832"rtlcss@npm:^4.1.0":
14833 version: 4.1.1
14834 resolution: "rtlcss@npm:4.1.1"
14835 dependencies:
14836 escalade: "npm:^3.1.1"
14837 picocolors: "npm:^1.0.0"
14838 postcss: "npm:^8.4.21"
14839 strip-json-comments: "npm:^3.1.1"
14840 bin:
14841 rtlcss: bin/rtlcss.js
14842 checksum: 10c0/8667f09f683139abf1d5a58e284fa57c903f1f502a86cd1a7fa867777378f7f93a3c156ba27852b826299156451fbf8c6413710ab1cce8e6da87dd31a266c669
7807 languageName: node 14843 languageName: node
7808 linkType: hard 14844 linkType: hard
7809 14845
@@ -7835,7 +14871,14 @@ __metadata:
7835 languageName: node 14871 languageName: node
7836 linkType: hard 14872 linkType: hard
7837 14873
7838"safe-buffer@npm:^5.1.0, safe-buffer@npm:~5.2.0": 14874"safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1":
14875 version: 5.1.2
14876 resolution: "safe-buffer@npm:5.1.2"
14877 checksum: 10c0/780ba6b5d99cc9a40f7b951d47152297d0e260f0df01472a1b99d4889679a4b94a13d644f7dbc4f022572f09ae9005fa2fbb93bbbd83643316f365a3e9a45b21
14878 languageName: node
14879 linkType: hard
14880
14881"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.1.0, safe-buffer@npm:~5.2.0":
7839 version: 5.2.1 14882 version: 5.2.1
7840 resolution: "safe-buffer@npm:5.2.1" 14883 resolution: "safe-buffer@npm:5.2.1"
7841 checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 14884 checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3
@@ -7853,23 +14896,100 @@ __metadata:
7853 languageName: node 14896 languageName: node
7854 linkType: hard 14897 linkType: hard
7855 14898
7856"safer-buffer@npm:>= 2.1.2 < 3.0.0": 14899"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0":
7857 version: 2.1.2 14900 version: 2.1.2
7858 resolution: "safer-buffer@npm:2.1.2" 14901 resolution: "safer-buffer@npm:2.1.2"
7859 checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 14902 checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4
7860 languageName: node 14903 languageName: node
7861 linkType: hard 14904 linkType: hard
7862 14905
7863"scheduler@npm:^0.23.0": 14906"sax@npm:^1.2.4":
7864 version: 0.23.0 14907 version: 1.3.0
7865 resolution: "scheduler@npm:0.23.0" 14908 resolution: "sax@npm:1.3.0"
14909 checksum: 10c0/599dbe0ba9d8bd55e92d920239b21d101823a6cedff71e542589303fa0fa8f3ece6cf608baca0c51be846a2e88365fac94a9101a9c341d94b98e30c4deea5bea
14910 languageName: node
14911 linkType: hard
14912
14913"scheduler@npm:^0.23.2":
14914 version: 0.23.2
14915 resolution: "scheduler@npm:0.23.2"
7866 dependencies: 14916 dependencies:
7867 loose-envify: "npm:^1.1.0" 14917 loose-envify: "npm:^1.1.0"
7868 checksum: 10c0/b777f7ca0115e6d93e126ac490dbd82642d14983b3079f58f35519d992fa46260be7d6e6cede433a92db70306310c6f5f06e144f0e40c484199e09c1f7be53dd 14918 checksum: 10c0/26383305e249651d4c58e6705d5f8425f153211aef95f15161c151f7b8de885f24751b377e4a0b3dd42cce09aad3f87a61dab7636859c0d89b7daf1a1e2a5c78
14919 languageName: node
14920 linkType: hard
14921
14922"schema-utils@npm:2.7.0":
14923 version: 2.7.0
14924 resolution: "schema-utils@npm:2.7.0"
14925 dependencies:
14926 "@types/json-schema": "npm:^7.0.4"
14927 ajv: "npm:^6.12.2"
14928 ajv-keywords: "npm:^3.4.1"
14929 checksum: 10c0/723c3c856a0313a89aa81c5fb2c93d4b11225f5cdd442665fddd55d3c285ae72e079f5286a3a9a1a973affe888f6c33554a2cf47b79b24cd8de2f1f756a6fb1b
14930 languageName: node
14931 linkType: hard
14932
14933"schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0":
14934 version: 3.3.0
14935 resolution: "schema-utils@npm:3.3.0"
14936 dependencies:
14937 "@types/json-schema": "npm:^7.0.8"
14938 ajv: "npm:^6.12.5"
14939 ajv-keywords: "npm:^3.5.2"
14940 checksum: 10c0/fafdbde91ad8aa1316bc543d4b61e65ea86970aebbfb750bfb6d8a6c287a23e415e0e926c2498696b242f63af1aab8e585252637fabe811fd37b604351da6500
14941 languageName: node
14942 linkType: hard
14943
14944"schema-utils@npm:^4.0.0":
14945 version: 4.2.0
14946 resolution: "schema-utils@npm:4.2.0"
14947 dependencies:
14948 "@types/json-schema": "npm:^7.0.9"
14949 ajv: "npm:^8.9.0"
14950 ajv-formats: "npm:^2.1.1"
14951 ajv-keywords: "npm:^5.1.0"
14952 checksum: 10c0/8dab7e7800316387fd8569870b4b668cfcecf95ac551e369ea799bbcbfb63fb0365366d4b59f64822c9f7904d8c5afcfaf5a6124a4b08783e558cd25f299a6b4
14953 languageName: node
14954 linkType: hard
14955
14956"section-matter@npm:^1.0.0":
14957 version: 1.0.0
14958 resolution: "section-matter@npm:1.0.0"
14959 dependencies:
14960 extend-shallow: "npm:^2.0.1"
14961 kind-of: "npm:^6.0.0"
14962 checksum: 10c0/8007f91780adc5aaa781a848eaae50b0f680bbf4043b90cf8a96778195b8fab690c87fe7a989e02394ce69890e330811ec8dab22397d384673ce59f7d750641d
14963 languageName: node
14964 linkType: hard
14965
14966"select-hose@npm:^2.0.0":
14967 version: 2.0.0
14968 resolution: "select-hose@npm:2.0.0"
14969 checksum: 10c0/01cc52edd29feddaf379efb4328aededa633f0ac43c64b11a8abd075ff34f05b0d280882c4fbcbdf1a0658202c9cd2ea8d5985174dcf9a2dac7e3a4996fa9b67
7869 languageName: node 14970 languageName: node
7870 linkType: hard 14971 linkType: hard
7871 14972
7872"semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.3.0, semver@npm:^6.3.1": 14973"selfsigned@npm:^2.1.1":
14974 version: 2.4.1
14975 resolution: "selfsigned@npm:2.4.1"
14976 dependencies:
14977 "@types/node-forge": "npm:^1.3.0"
14978 node-forge: "npm:^1"
14979 checksum: 10c0/521829ec36ea042f7e9963bf1da2ed040a815cf774422544b112ec53b7edc0bc50a0f8cc2ae7aa6cc19afa967c641fd96a15de0fc650c68651e41277d2e1df09
14980 languageName: node
14981 linkType: hard
14982
14983"semver-diff@npm:^4.0.0":
14984 version: 4.0.0
14985 resolution: "semver-diff@npm:4.0.0"
14986 dependencies:
14987 semver: "npm:^7.3.5"
14988 checksum: 10c0/3ed1bb22f39b4b6e98785bb066e821eabb9445d3b23e092866c50e7df8b9bd3eda617b242f81db4159586e0e39b0deb908dd160a24f783bd6f52095b22cd68ea
14989 languageName: node
14990 linkType: hard
14991
14992"semver@npm:^6.0.0, semver@npm:^6.3.0, semver@npm:^6.3.1":
7873 version: 6.3.1 14993 version: 6.3.1
7874 resolution: "semver@npm:6.3.1" 14994 resolution: "semver@npm:6.3.1"
7875 bin: 14995 bin:
@@ -7878,14 +14998,35 @@ __metadata:
7878 languageName: node 14998 languageName: node
7879 linkType: hard 14999 linkType: hard
7880 15000
7881"semver@npm:^7.3.5, semver@npm:^7.5.4": 15001"semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.4, semver@npm:^7.6.0":
7882 version: 7.5.4 15002 version: 7.6.0
7883 resolution: "semver@npm:7.5.4" 15003 resolution: "semver@npm:7.6.0"
7884 dependencies: 15004 dependencies:
7885 lru-cache: "npm:^6.0.0" 15005 lru-cache: "npm:^6.0.0"
7886 bin: 15006 bin:
7887 semver: bin/semver.js 15007 semver: bin/semver.js
7888 checksum: 10c0/5160b06975a38b11c1ab55950cb5b8a23db78df88275d3d8a42ccf1f29e55112ac995b3a26a522c36e3b5f76b0445f1eef70d696b8c7862a2b4303d7b0e7609e 15008 checksum: 10c0/fbfe717094ace0aa8d6332d7ef5ce727259815bd8d8815700853f4faf23aacbd7192522f0dc5af6df52ef4fa85a355ebd2f5d39f554bd028200d6cf481ab9b53
15009 languageName: node
15010 linkType: hard
15011
15012"send@npm:0.18.0":
15013 version: 0.18.0
15014 resolution: "send@npm:0.18.0"
15015 dependencies:
15016 debug: "npm:2.6.9"
15017 depd: "npm:2.0.0"
15018 destroy: "npm:1.2.0"
15019 encodeurl: "npm:~1.0.2"
15020 escape-html: "npm:~1.0.3"
15021 etag: "npm:~1.8.1"
15022 fresh: "npm:0.5.2"
15023 http-errors: "npm:2.0.0"
15024 mime: "npm:1.6.0"
15025 ms: "npm:2.1.3"
15026 on-finished: "npm:2.4.1"
15027 range-parser: "npm:~1.2.1"
15028 statuses: "npm:2.0.1"
15029 checksum: 10c0/0eb134d6a51fc13bbcb976a1f4214ea1e33f242fae046efc311e80aff66c7a43603e26a79d9d06670283a13000e51be6e0a2cb80ff0942eaf9f1cd30b7ae736a
7889 languageName: node 15030 languageName: node
7890 linkType: hard 15031 linkType: hard
7891 15032
@@ -7898,6 +15039,58 @@ __metadata:
7898 languageName: node 15039 languageName: node
7899 linkType: hard 15040 linkType: hard
7900 15041
15042"serialize-javascript@npm:^6.0.0, serialize-javascript@npm:^6.0.1":
15043 version: 6.0.2
15044 resolution: "serialize-javascript@npm:6.0.2"
15045 dependencies:
15046 randombytes: "npm:^2.1.0"
15047 checksum: 10c0/2dd09ef4b65a1289ba24a788b1423a035581bef60817bea1f01eda8e3bda623f86357665fe7ac1b50f6d4f583f97db9615b3f07b2a2e8cbcb75033965f771dd2
15048 languageName: node
15049 linkType: hard
15050
15051"serve-handler@npm:^6.1.5":
15052 version: 6.1.5
15053 resolution: "serve-handler@npm:6.1.5"
15054 dependencies:
15055 bytes: "npm:3.0.0"
15056 content-disposition: "npm:0.5.2"
15057 fast-url-parser: "npm:1.1.3"
15058 mime-types: "npm:2.1.18"
15059 minimatch: "npm:3.1.2"
15060 path-is-inside: "npm:1.0.2"
15061 path-to-regexp: "npm:2.2.1"
15062 range-parser: "npm:1.2.0"
15063 checksum: 10c0/6fd393ae37a0305107e634ca545322b00605322189fe70d8f1a4a90a101c4e354768c610efe5a7ef1af3820cec5c33d97467c88151f35a3cb41d8ff2075ef802
15064 languageName: node
15065 linkType: hard
15066
15067"serve-index@npm:^1.9.1":
15068 version: 1.9.1
15069 resolution: "serve-index@npm:1.9.1"
15070 dependencies:
15071 accepts: "npm:~1.3.4"
15072 batch: "npm:0.6.1"
15073 debug: "npm:2.6.9"
15074 escape-html: "npm:~1.0.3"
15075 http-errors: "npm:~1.6.2"
15076 mime-types: "npm:~2.1.17"
15077 parseurl: "npm:~1.3.2"
15078 checksum: 10c0/a666471a24196f74371edf2c3c7bcdd82adbac52f600804508754b5296c3567588bf694258b19e0cb23a567acfa20d9721bfdaed3286007b81f9741ada8a3a9c
15079 languageName: node
15080 linkType: hard
15081
15082"serve-static@npm:1.15.0":
15083 version: 1.15.0
15084 resolution: "serve-static@npm:1.15.0"
15085 dependencies:
15086 encodeurl: "npm:~1.0.2"
15087 escape-html: "npm:~1.0.3"
15088 parseurl: "npm:~1.3.3"
15089 send: "npm:0.18.0"
15090 checksum: 10c0/fa9f0e21a540a28f301258dfe1e57bb4f81cd460d28f0e973860477dd4acef946a1f41748b5bd41c73b621bea2029569c935faa38578fd34cd42a9b4947088ba
15091 languageName: node
15092 linkType: hard
15093
7901"set-blocking@npm:^2.0.0": 15094"set-blocking@npm:^2.0.0":
7902 version: 2.0.0 15095 version: 2.0.0
7903 resolution: "set-blocking@npm:2.0.0" 15096 resolution: "set-blocking@npm:2.0.0"
@@ -7931,6 +15124,105 @@ __metadata:
7931 languageName: node 15124 languageName: node
7932 linkType: hard 15125 linkType: hard
7933 15126
15127"setprototypeof@npm:1.1.0":
15128 version: 1.1.0
15129 resolution: "setprototypeof@npm:1.1.0"
15130 checksum: 10c0/a77b20876689c6a89c3b42f0c3596a9cae02f90fc902570cbd97198e9e8240382086c9303ad043e88cee10f61eae19f1004e51d885395a1e9bf49f9ebed12872
15131 languageName: node
15132 linkType: hard
15133
15134"setprototypeof@npm:1.2.0":
15135 version: 1.2.0
15136 resolution: "setprototypeof@npm:1.2.0"
15137 checksum: 10c0/68733173026766fa0d9ecaeb07f0483f4c2dc70ca376b3b7c40b7cda909f94b0918f6c5ad5ce27a9160bdfb475efaa9d5e705a11d8eaae18f9835d20976028bc
15138 languageName: node
15139 linkType: hard
15140
15141"shallow-clone@npm:^3.0.0":
15142 version: 3.0.1
15143 resolution: "shallow-clone@npm:3.0.1"
15144 dependencies:
15145 kind-of: "npm:^6.0.2"
15146 checksum: 10c0/7bab09613a1b9f480c85a9823aebec533015579fa055ba6634aa56ba1f984380670eaf33b8217502931872aa1401c9fcadaa15f9f604d631536df475b05bcf1e
15147 languageName: node
15148 linkType: hard
15149
15150"shallowequal@npm:^1.1.0":
15151 version: 1.1.0
15152 resolution: "shallowequal@npm:1.1.0"
15153 checksum: 10c0/b926efb51cd0f47aa9bc061add788a4a650550bbe50647962113a4579b60af2abe7b62f9b02314acc6f97151d4cf87033a2b15fc20852fae306d1a095215396c
15154 languageName: node
15155 linkType: hard
15156
15157"sharp@npm:^0.33.3":
15158 version: 0.33.3
15159 resolution: "sharp@npm:0.33.3"
15160 dependencies:
15161 "@img/sharp-darwin-arm64": "npm:0.33.3"
15162 "@img/sharp-darwin-x64": "npm:0.33.3"
15163 "@img/sharp-libvips-darwin-arm64": "npm:1.0.2"
15164 "@img/sharp-libvips-darwin-x64": "npm:1.0.2"
15165 "@img/sharp-libvips-linux-arm": "npm:1.0.2"
15166 "@img/sharp-libvips-linux-arm64": "npm:1.0.2"
15167 "@img/sharp-libvips-linux-s390x": "npm:1.0.2"
15168 "@img/sharp-libvips-linux-x64": "npm:1.0.2"
15169 "@img/sharp-libvips-linuxmusl-arm64": "npm:1.0.2"
15170 "@img/sharp-libvips-linuxmusl-x64": "npm:1.0.2"
15171 "@img/sharp-linux-arm": "npm:0.33.3"
15172 "@img/sharp-linux-arm64": "npm:0.33.3"
15173 "@img/sharp-linux-s390x": "npm:0.33.3"
15174 "@img/sharp-linux-x64": "npm:0.33.3"
15175 "@img/sharp-linuxmusl-arm64": "npm:0.33.3"
15176 "@img/sharp-linuxmusl-x64": "npm:0.33.3"
15177 "@img/sharp-wasm32": "npm:0.33.3"
15178 "@img/sharp-win32-ia32": "npm:0.33.3"
15179 "@img/sharp-win32-x64": "npm:0.33.3"
15180 color: "npm:^4.2.3"
15181 detect-libc: "npm:^2.0.3"
15182 semver: "npm:^7.6.0"
15183 dependenciesMeta:
15184 "@img/sharp-darwin-arm64":
15185 optional: true
15186 "@img/sharp-darwin-x64":
15187 optional: true
15188 "@img/sharp-libvips-darwin-arm64":
15189 optional: true
15190 "@img/sharp-libvips-darwin-x64":
15191 optional: true
15192 "@img/sharp-libvips-linux-arm":
15193 optional: true
15194 "@img/sharp-libvips-linux-arm64":
15195 optional: true
15196 "@img/sharp-libvips-linux-s390x":
15197 optional: true
15198 "@img/sharp-libvips-linux-x64":
15199 optional: true
15200 "@img/sharp-libvips-linuxmusl-arm64":
15201 optional: true
15202 "@img/sharp-libvips-linuxmusl-x64":
15203 optional: true
15204 "@img/sharp-linux-arm":
15205 optional: true
15206 "@img/sharp-linux-arm64":
15207 optional: true
15208 "@img/sharp-linux-s390x":
15209 optional: true
15210 "@img/sharp-linux-x64":
15211 optional: true
15212 "@img/sharp-linuxmusl-arm64":
15213 optional: true
15214 "@img/sharp-linuxmusl-x64":
15215 optional: true
15216 "@img/sharp-wasm32":
15217 optional: true
15218 "@img/sharp-win32-ia32":
15219 optional: true
15220 "@img/sharp-win32-x64":
15221 optional: true
15222 checksum: 10c0/12f5203426595b4e64c807162a6d52358b591d25fbb414a51fe38861584759fba38485be951ed98d15be3dfe21f2def5336f78ca35bf8bbd22d88cc78ca03f2a
15223 languageName: node
15224 linkType: hard
15225
7934"shebang-command@npm:^2.0.0": 15226"shebang-command@npm:^2.0.0":
7935 version: 2.0.0 15227 version: 2.0.0
7936 resolution: "shebang-command@npm:2.0.0" 15228 resolution: "shebang-command@npm:2.0.0"
@@ -7947,6 +15239,26 @@ __metadata:
7947 languageName: node 15239 languageName: node
7948 linkType: hard 15240 linkType: hard
7949 15241
15242"shell-quote@npm:^1.7.3, shell-quote@npm:^1.8.1":
15243 version: 1.8.1
15244 resolution: "shell-quote@npm:1.8.1"
15245 checksum: 10c0/8cec6fd827bad74d0a49347057d40dfea1e01f12a6123bf82c4649f3ef152fc2bc6d6176e6376bffcd205d9d0ccb4f1f9acae889384d20baff92186f01ea455a
15246 languageName: node
15247 linkType: hard
15248
15249"shelljs@npm:^0.8.5":
15250 version: 0.8.5
15251 resolution: "shelljs@npm:0.8.5"
15252 dependencies:
15253 glob: "npm:^7.0.0"
15254 interpret: "npm:^1.0.0"
15255 rechoir: "npm:^0.6.2"
15256 bin:
15257 shjs: bin/shjs
15258 checksum: 10c0/feb25289a12e4bcd04c40ddfab51aff98a3729f5c2602d5b1a1b95f6819ec7804ac8147ebd8d9a85dfab69d501bcf92d7acef03247320f51c1552cec8d8e2382
15259 languageName: node
15260 linkType: hard
15261
7950"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6": 15262"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6":
7951 version: 1.0.6 15263 version: 1.0.6
7952 resolution: "side-channel@npm:1.0.6" 15264 resolution: "side-channel@npm:1.0.6"
@@ -7959,7 +15271,7 @@ __metadata:
7959 languageName: node 15271 languageName: node
7960 linkType: hard 15272 linkType: hard
7961 15273
7962"signal-exit@npm:^3.0.7": 15274"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7":
7963 version: 3.0.7 15275 version: 3.0.7
7964 resolution: "signal-exit@npm:3.0.7" 15276 resolution: "signal-exit@npm:3.0.7"
7965 checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 15277 checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912
@@ -7973,6 +15285,56 @@ __metadata:
7973 languageName: node 15285 languageName: node
7974 linkType: hard 15286 linkType: hard
7975 15287
15288"simple-swizzle@npm:^0.2.2":
15289 version: 0.2.2
15290 resolution: "simple-swizzle@npm:0.2.2"
15291 dependencies:
15292 is-arrayish: "npm:^0.3.1"
15293 checksum: 10c0/df5e4662a8c750bdba69af4e8263c5d96fe4cd0f9fe4bdfa3cbdeb45d2e869dff640beaaeb1ef0e99db4d8d2ec92f85508c269f50c972174851bc1ae5bd64308
15294 languageName: node
15295 linkType: hard
15296
15297"sirv@npm:^2.0.3":
15298 version: 2.0.4
15299 resolution: "sirv@npm:2.0.4"
15300 dependencies:
15301 "@polka/url": "npm:^1.0.0-next.24"
15302 mrmime: "npm:^2.0.0"
15303 totalist: "npm:^3.0.0"
15304 checksum: 10c0/68f8ee857f6a9415e9c07a1f31c7c561df8d5f1b1ba79bee3de583fa37da8718def5309f6b1c6e2c3ef77de45d74f5e49efc7959214443aa92d42e9c99180a4e
15305 languageName: node
15306 linkType: hard
15307
15308"sisteransi@npm:^1.0.5":
15309 version: 1.0.5
15310 resolution: "sisteransi@npm:1.0.5"
15311 checksum: 10c0/230ac975cca485b7f6fe2b96a711aa62a6a26ead3e6fb8ba17c5a00d61b8bed0d7adc21f5626b70d7c33c62ff4e63933017a6462942c719d1980bb0b1207ad46
15312 languageName: node
15313 linkType: hard
15314
15315"sitemap@npm:^7.1.1":
15316 version: 7.1.1
15317 resolution: "sitemap@npm:7.1.1"
15318 dependencies:
15319 "@types/node": "npm:^17.0.5"
15320 "@types/sax": "npm:^1.2.1"
15321 arg: "npm:^5.0.0"
15322 sax: "npm:^1.2.4"
15323 bin:
15324 sitemap: dist/cli.js
15325 checksum: 10c0/d25abe5c78f08e6014792e0f4d59353042a5a795788decdd87cb03bda736d248426a618e5028e18325f04b3e9d0ecb02d126ed6177365aa2703fa77df8f4f4e0
15326 languageName: node
15327 linkType: hard
15328
15329"skin-tone@npm:^2.0.0":
15330 version: 2.0.0
15331 resolution: "skin-tone@npm:2.0.0"
15332 dependencies:
15333 unicode-emoji-modifier-base: "npm:^1.0.0"
15334 checksum: 10c0/82d4c2527864f9cbd6cb7f3c4abb31e2224752234d5013b881d3e34e9ab543545b05206df5a17d14b515459fcb265ce409f9cfe443903176b0360cd20e4e4ba5
15335 languageName: node
15336 linkType: hard
15337
7976"slash@npm:^3.0.0": 15338"slash@npm:^3.0.0":
7977 version: 3.0.0 15339 version: 3.0.0
7978 resolution: "slash@npm:3.0.0" 15340 resolution: "slash@npm:3.0.0"
@@ -7980,6 +15342,13 @@ __metadata:
7980 languageName: node 15342 languageName: node
7981 linkType: hard 15343 linkType: hard
7982 15344
15345"slash@npm:^4.0.0":
15346 version: 4.0.0
15347 resolution: "slash@npm:4.0.0"
15348 checksum: 10c0/b522ca75d80d107fd30d29df0549a7b2537c83c4c4ecd12cd7d4ea6c8aaca2ab17ada002e7a1d78a9d736a0261509f26ea5b489082ee443a3a810586ef8eff18
15349 languageName: node
15350 linkType: hard
15351
7983"smart-buffer@npm:^4.2.0": 15352"smart-buffer@npm:^4.2.0":
7984 version: 4.2.0 15353 version: 4.2.0
7985 resolution: "smart-buffer@npm:4.2.0" 15354 resolution: "smart-buffer@npm:4.2.0"
@@ -7987,6 +15356,17 @@ __metadata:
7987 languageName: node 15356 languageName: node
7988 linkType: hard 15357 linkType: hard
7989 15358
15359"sockjs@npm:^0.3.24":
15360 version: 0.3.24
15361 resolution: "sockjs@npm:0.3.24"
15362 dependencies:
15363 faye-websocket: "npm:^0.11.3"
15364 uuid: "npm:^8.3.2"
15365 websocket-driver: "npm:^0.7.4"
15366 checksum: 10c0/aa102c7d921bf430215754511c81ea7248f2dcdf268fbdb18e4d8183493a86b8793b164c636c52f474a886f747447c962741df2373888823271efdb9d2594f33
15367 languageName: node
15368 linkType: hard
15369
7990"socks-proxy-agent@npm:^7.0.0": 15370"socks-proxy-agent@npm:^7.0.0":
7991 version: 7.0.0 15371 version: 7.0.0
7992 resolution: "socks-proxy-agent@npm:7.0.0" 15372 resolution: "socks-proxy-agent@npm:7.0.0"
@@ -8008,6 +15388,13 @@ __metadata:
8008 languageName: node 15388 languageName: node
8009 linkType: hard 15389 linkType: hard
8010 15390
15391"sort-css-media-queries@npm:2.1.0":
15392 version: 2.1.0
15393 resolution: "sort-css-media-queries@npm:2.1.0"
15394 checksum: 10c0/6b39dd2503d8279688fee837c63bdf3b49eea14d10d5ae09d9e99e4a0b3da1b702c3931e8f793b702b9ea8929a9389ba8d6345b58b5d1f0ec3e84920685a724a
15395 languageName: node
15396 linkType: hard
15397
8011"source-map-js@npm:^1.2.0": 15398"source-map-js@npm:^1.2.0":
8012 version: 1.2.0 15399 version: 1.2.0
8013 resolution: "source-map-js@npm:1.2.0" 15400 resolution: "source-map-js@npm:1.2.0"
@@ -8032,13 +15419,20 @@ __metadata:
8032 languageName: node 15419 languageName: node
8033 linkType: hard 15420 linkType: hard
8034 15421
8035"source-map@npm:^0.6.0, source-map@npm:~0.6.0, source-map@npm:~0.6.1": 15422"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1":
8036 version: 0.6.1 15423 version: 0.6.1
8037 resolution: "source-map@npm:0.6.1" 15424 resolution: "source-map@npm:0.6.1"
8038 checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011 15425 checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011
8039 languageName: node 15426 languageName: node
8040 linkType: hard 15427 linkType: hard
8041 15428
15429"source-map@npm:^0.7.0":
15430 version: 0.7.4
15431 resolution: "source-map@npm:0.7.4"
15432 checksum: 10c0/dc0cf3768fe23c345ea8760487f8c97ef6fca8a73c83cd7c9bf2fde8bc2c34adb9c0824d6feb14bc4f9e37fb522e18af621543f1289038a66ac7586da29aa7dc
15433 languageName: node
15434 linkType: hard
15435
8042"source-map@npm:^0.8.0-beta.0": 15436"source-map@npm:^0.8.0-beta.0":
8043 version: 0.8.0-beta.0 15437 version: 0.8.0-beta.0
8044 resolution: "source-map@npm:0.8.0-beta.0" 15438 resolution: "source-map@npm:0.8.0-beta.0"
@@ -8055,6 +15449,40 @@ __metadata:
8055 languageName: node 15449 languageName: node
8056 linkType: hard 15450 linkType: hard
8057 15451
15452"space-separated-tokens@npm:^2.0.0":
15453 version: 2.0.2
15454 resolution: "space-separated-tokens@npm:2.0.2"
15455 checksum: 10c0/6173e1d903dca41dcab6a2deed8b4caf61bd13b6d7af8374713500570aa929ff9414ae09a0519f4f8772df993300305a395d4871f35bc4ca72b6db57e1f30af8
15456 languageName: node
15457 linkType: hard
15458
15459"spdy-transport@npm:^3.0.0":
15460 version: 3.0.0
15461 resolution: "spdy-transport@npm:3.0.0"
15462 dependencies:
15463 debug: "npm:^4.1.0"
15464 detect-node: "npm:^2.0.4"
15465 hpack.js: "npm:^2.1.6"
15466 obuf: "npm:^1.1.2"
15467 readable-stream: "npm:^3.0.6"
15468 wbuf: "npm:^1.7.3"
15469 checksum: 10c0/eaf7440fa90724fffc813c386d4a8a7427d967d6e46d7c51d8f8a533d1a6911b9823ea9218703debbae755337e85f110185d7a00ae22ec5c847077b908ce71bb
15470 languageName: node
15471 linkType: hard
15472
15473"spdy@npm:^4.0.2":
15474 version: 4.0.2
15475 resolution: "spdy@npm:4.0.2"
15476 dependencies:
15477 debug: "npm:^4.1.0"
15478 handle-thing: "npm:^2.0.0"
15479 http-deceiver: "npm:^1.2.7"
15480 select-hose: "npm:^2.0.0"
15481 spdy-transport: "npm:^3.0.0"
15482 checksum: 10c0/983509c0be9d06fd00bb9dff713c5b5d35d3ffd720db869acdd5ad7aa6fc0e02c2318b58f75328957d8ff772acdf1f7d19382b6047df342044ff3e2d6805ccdf
15483 languageName: node
15484 linkType: hard
15485
8058"specificity@npm:^0.4.1": 15486"specificity@npm:^0.4.1":
8059 version: 0.4.1 15487 version: 0.4.1
8060 resolution: "specificity@npm:0.4.1" 15488 resolution: "specificity@npm:0.4.1"
@@ -8064,6 +15492,20 @@ __metadata:
8064 languageName: node 15492 languageName: node
8065 linkType: hard 15493 linkType: hard
8066 15494
15495"sprintf-js@npm:~1.0.2":
15496 version: 1.0.3
15497 resolution: "sprintf-js@npm:1.0.3"
15498 checksum: 10c0/ecadcfe4c771890140da5023d43e190b7566d9cf8b2d238600f31bec0fc653f328da4450eb04bd59a431771a8e9cc0e118f0aa3974b683a4981b4e07abc2a5bb
15499 languageName: node
15500 linkType: hard
15501
15502"srcset@npm:^4.0.0":
15503 version: 4.0.0
15504 resolution: "srcset@npm:4.0.0"
15505 checksum: 10c0/0685c3bd2423b33831734fb71560cd8784f024895e70ee2ac2c392e30047c27ffd9481e001950fb0503f4906bc3fe963145935604edad77944d09c9800990660
15506 languageName: node
15507 linkType: hard
15508
8067"ssri@npm:^10.0.0": 15509"ssri@npm:^10.0.0":
8068 version: 10.0.5 15510 version: 10.0.5
8069 resolution: "ssri@npm:10.0.5" 15511 resolution: "ssri@npm:10.0.5"
@@ -8073,6 +15515,13 @@ __metadata:
8073 languageName: node 15515 languageName: node
8074 linkType: hard 15516 linkType: hard
8075 15517
15518"stable@npm:^0.1.8":
15519 version: 0.1.8
15520 resolution: "stable@npm:0.1.8"
15521 checksum: 10c0/df74b5883075076e78f8e365e4068ecd977af6c09da510cfc3148a303d4b87bc9aa8f7c48feb67ed4ef970b6140bd9eabba2129e28024aa88df5ea0114cba39d
15522 languageName: node
15523 linkType: hard
15524
8076"stackblur-canvas@npm:^2.0.0": 15525"stackblur-canvas@npm:^2.0.0":
8077 version: 2.7.0 15526 version: 2.7.0
8078 resolution: "stackblur-canvas@npm:2.7.0" 15527 resolution: "stackblur-canvas@npm:2.7.0"
@@ -8080,6 +15529,27 @@ __metadata:
8080 languageName: node 15529 languageName: node
8081 linkType: hard 15530 linkType: hard
8082 15531
15532"statuses@npm:2.0.1":
15533 version: 2.0.1
15534 resolution: "statuses@npm:2.0.1"
15535 checksum: 10c0/34378b207a1620a24804ce8b5d230fea0c279f00b18a7209646d5d47e419d1cc23e7cbf33a25a1e51ac38973dc2ac2e1e9c647a8e481ef365f77668d72becfd0
15536 languageName: node
15537 linkType: hard
15538
15539"statuses@npm:>= 1.4.0 < 2":
15540 version: 1.5.0
15541 resolution: "statuses@npm:1.5.0"
15542 checksum: 10c0/e433900956357b3efd79b1c547da4d291799ac836960c016d10a98f6a810b1b5c0dcc13b5a7aa609a58239b5190e1ea176ad9221c2157d2fd1c747393e6b2940
15543 languageName: node
15544 linkType: hard
15545
15546"std-env@npm:^3.0.1":
15547 version: 3.7.0
15548 resolution: "std-env@npm:3.7.0"
15549 checksum: 10c0/60edf2d130a4feb7002974af3d5a5f3343558d1ccf8d9b9934d225c638606884db4a20d2fe6440a09605bca282af6b042ae8070a10490c0800d69e82e478f41e
15550 languageName: node
15551 linkType: hard
15552
8083"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": 15553"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3":
8084 version: 4.2.3 15554 version: 4.2.3
8085 resolution: "string-width@npm:4.2.3" 15555 resolution: "string-width@npm:4.2.3"
@@ -8165,6 +15635,25 @@ __metadata:
8165 languageName: node 15635 languageName: node
8166 linkType: hard 15636 linkType: hard
8167 15637
15638"string_decoder@npm:~1.1.1":
15639 version: 1.1.1
15640 resolution: "string_decoder@npm:1.1.1"
15641 dependencies:
15642 safe-buffer: "npm:~5.1.0"
15643 checksum: 10c0/b4f89f3a92fd101b5653ca3c99550e07bdf9e13b35037e9e2a1c7b47cec4e55e06ff3fc468e314a0b5e80bfbaf65c1ca5a84978764884ae9413bec1fc6ca924e
15644 languageName: node
15645 linkType: hard
15646
15647"stringify-entities@npm:^4.0.0":
15648 version: 4.0.4
15649 resolution: "stringify-entities@npm:4.0.4"
15650 dependencies:
15651 character-entities-html4: "npm:^2.0.0"
15652 character-entities-legacy: "npm:^3.0.0"
15653 checksum: 10c0/537c7e656354192406bdd08157d759cd615724e9d0873602d2c9b2f6a5c0a8d0b1d73a0a08677848105c5eebac6db037b57c0b3a4ec86331117fa7319ed50448
15654 languageName: node
15655 linkType: hard
15656
8168"stringify-object@npm:^3.3.0": 15657"stringify-object@npm:^3.3.0":
8169 version: 3.3.0 15658 version: 3.3.0
8170 resolution: "stringify-object@npm:3.3.0" 15659 resolution: "stringify-object@npm:3.3.0"
@@ -8194,6 +15683,13 @@ __metadata:
8194 languageName: node 15683 languageName: node
8195 linkType: hard 15684 linkType: hard
8196 15685
15686"strip-bom-string@npm:^1.0.0":
15687 version: 1.0.0
15688 resolution: "strip-bom-string@npm:1.0.0"
15689 checksum: 10c0/5c5717e2643225aa6a6d659d34176ab2657037f1fe2423ac6fcdb488f135e14fef1022030e426d8b4d0989e09adbd5c3288d5d3b9c632abeefd2358dfc512bca
15690 languageName: node
15691 linkType: hard
15692
8197"strip-bom@npm:^3.0.0": 15693"strip-bom@npm:^3.0.0":
8198 version: 3.0.0 15694 version: 3.0.0
8199 resolution: "strip-bom@npm:3.0.0" 15695 resolution: "strip-bom@npm:3.0.0"
@@ -8208,6 +15704,13 @@ __metadata:
8208 languageName: node 15704 languageName: node
8209 linkType: hard 15705 linkType: hard
8210 15706
15707"strip-final-newline@npm:^2.0.0":
15708 version: 2.0.0
15709 resolution: "strip-final-newline@npm:2.0.0"
15710 checksum: 10c0/bddf8ccd47acd85c0e09ad7375409d81653f645fda13227a9d459642277c253d877b68f2e5e4d819fe75733b0e626bac7e954c04f3236f6d196f79c94fa4a96f
15711 languageName: node
15712 linkType: hard
15713
8211"strip-json-comments@npm:^3.1.1": 15714"strip-json-comments@npm:^3.1.1":
8212 version: 3.1.1 15715 version: 3.1.1
8213 resolution: "strip-json-comments@npm:3.1.1" 15716 resolution: "strip-json-comments@npm:3.1.1"
@@ -8215,6 +15718,13 @@ __metadata:
8215 languageName: node 15718 languageName: node
8216 linkType: hard 15719 linkType: hard
8217 15720
15721"strip-json-comments@npm:~2.0.1":
15722 version: 2.0.1
15723 resolution: "strip-json-comments@npm:2.0.1"
15724 checksum: 10c0/b509231cbdee45064ff4f9fd73609e2bcc4e84a4d508e9dd0f31f70356473fde18abfb5838c17d56fb236f5a06b102ef115438de0600b749e818a35fbbc48c43
15725 languageName: node
15726 linkType: hard
15727
8218"style-mod@npm:^4.0.0, style-mod@npm:^4.1.0": 15728"style-mod@npm:^4.0.0, style-mod@npm:^4.1.0":
8219 version: 4.1.0 15729 version: 4.1.0
8220 resolution: "style-mod@npm:4.1.0" 15730 resolution: "style-mod@npm:4.1.0"
@@ -8222,6 +15732,36 @@ __metadata:
8222 languageName: node 15732 languageName: node
8223 linkType: hard 15733 linkType: hard
8224 15734
15735"style-to-object@npm:^0.4.0":
15736 version: 0.4.4
15737 resolution: "style-to-object@npm:0.4.4"
15738 dependencies:
15739 inline-style-parser: "npm:0.1.1"
15740 checksum: 10c0/3a733080da66952881175b17d65f92985cf94c1ca358a92cf21b114b1260d49b94a404ed79476047fb95698d64c7e366ca7443f0225939e2fb34c38bbc9c7639
15741 languageName: node
15742 linkType: hard
15743
15744"style-to-object@npm:^1.0.0":
15745 version: 1.0.6
15746 resolution: "style-to-object@npm:1.0.6"
15747 dependencies:
15748 inline-style-parser: "npm:0.2.3"
15749 checksum: 10c0/be5e8e3f0e35c0338de4112b9d861db576a52ebbd97f2501f1fb2c900d05c8fc42c5114407fa3a7f8b39301146cd8ca03a661bf52212394125a9629d5b771aba
15750 languageName: node
15751 linkType: hard
15752
15753"stylehacks@npm:^5.1.1":
15754 version: 5.1.1
15755 resolution: "stylehacks@npm:5.1.1"
15756 dependencies:
15757 browserslist: "npm:^4.21.4"
15758 postcss-selector-parser: "npm:^6.0.4"
15759 peerDependencies:
15760 postcss: ^8.2.15
15761 checksum: 10c0/402c2b545eeda0e972f125779adddc88df11bcf3a89de60c92026bd98cd49c1abffcd5bfe41766398835e0a1c7e5e72bdb6905809ecbb60716cd8d3a32ea7cd3
15762 languageName: node
15763 linkType: hard
15764
8225"stylis@npm:4.2.0": 15765"stylis@npm:4.2.0":
8226 version: 4.2.0 15766 version: 4.2.0
8227 resolution: "stylis@npm:4.2.0" 15767 resolution: "stylis@npm:4.2.0"
@@ -8247,6 +15787,15 @@ __metadata:
8247 languageName: node 15787 languageName: node
8248 linkType: hard 15788 linkType: hard
8249 15789
15790"supports-color@npm:^8.0.0":
15791 version: 8.1.1
15792 resolution: "supports-color@npm:8.1.1"
15793 dependencies:
15794 has-flag: "npm:^4.0.0"
15795 checksum: 10c0/ea1d3c275dd604c974670f63943ed9bd83623edc102430c05adb8efc56ba492746b6e95386e7831b872ec3807fd89dd8eb43f735195f37b5ec343e4234cc7e89
15796 languageName: node
15797 linkType: hard
15798
8250"supports-preserve-symlinks-flag@npm:^1.0.0": 15799"supports-preserve-symlinks-flag@npm:^1.0.0":
8251 version: 1.0.0 15800 version: 1.0.0
8252 resolution: "supports-preserve-symlinks-flag@npm:1.0.0" 15801 resolution: "supports-preserve-symlinks-flag@npm:1.0.0"
@@ -8254,6 +15803,13 @@ __metadata:
8254 languageName: node 15803 languageName: node
8255 linkType: hard 15804 linkType: hard
8256 15805
15806"svg-parser@npm:^2.0.4":
15807 version: 2.0.4
15808 resolution: "svg-parser@npm:2.0.4"
15809 checksum: 10c0/02f6cb155dd7b63ebc2f44f36365bc294543bebb81b614b7628f1af3c54ab64f7e1cec20f06e252bf95bdde78441ae295a412c68ad1678f16a6907d924512b7a
15810 languageName: node
15811 linkType: hard
15812
8257"svg-pathdata@npm:^6.0.3": 15813"svg-pathdata@npm:^6.0.3":
8258 version: 6.0.3 15814 version: 6.0.3
8259 resolution: "svg-pathdata@npm:6.0.3" 15815 resolution: "svg-pathdata@npm:6.0.3"
@@ -8275,6 +15831,23 @@ __metadata:
8275 languageName: node 15831 languageName: node
8276 linkType: hard 15832 linkType: hard
8277 15833
15834"svgo@npm:^2.7.0, svgo@npm:^2.8.0":
15835 version: 2.8.0
15836 resolution: "svgo@npm:2.8.0"
15837 dependencies:
15838 "@trysound/sax": "npm:0.2.0"
15839 commander: "npm:^7.2.0"
15840 css-select: "npm:^4.1.3"
15841 css-tree: "npm:^1.1.3"
15842 csso: "npm:^4.2.0"
15843 picocolors: "npm:^1.0.0"
15844 stable: "npm:^0.1.8"
15845 bin:
15846 svgo: bin/svgo
15847 checksum: 10c0/0741f5d5cad63111a90a0ce7a1a5a9013f6d293e871b75efe39addb57f29a263e45294e485a4d2ff9cc260a5d142c8b5937b2234b4ef05efdd2706fb2d360ecc
15848 languageName: node
15849 linkType: hard
15850
8278"svgpath@npm:^2.3.0": 15851"svgpath@npm:^2.3.0":
8279 version: 2.6.0 15852 version: 2.6.0
8280 resolution: "svgpath@npm:2.6.0" 15853 resolution: "svgpath@npm:2.6.0"
@@ -8282,6 +15855,18 @@ __metadata:
8282 languageName: node 15855 languageName: node
8283 linkType: hard 15856 linkType: hard
8284 15857
15858"swc-loader@npm:^0.2.6":
15859 version: 0.2.6
15860 resolution: "swc-loader@npm:0.2.6"
15861 dependencies:
15862 "@swc/counter": "npm:^0.1.3"
15863 peerDependencies:
15864 "@swc/core": ^1.2.147
15865 webpack: ">=2"
15866 checksum: 10c0/b06926c5cb153931589c2166aa4c7c052cc53c68758acdda480d1eb59ecddf7d74b168e33166c4f807cc9dbae4395de9d80a14ad43e265fffaa775638abf71ce
15867 languageName: node
15868 linkType: hard
15869
8285"synckit@npm:^0.8.6": 15870"synckit@npm:^0.8.6":
8286 version: 0.8.8 15871 version: 0.8.8
8287 resolution: "synckit@npm:0.8.8" 15872 resolution: "synckit@npm:0.8.8"
@@ -8292,7 +15877,14 @@ __metadata:
8292 languageName: node 15877 languageName: node
8293 linkType: hard 15878 linkType: hard
8294 15879
8295"tapable@npm:^2.2.0": 15880"tapable@npm:^1.0.0":
15881 version: 1.1.3
15882 resolution: "tapable@npm:1.1.3"
15883 checksum: 10c0/c9f0265e55e45821ec672b9b9ee8a35d95bf3ea6b352199f8606a2799018e89cfe4433c554d424b31fc67c4be26b05d4f36dc3c607def416fdb2514cd63dba50
15884 languageName: node
15885 linkType: hard
15886
15887"tapable@npm:^2.0.0, tapable@npm:^2.1.1, tapable@npm:^2.2.0, tapable@npm:^2.2.1":
8296 version: 2.2.1 15888 version: 2.2.1
8297 resolution: "tapable@npm:2.2.1" 15889 resolution: "tapable@npm:2.2.1"
8298 checksum: 10c0/bc40e6efe1e554d075469cedaba69a30eeb373552aaf41caeaaa45bf56ffacc2674261b106245bd566b35d8f3329b52d838e851ee0a852120acae26e622925c9 15890 checksum: 10c0/bc40e6efe1e554d075469cedaba69a30eeb373552aaf41caeaaa45bf56ffacc2674261b106245bd566b35d8f3329b52d838e851ee0a852120acae26e622925c9
@@ -8300,8 +15892,8 @@ __metadata:
8300 linkType: hard 15892 linkType: hard
8301 15893
8302"tar@npm:^6.1.11, tar@npm:^6.1.2": 15894"tar@npm:^6.1.11, tar@npm:^6.1.2":
8303 version: 6.1.15 15895 version: 6.2.1
8304 resolution: "tar@npm:6.1.15" 15896 resolution: "tar@npm:6.2.1"
8305 dependencies: 15897 dependencies:
8306 chownr: "npm:^2.0.0" 15898 chownr: "npm:^2.0.0"
8307 fs-minipass: "npm:^2.0.0" 15899 fs-minipass: "npm:^2.0.0"
@@ -8309,7 +15901,7 @@ __metadata:
8309 minizlib: "npm:^2.1.1" 15901 minizlib: "npm:^2.1.1"
8310 mkdirp: "npm:^1.0.3" 15902 mkdirp: "npm:^1.0.3"
8311 yallist: "npm:^4.0.0" 15903 yallist: "npm:^4.0.0"
8312 checksum: 10c0/bb2babe7b14442f690d83c2b2c571c9dd0bf802314773e05f4a3e4a241fdecd7fb560b8e4e7d6ea34533c8cd692e1b8418a3b8ba3b9687fe78a683dfbad7f82d 15904 checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537
8313 languageName: node 15905 languageName: node
8314 linkType: hard 15906 linkType: hard
8315 15907
@@ -8332,9 +15924,31 @@ __metadata:
8332 languageName: node 15924 languageName: node
8333 linkType: hard 15925 linkType: hard
8334 15926
8335"terser@npm:^5.0.0, terser@npm:^5.15.1": 15927"terser-webpack-plugin@npm:^5.3.10, terser-webpack-plugin@npm:^5.3.9":
8336 version: 5.19.2 15928 version: 5.3.10
8337 resolution: "terser@npm:5.19.2" 15929 resolution: "terser-webpack-plugin@npm:5.3.10"
15930 dependencies:
15931 "@jridgewell/trace-mapping": "npm:^0.3.20"
15932 jest-worker: "npm:^27.4.5"
15933 schema-utils: "npm:^3.1.1"
15934 serialize-javascript: "npm:^6.0.1"
15935 terser: "npm:^5.26.0"
15936 peerDependencies:
15937 webpack: ^5.1.0
15938 peerDependenciesMeta:
15939 "@swc/core":
15940 optional: true
15941 esbuild:
15942 optional: true
15943 uglify-js:
15944 optional: true
15945 checksum: 10c0/66d1ed3174542560911cf96f4716aeea8d60e7caab212291705d50072b6ba844c7391442541b13c848684044042bea9ec87512b8506528c12854943da05faf91
15946 languageName: node
15947 linkType: hard
15948
15949"terser@npm:^5.0.0, terser@npm:^5.10.0, terser@npm:^5.15.1, terser@npm:^5.26.0":
15950 version: 5.30.3
15951 resolution: "terser@npm:5.30.3"
8338 dependencies: 15952 dependencies:
8339 "@jridgewell/source-map": "npm:^0.3.3" 15953 "@jridgewell/source-map": "npm:^0.3.3"
8340 acorn: "npm:^8.8.2" 15954 acorn: "npm:^8.8.2"
@@ -8342,7 +15956,7 @@ __metadata:
8342 source-map-support: "npm:~0.5.20" 15956 source-map-support: "npm:~0.5.20"
8343 bin: 15957 bin:
8344 terser: bin/terser 15958 terser: bin/terser
8345 checksum: 10c0/95817b86619af33d8d143d7ae02dfcd9ac2cf4ea5b5cb7b208aaccff4cdc5594893960a4c3dcdac09863ebd43e2835ab173997041790aa77092c1d31ff40c95a 15959 checksum: 10c0/ab5a8afef2e7a3b12a0fd17f9ff984fe02aefa945985eb139ab9984280d523a1104021eda889a7f993b69a67574ceb8fd0db8b76e5efc6a7607246db51bcc0b6
8346 languageName: node 15960 languageName: node
8347 linkType: hard 15961 linkType: hard
8348 15962
@@ -8362,6 +15976,27 @@ __metadata:
8362 languageName: node 15976 languageName: node
8363 linkType: hard 15977 linkType: hard
8364 15978
15979"thunky@npm:^1.0.2":
15980 version: 1.1.0
15981 resolution: "thunky@npm:1.1.0"
15982 checksum: 10c0/369764f39de1ce1de2ba2fa922db4a3f92e9c7f33bcc9a713241bc1f4a5238b484c17e0d36d1d533c625efb00e9e82c3e45f80b47586945557b45abb890156d2
15983 languageName: node
15984 linkType: hard
15985
15986"tiny-invariant@npm:^1.0.2":
15987 version: 1.3.3
15988 resolution: "tiny-invariant@npm:1.3.3"
15989 checksum: 10c0/65af4a07324b591a059b35269cd696aba21bef2107f29b9f5894d83cc143159a204b299553435b03874ebb5b94d019afa8b8eff241c8a4cfee95872c2e1c1c4a
15990 languageName: node
15991 linkType: hard
15992
15993"tiny-warning@npm:^1.0.0":
15994 version: 1.0.3
15995 resolution: "tiny-warning@npm:1.0.3"
15996 checksum: 10c0/ef8531f581b30342f29670cb41ca248001c6fd7975ce22122bd59b8d62b4fc84ad4207ee7faa95cde982fa3357cd8f4be650142abc22805538c3b1392d7084fa
15997 languageName: node
15998 linkType: hard
15999
8365"to-fast-properties@npm:^2.0.0": 16000"to-fast-properties@npm:^2.0.0":
8366 version: 2.0.0 16001 version: 2.0.0
8367 resolution: "to-fast-properties@npm:2.0.0" 16002 resolution: "to-fast-properties@npm:2.0.0"
@@ -8378,6 +16013,20 @@ __metadata:
8378 languageName: node 16013 languageName: node
8379 linkType: hard 16014 linkType: hard
8380 16015
16016"toidentifier@npm:1.0.1":
16017 version: 1.0.1
16018 resolution: "toidentifier@npm:1.0.1"
16019 checksum: 10c0/93937279934bd66cc3270016dd8d0afec14fb7c94a05c72dc57321f8bd1fa97e5bea6d1f7c89e728d077ca31ea125b78320a616a6c6cd0e6b9cb94cb864381c1
16020 languageName: node
16021 linkType: hard
16022
16023"totalist@npm:^3.0.0":
16024 version: 3.0.1
16025 resolution: "totalist@npm:3.0.1"
16026 checksum: 10c0/4bb1fadb69c3edbef91c73ebef9d25b33bbf69afe1e37ce544d5f7d13854cda15e47132f3e0dc4cafe300ddb8578c77c50a65004d8b6e97e77934a69aa924863
16027 languageName: node
16028 linkType: hard
16029
8381"tr46@npm:^1.0.1": 16030"tr46@npm:^1.0.1":
8382 version: 1.0.1 16031 version: 1.0.1
8383 resolution: "tr46@npm:1.0.1" 16032 resolution: "tr46@npm:1.0.1"
@@ -8394,12 +16043,26 @@ __metadata:
8394 languageName: node 16043 languageName: node
8395 linkType: hard 16044 linkType: hard
8396 16045
8397"ts-api-utils@npm:^1.0.1": 16046"trim-lines@npm:^3.0.0":
8398 version: 1.0.1 16047 version: 3.0.1
8399 resolution: "ts-api-utils@npm:1.0.1" 16048 resolution: "trim-lines@npm:3.0.1"
16049 checksum: 10c0/3a1611fa9e52aa56a94c69951a9ea15b8aaad760eaa26c56a65330dc8adf99cb282fc07cc9d94968b7d4d88003beba220a7278bbe2063328eb23fb56f9509e94
16050 languageName: node
16051 linkType: hard
16052
16053"trough@npm:^2.0.0":
16054 version: 2.2.0
16055 resolution: "trough@npm:2.2.0"
16056 checksum: 10c0/58b671fc970e7867a48514168894396dd94e6d9d6456aca427cc299c004fe67f35ed7172a36449086b2edde10e78a71a284ec0076809add6834fb8f857ccb9b0
16057 languageName: node
16058 linkType: hard
16059
16060"ts-api-utils@npm:^1.3.0":
16061 version: 1.3.0
16062 resolution: "ts-api-utils@npm:1.3.0"
8400 peerDependencies: 16063 peerDependencies:
8401 typescript: ">=4.2.0" 16064 typescript: ">=4.2.0"
8402 checksum: 10c0/8e8a54afb44df31c413e6f5b817a305a37780726125db26e85d01d553efc31aacb3ccad111a14844b584776f24e71bcd4db2f2d3e9bce8031a329dc78f3e46e2 16065 checksum: 10c0/f54a0ba9ed56ce66baea90a3fa087a484002e807f28a8ccb2d070c75e76bde64bd0f6dce98b3802834156306050871b67eec325cb4e918015a360a3f0868c77c
8403 languageName: node 16066 languageName: node
8404 linkType: hard 16067 linkType: hard
8405 16068
@@ -8415,7 +16078,7 @@ __metadata:
8415 languageName: node 16078 languageName: node
8416 linkType: hard 16079 linkType: hard
8417 16080
8418"tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.6.2": 16081"tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.4.0, tslib@npm:^2.6.0, tslib@npm:^2.6.2":
8419 version: 2.6.2 16082 version: 2.6.2
8420 resolution: "tslib@npm:2.6.2" 16083 resolution: "tslib@npm:2.6.2"
8421 checksum: 10c0/e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb 16084 checksum: 10c0/e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb
@@ -8445,6 +16108,30 @@ __metadata:
8445 languageName: node 16108 languageName: node
8446 linkType: hard 16109 linkType: hard
8447 16110
16111"type-fest@npm:^1.0.1":
16112 version: 1.4.0
16113 resolution: "type-fest@npm:1.4.0"
16114 checksum: 10c0/a3c0f4ee28ff6ddf800d769eafafcdeab32efa38763c1a1b8daeae681920f6e345d7920bf277245235561d8117dab765cb5f829c76b713b4c9de0998a5397141
16115 languageName: node
16116 linkType: hard
16117
16118"type-fest@npm:^2.13.0, type-fest@npm:^2.5.0":
16119 version: 2.19.0
16120 resolution: "type-fest@npm:2.19.0"
16121 checksum: 10c0/a5a7ecf2e654251613218c215c7493574594951c08e52ab9881c9df6a6da0aeca7528c213c622bc374b4e0cb5c443aa3ab758da4e3c959783ce884c3194e12cb
16122 languageName: node
16123 linkType: hard
16124
16125"type-is@npm:~1.6.18":
16126 version: 1.6.18
16127 resolution: "type-is@npm:1.6.18"
16128 dependencies:
16129 media-typer: "npm:0.3.0"
16130 mime-types: "npm:~2.1.24"
16131 checksum: 10c0/a23daeb538591b7efbd61ecf06b6feb2501b683ffdc9a19c74ef5baba362b4347e42f1b4ed81f5882a8c96a3bfff7f93ce3ffaf0cbbc879b532b04c97a55db9d
16132 languageName: node
16133 linkType: hard
16134
8448"typed-array-buffer@npm:^1.0.2": 16135"typed-array-buffer@npm:^1.0.2":
8449 version: 1.0.2 16136 version: 1.0.2
8450 resolution: "typed-array-buffer@npm:1.0.2" 16137 resolution: "typed-array-buffer@npm:1.0.2"
@@ -8497,23 +16184,32 @@ __metadata:
8497 languageName: node 16184 languageName: node
8498 linkType: hard 16185 linkType: hard
8499 16186
8500"typescript@npm:5.4.4": 16187"typedarray-to-buffer@npm:^3.1.5":
8501 version: 5.4.4 16188 version: 3.1.5
8502 resolution: "typescript@npm:5.4.4" 16189 resolution: "typedarray-to-buffer@npm:3.1.5"
16190 dependencies:
16191 is-typedarray: "npm:^1.0.0"
16192 checksum: 10c0/4ac5b7a93d604edabf3ac58d3a2f7e07487e9f6e98195a080e81dbffdc4127817f470f219d794a843b87052cedef102b53ac9b539855380b8c2172054b7d5027
16193 languageName: node
16194 linkType: hard
16195
16196"typescript@npm:5.4.5":
16197 version: 5.4.5
16198 resolution: "typescript@npm:5.4.5"
8503 bin: 16199 bin:
8504 tsc: bin/tsc 16200 tsc: bin/tsc
8505 tsserver: bin/tsserver 16201 tsserver: bin/tsserver
8506 checksum: 10c0/4d8de0291204ed61ca97ad0cba2ce064e09c4988ca1c451c787e4653ba76296ba35177a52694e8a00cf4ef899d0ee83338663b926d8b7d55167ff0ba81549999 16202 checksum: 10c0/2954022ada340fd3d6a9e2b8e534f65d57c92d5f3989a263754a78aba549f7e6529acc1921913560a4b816c46dce7df4a4d29f9f11a3dc0d4213bb76d043251e
8507 languageName: node 16203 languageName: node
8508 linkType: hard 16204 linkType: hard
8509 16205
8510"typescript@patch:typescript@npm%3A5.4.4#optional!builtin<compat/typescript>": 16206"typescript@patch:typescript@npm%3A5.4.5#optional!builtin<compat/typescript>":
8511 version: 5.4.4 16207 version: 5.4.5
8512 resolution: "typescript@patch:typescript@npm%3A5.4.4#optional!builtin<compat/typescript>::version=5.4.4&hash=5adc0c" 16208 resolution: "typescript@patch:typescript@npm%3A5.4.5#optional!builtin<compat/typescript>::version=5.4.5&hash=5adc0c"
8513 bin: 16209 bin:
8514 tsc: bin/tsc 16210 tsc: bin/tsc
8515 tsserver: bin/tsserver 16211 tsserver: bin/tsserver
8516 checksum: 10c0/1fa41b9964a9ff0ed913b339c90b46031b2d2da3cb1a192af516610733f7f1d5f7f9754a8e22b9ac7076d3d8aedd2c4f84db3f113bad060eac3a95962443a1bf 16212 checksum: 10c0/db2ad2a16ca829f50427eeb1da155e7a45e598eec7b086d8b4e8ba44e5a235f758e606d681c66992230d3fc3b8995865e5fd0b22a2c95486d0b3200f83072ec9
8517 languageName: node 16213 languageName: node
8518 linkType: hard 16214 linkType: hard
8519 16215
@@ -8543,6 +16239,13 @@ __metadata:
8543 languageName: node 16239 languageName: node
8544 linkType: hard 16240 linkType: hard
8545 16241
16242"unicode-emoji-modifier-base@npm:^1.0.0":
16243 version: 1.0.0
16244 resolution: "unicode-emoji-modifier-base@npm:1.0.0"
16245 checksum: 10c0/b37623fcf0162186debd20f116483e035a2d5b905b932a2c472459d9143d446ebcbefb2a494e2fe4fa7434355396e2a95ec3fc1f0c29a3bc8f2c827220e79c66
16246 languageName: node
16247 linkType: hard
16248
8546"unicode-match-property-ecmascript@npm:^2.0.0": 16249"unicode-match-property-ecmascript@npm:^2.0.0":
8547 version: 2.0.0 16250 version: 2.0.0
8548 resolution: "unicode-match-property-ecmascript@npm:2.0.0" 16251 resolution: "unicode-match-property-ecmascript@npm:2.0.0"
@@ -8567,6 +16270,21 @@ __metadata:
8567 languageName: node 16270 languageName: node
8568 linkType: hard 16271 linkType: hard
8569 16272
16273"unified@npm:^11.0.0, unified@npm:^11.0.3, unified@npm:^11.0.4":
16274 version: 11.0.4
16275 resolution: "unified@npm:11.0.4"
16276 dependencies:
16277 "@types/unist": "npm:^3.0.0"
16278 bail: "npm:^2.0.0"
16279 devlop: "npm:^1.0.0"
16280 extend: "npm:^3.0.0"
16281 is-plain-obj: "npm:^4.0.0"
16282 trough: "npm:^2.0.0"
16283 vfile: "npm:^6.0.0"
16284 checksum: 10c0/b550cdc994d54c84e2e098eb02cfa53535cbc140c148aa3296f235cb43082b499d239110f342fa65eb37ad919472a93cc62f062a83541485a69498084cc87ba1
16285 languageName: node
16286 linkType: hard
16287
8570"unique-filename@npm:^3.0.0": 16288"unique-filename@npm:^3.0.0":
8571 version: 3.0.0 16289 version: 3.0.0
8572 resolution: "unique-filename@npm:3.0.0" 16290 resolution: "unique-filename@npm:3.0.0"
@@ -8594,6 +16312,101 @@ __metadata:
8594 languageName: node 16312 languageName: node
8595 linkType: hard 16313 linkType: hard
8596 16314
16315"unique-string@npm:^3.0.0":
16316 version: 3.0.0
16317 resolution: "unique-string@npm:3.0.0"
16318 dependencies:
16319 crypto-random-string: "npm:^4.0.0"
16320 checksum: 10c0/b35ea034b161b2a573666ec16c93076b4b6106b8b16c2415808d747ab3a0566b5db0c4be231d4b11cfbc16d7fd915c9d8a45884bff0e2db11b799775b2e1e017
16321 languageName: node
16322 linkType: hard
16323
16324"unist-util-is@npm:^6.0.0":
16325 version: 6.0.0
16326 resolution: "unist-util-is@npm:6.0.0"
16327 dependencies:
16328 "@types/unist": "npm:^3.0.0"
16329 checksum: 10c0/9419352181eaa1da35eca9490634a6df70d2217815bb5938a04af3a662c12c5607a2f1014197ec9c426fbef18834f6371bfdb6f033040fa8aa3e965300d70e7e
16330 languageName: node
16331 linkType: hard
16332
16333"unist-util-modify-children@npm:^4.0.0":
16334 version: 4.0.0
16335 resolution: "unist-util-modify-children@npm:4.0.0"
16336 dependencies:
16337 "@types/unist": "npm:^3.0.0"
16338 array-iterate: "npm:^2.0.0"
16339 checksum: 10c0/63d44b09a2e4c674c72816d4328d668972e68cc965ea719fef1c642b66a3ebe3b102e284a3213b4920ebccff05e0f689b4eaae8a0e5c3dafcad117d1577496da
16340 languageName: node
16341 linkType: hard
16342
16343"unist-util-position-from-estree@npm:^2.0.0":
16344 version: 2.0.0
16345 resolution: "unist-util-position-from-estree@npm:2.0.0"
16346 dependencies:
16347 "@types/unist": "npm:^3.0.0"
16348 checksum: 10c0/39127bf5f0594e0a76d9241dec4f7aa26323517120ce1edd5ed91c8c1b9df7d6fb18af556e4b6250f1c7368825720ed892e2b6923be5cdc08a9bb16536dc37b3
16349 languageName: node
16350 linkType: hard
16351
16352"unist-util-position@npm:^5.0.0":
16353 version: 5.0.0
16354 resolution: "unist-util-position@npm:5.0.0"
16355 dependencies:
16356 "@types/unist": "npm:^3.0.0"
16357 checksum: 10c0/dde3b31e314c98f12b4dc6402f9722b2bf35e96a4f2d463233dd90d7cde2d4928074a7a11eff0a5eb1f4e200f27fc1557e0a64a7e8e4da6558542f251b1b7400
16358 languageName: node
16359 linkType: hard
16360
16361"unist-util-remove-position@npm:^5.0.0":
16362 version: 5.0.0
16363 resolution: "unist-util-remove-position@npm:5.0.0"
16364 dependencies:
16365 "@types/unist": "npm:^3.0.0"
16366 unist-util-visit: "npm:^5.0.0"
16367 checksum: 10c0/e8c76da4399446b3da2d1c84a97c607b37d03d1d92561e14838cbe4fdcb485bfc06c06cfadbb808ccb72105a80643976d0660d1fe222ca372203075be9d71105
16368 languageName: node
16369 linkType: hard
16370
16371"unist-util-stringify-position@npm:^4.0.0":
16372 version: 4.0.0
16373 resolution: "unist-util-stringify-position@npm:4.0.0"
16374 dependencies:
16375 "@types/unist": "npm:^3.0.0"
16376 checksum: 10c0/dfe1dbe79ba31f589108cb35e523f14029b6675d741a79dea7e5f3d098785045d556d5650ec6a8338af11e9e78d2a30df12b1ee86529cded1098da3f17ee999e
16377 languageName: node
16378 linkType: hard
16379
16380"unist-util-visit-children@npm:^3.0.0":
16381 version: 3.0.0
16382 resolution: "unist-util-visit-children@npm:3.0.0"
16383 dependencies:
16384 "@types/unist": "npm:^3.0.0"
16385 checksum: 10c0/51e95f54fbf11d414952c011c761c3960864948ad3fd2abe3989eb18b18d96b8f48e7ea5ab6f23264d1a3f4f5a1ff76312dd8f2196c78b762098403505c3abb9
16386 languageName: node
16387 linkType: hard
16388
16389"unist-util-visit-parents@npm:^6.0.0":
16390 version: 6.0.1
16391 resolution: "unist-util-visit-parents@npm:6.0.1"
16392 dependencies:
16393 "@types/unist": "npm:^3.0.0"
16394 unist-util-is: "npm:^6.0.0"
16395 checksum: 10c0/51b1a5b0aa23c97d3e03e7288f0cdf136974df2217d0999d3de573c05001ef04cccd246f51d2ebdfb9e8b0ed2704451ad90ba85ae3f3177cf9772cef67f56206
16396 languageName: node
16397 linkType: hard
16398
16399"unist-util-visit@npm:^5.0.0":
16400 version: 5.0.0
16401 resolution: "unist-util-visit@npm:5.0.0"
16402 dependencies:
16403 "@types/unist": "npm:^3.0.0"
16404 unist-util-is: "npm:^6.0.0"
16405 unist-util-visit-parents: "npm:^6.0.0"
16406 checksum: 10c0/51434a1d80252c1540cce6271a90fd1a106dbe624997c09ed8879279667fb0b2d3a685e02e92bf66598dcbe6cdffa7a5f5fb363af8fdf90dda6c855449ae39a5
16407 languageName: node
16408 linkType: hard
16409
8597"universalify@npm:^2.0.0": 16410"universalify@npm:^2.0.0":
8598 version: 2.0.0 16411 version: 2.0.0
8599 resolution: "universalify@npm:2.0.0" 16412 resolution: "universalify@npm:2.0.0"
@@ -8601,6 +16414,13 @@ __metadata:
8601 languageName: node 16414 languageName: node
8602 linkType: hard 16415 linkType: hard
8603 16416
16417"unpipe@npm:1.0.0, unpipe@npm:~1.0.0":
16418 version: 1.0.0
16419 resolution: "unpipe@npm:1.0.0"
16420 checksum: 10c0/193400255bd48968e5c5383730344fbb4fa114cdedfab26e329e50dd2d81b134244bb8a72c6ac1b10ab0281a58b363d06405632c9d49ca9dfd5e90cbd7d0f32c
16421 languageName: node
16422 linkType: hard
16423
8604"upath@npm:^1.2.0": 16424"upath@npm:^1.2.0":
8605 version: 1.2.0 16425 version: 1.2.0
8606 resolution: "upath@npm:1.2.0" 16426 resolution: "upath@npm:1.2.0"
@@ -8608,9 +16428,9 @@ __metadata:
8608 languageName: node 16428 languageName: node
8609 linkType: hard 16429 linkType: hard
8610 16430
8611"update-browserslist-db@npm:^1.0.11": 16431"update-browserslist-db@npm:^1.0.13":
8612 version: 1.0.11 16432 version: 1.0.13
8613 resolution: "update-browserslist-db@npm:1.0.11" 16433 resolution: "update-browserslist-db@npm:1.0.13"
8614 dependencies: 16434 dependencies:
8615 escalade: "npm:^3.1.1" 16435 escalade: "npm:^3.1.1"
8616 picocolors: "npm:^1.0.0" 16436 picocolors: "npm:^1.0.0"
@@ -8618,7 +16438,29 @@ __metadata:
8618 browserslist: ">= 4.21.0" 16438 browserslist: ">= 4.21.0"
8619 bin: 16439 bin:
8620 update-browserslist-db: cli.js 16440 update-browserslist-db: cli.js
8621 checksum: 10c0/280d5cf92e302d8de0c12ef840a6af26ec024a5158aa2020975cd01bf0ded09c709793a6f421e6d0f1a47557d6a1a10dc43af80f9c30b8fd0df9691eb98c1c69 16441 checksum: 10c0/e52b8b521c78ce1e0c775f356cd16a9c22c70d25f3e01180839c407a5dc787fb05a13f67560cbaf316770d26fa99f78f1acd711b1b54a4f35d4820d4ea7136e6
16442 languageName: node
16443 linkType: hard
16444
16445"update-notifier@npm:^6.0.2":
16446 version: 6.0.2
16447 resolution: "update-notifier@npm:6.0.2"
16448 dependencies:
16449 boxen: "npm:^7.0.0"
16450 chalk: "npm:^5.0.1"
16451 configstore: "npm:^6.0.0"
16452 has-yarn: "npm:^3.0.0"
16453 import-lazy: "npm:^4.0.0"
16454 is-ci: "npm:^3.0.1"
16455 is-installed-globally: "npm:^0.4.0"
16456 is-npm: "npm:^6.0.0"
16457 is-yarn-global: "npm:^0.4.0"
16458 latest-version: "npm:^7.0.0"
16459 pupa: "npm:^3.1.0"
16460 semver: "npm:^7.3.7"
16461 semver-diff: "npm:^4.0.0"
16462 xdg-basedir: "npm:^5.1.0"
16463 checksum: 10c0/ad3980073312df904133a6e6c554a7f9d0832ed6275e55f5a546313fe77a0f20f23a7b1b4aeb409e20a78afb06f4d3b2b28b332d9cfb55745b5d1ea155810bcc
8622 languageName: node 16464 languageName: node
8623 linkType: hard 16465 linkType: hard
8624 16466
@@ -8631,6 +16473,23 @@ __metadata:
8631 languageName: node 16473 languageName: node
8632 linkType: hard 16474 linkType: hard
8633 16475
16476"url-loader@npm:^4.1.1":
16477 version: 4.1.1
16478 resolution: "url-loader@npm:4.1.1"
16479 dependencies:
16480 loader-utils: "npm:^2.0.0"
16481 mime-types: "npm:^2.1.27"
16482 schema-utils: "npm:^3.0.0"
16483 peerDependencies:
16484 file-loader: "*"
16485 webpack: ^4.0.0 || ^5.0.0
16486 peerDependenciesMeta:
16487 file-loader:
16488 optional: true
16489 checksum: 10c0/71b6300e02ce26c70625eae1a2297c0737635038c62691bb3007ac33e85c0130efc74bfb444baf5c6b3bad5953491159d31d66498967d1417865d0c7e7cd1a64
16490 languageName: node
16491 linkType: hard
16492
8634"use-sync-external-store@npm:^1.2.0": 16493"use-sync-external-store@npm:^1.2.0":
8635 version: 1.2.0 16494 version: 1.2.0
8636 resolution: "use-sync-external-store@npm:1.2.0" 16495 resolution: "use-sync-external-store@npm:1.2.0"
@@ -8640,7 +16499,7 @@ __metadata:
8640 languageName: node 16499 languageName: node
8641 linkType: hard 16500 linkType: hard
8642 16501
8643"util-deprecate@npm:^1.0.1": 16502"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1":
8644 version: 1.0.2 16503 version: 1.0.2
8645 resolution: "util-deprecate@npm:1.0.2" 16504 resolution: "util-deprecate@npm:1.0.2"
8646 checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 16505 checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942
@@ -8660,6 +16519,27 @@ __metadata:
8660 languageName: node 16519 languageName: node
8661 linkType: hard 16520 linkType: hard
8662 16521
16522"utila@npm:~0.4":
16523 version: 0.4.0
16524 resolution: "utila@npm:0.4.0"
16525 checksum: 10c0/2791604e09ca4f77ae314df83e80d1805f867eb5c7e13e7413caee01273c278cf2c9a3670d8d25c889a877f7b149d892fe61b0181a81654b425e9622ab23d42e
16526 languageName: node
16527 linkType: hard
16528
16529"utility-types@npm:^3.10.0":
16530 version: 3.11.0
16531 resolution: "utility-types@npm:3.11.0"
16532 checksum: 10c0/2f1580137b0c3e6cf5405f37aaa8f5249961a76d26f1ca8efc0ff49a2fc0e0b2db56de8e521a174d075758e0c7eb3e590edec0832eb44478b958f09914920f19
16533 languageName: node
16534 linkType: hard
16535
16536"utils-merge@npm:1.0.1":
16537 version: 1.0.1
16538 resolution: "utils-merge@npm:1.0.1"
16539 checksum: 10c0/02ba649de1b7ca8854bfe20a82f1dfbdda3fb57a22ab4a8972a63a34553cf7aa51bc9081cf7e001b035b88186d23689d69e71b510e610a09a4c66f68aa95b672
16540 languageName: node
16541 linkType: hard
16542
8663"utrie@npm:^1.0.2": 16543"utrie@npm:^1.0.2":
8664 version: 1.0.2 16544 version: 1.0.2
8665 resolution: "utrie@npm:1.0.2" 16545 resolution: "utrie@npm:1.0.2"
@@ -8669,6 +16549,60 @@ __metadata:
8669 languageName: node 16549 languageName: node
8670 linkType: hard 16550 linkType: hard
8671 16551
16552"uuid@npm:^8.3.2":
16553 version: 8.3.2
16554 resolution: "uuid@npm:8.3.2"
16555 bin:
16556 uuid: dist/bin/uuid
16557 checksum: 10c0/bcbb807a917d374a49f475fae2e87fdca7da5e5530820ef53f65ba1d12131bd81a92ecf259cc7ce317cbe0f289e7d79fdfebcef9bfa3087c8c8a2fa304c9be54
16558 languageName: node
16559 linkType: hard
16560
16561"value-equal@npm:^1.0.1":
16562 version: 1.0.1
16563 resolution: "value-equal@npm:1.0.1"
16564 checksum: 10c0/79068098355483ef29f4d3753999ad880875b87625d7e9055cad9346ea4b7662aad3a66f87976801b0dd7a6f828ba973d28b1669ebcd37eaf88cc5f687c1a691
16565 languageName: node
16566 linkType: hard
16567
16568"vary@npm:~1.1.2":
16569 version: 1.1.2
16570 resolution: "vary@npm:1.1.2"
16571 checksum: 10c0/f15d588d79f3675135ba783c91a4083dcd290a2a5be9fcb6514220a1634e23df116847b1cc51f66bfb0644cf9353b2abb7815ae499bab06e46dd33c1a6bf1f4f
16572 languageName: node
16573 linkType: hard
16574
16575"vfile-location@npm:^5.0.0":
16576 version: 5.0.2
16577 resolution: "vfile-location@npm:5.0.2"
16578 dependencies:
16579 "@types/unist": "npm:^3.0.0"
16580 vfile: "npm:^6.0.0"
16581 checksum: 10c0/cfc7e49de93ac5be6f3c9a9fe77676756e00d33a6c69d9c1ce279b06eedafa67fe5d0da2334b40e97963c43b014501bca2f829dfd6622a3290fb6f7dd2b9339e
16582 languageName: node
16583 linkType: hard
16584
16585"vfile-message@npm:^4.0.0":
16586 version: 4.0.2
16587 resolution: "vfile-message@npm:4.0.2"
16588 dependencies:
16589 "@types/unist": "npm:^3.0.0"
16590 unist-util-stringify-position: "npm:^4.0.0"
16591 checksum: 10c0/07671d239a075f888b78f318bc1d54de02799db4e9dce322474e67c35d75ac4a5ac0aaf37b18801d91c9f8152974ea39678aa72d7198758b07f3ba04fb7d7514
16592 languageName: node
16593 linkType: hard
16594
16595"vfile@npm:^6.0.0, vfile@npm:^6.0.1":
16596 version: 6.0.1
16597 resolution: "vfile@npm:6.0.1"
16598 dependencies:
16599 "@types/unist": "npm:^3.0.0"
16600 unist-util-stringify-position: "npm:^4.0.0"
16601 vfile-message: "npm:^4.0.0"
16602 checksum: 10c0/443bda43e5ad3b73c5976e987dba2b2d761439867ba7d5d7c5f4b01d3c1cb1b976f5f0e6b2399a00dc9b4eaec611bd9984ce9ce8a75a72e60aed518b10a902d2
16603 languageName: node
16604 linkType: hard
16605
8672"vite-plugin-pwa@npm:^0.19.8": 16606"vite-plugin-pwa@npm:^0.19.8":
8673 version: 0.19.8 16607 version: 0.19.8
8674 resolution: "vite-plugin-pwa@npm:0.19.8" 16608 resolution: "vite-plugin-pwa@npm:0.19.8"
@@ -8690,9 +16624,9 @@ __metadata:
8690 languageName: node 16624 languageName: node
8691 linkType: hard 16625 linkType: hard
8692 16626
8693"vite@npm:^5.2.8": 16627"vite@npm:^5.2.10":
8694 version: 5.2.8 16628 version: 5.2.10
8695 resolution: "vite@npm:5.2.8" 16629 resolution: "vite@npm:5.2.10"
8696 dependencies: 16630 dependencies:
8697 esbuild: "npm:^0.20.1" 16631 esbuild: "npm:^0.20.1"
8698 fsevents: "npm:~2.3.3" 16632 fsevents: "npm:~2.3.3"
@@ -8726,7 +16660,7 @@ __metadata:
8726 optional: true 16660 optional: true
8727 bin: 16661 bin:
8728 vite: bin/vite.js 16662 vite: bin/vite.js
8729 checksum: 10c0/b5717bb00c2570c08ff6d8ed917655e79184efcafa9dd62d52eea19c5d6dfc5a708ec3de9ebc670a7165fc5d401c2bdf1563bb39e2748d8e51e1593d286a9a13 16663 checksum: 10c0/d50630ac8de807a6185cd9b5763b3969b2950a454cf6a4482f3780f183865e8d6f7e3aa57dd70ede1c493aaa861efb25b43562287efbcf8b471b7f3b88857a33
8730 languageName: node 16664 languageName: node
8731 linkType: hard 16665 linkType: hard
8732 16666
@@ -8737,6 +16671,32 @@ __metadata:
8737 languageName: node 16671 languageName: node
8738 linkType: hard 16672 linkType: hard
8739 16673
16674"watchpack@npm:^2.4.1":
16675 version: 2.4.1
16676 resolution: "watchpack@npm:2.4.1"
16677 dependencies:
16678 glob-to-regexp: "npm:^0.4.1"
16679 graceful-fs: "npm:^4.1.2"
16680 checksum: 10c0/c694de0a61004e587a8a0fdc9cfec20ee692c52032d9ab2c2e99969a37fdab9e6e1bd3164ed506f9a13f7c83e65563d563e0d6b87358470cdb7309b83db78683
16681 languageName: node
16682 linkType: hard
16683
16684"wbuf@npm:^1.1.0, wbuf@npm:^1.7.3":
16685 version: 1.7.3
16686 resolution: "wbuf@npm:1.7.3"
16687 dependencies:
16688 minimalistic-assert: "npm:^1.0.0"
16689 checksum: 10c0/56edcc5ef2b3d30913ba8f1f5cccc364d180670b24d5f3f8849c1e6fb514e5c7e3a87548ae61227a82859eba6269c11393ae24ce12a2ea1ecb9b465718ddced7
16690 languageName: node
16691 linkType: hard
16692
16693"web-namespaces@npm:^2.0.0":
16694 version: 2.0.1
16695 resolution: "web-namespaces@npm:2.0.1"
16696 checksum: 10c0/df245f466ad83bd5cd80bfffc1674c7f64b7b84d1de0e4d2c0934fb0782e0a599164e7197a4bce310ee3342fd61817b8047ff04f076a1ce12dd470584142a4bd
16697 languageName: node
16698 linkType: hard
16699
8740"webidl-conversions@npm:^3.0.0": 16700"webidl-conversions@npm:^3.0.0":
8741 version: 3.0.1 16701 version: 3.0.1
8742 resolution: "webidl-conversions@npm:3.0.1" 16702 resolution: "webidl-conversions@npm:3.0.1"
@@ -8751,6 +16711,178 @@ __metadata:
8751 languageName: node 16711 languageName: node
8752 linkType: hard 16712 linkType: hard
8753 16713
16714"webpack-bundle-analyzer@npm:^4.9.0":
16715 version: 4.10.1
16716 resolution: "webpack-bundle-analyzer@npm:4.10.1"
16717 dependencies:
16718 "@discoveryjs/json-ext": "npm:0.5.7"
16719 acorn: "npm:^8.0.4"
16720 acorn-walk: "npm:^8.0.0"
16721 commander: "npm:^7.2.0"
16722 debounce: "npm:^1.2.1"
16723 escape-string-regexp: "npm:^4.0.0"
16724 gzip-size: "npm:^6.0.0"
16725 html-escaper: "npm:^2.0.2"
16726 is-plain-object: "npm:^5.0.0"
16727 opener: "npm:^1.5.2"
16728 picocolors: "npm:^1.0.0"
16729 sirv: "npm:^2.0.3"
16730 ws: "npm:^7.3.1"
16731 bin:
16732 webpack-bundle-analyzer: lib/bin/analyzer.js
16733 checksum: 10c0/6a94c8f6aa03296fb2eb00d6ad3b27bd5c551590fd253772bc61debf3177414d42701014079d4f85c74ba1ca685ae9f0cb4063812b58c21f294d108e9908e5cd
16734 languageName: node
16735 linkType: hard
16736
16737"webpack-dev-middleware@npm:^5.3.4":
16738 version: 5.3.4
16739 resolution: "webpack-dev-middleware@npm:5.3.4"
16740 dependencies:
16741 colorette: "npm:^2.0.10"
16742 memfs: "npm:^3.4.3"
16743 mime-types: "npm:^2.1.31"
16744 range-parser: "npm:^1.2.1"
16745 schema-utils: "npm:^4.0.0"
16746 peerDependencies:
16747 webpack: ^4.0.0 || ^5.0.0
16748 checksum: 10c0/257df7d6bc5494d1d3cb66bba70fbdf5a6e0423e39b6420f7631aeb52435afbfbff8410a62146dcdf3d2f945c62e03193aae2ac1194a2f7d5a2523b9d194e9e1
16749 languageName: node
16750 linkType: hard
16751
16752"webpack-dev-server@npm:^4.15.1":
16753 version: 4.15.2
16754 resolution: "webpack-dev-server@npm:4.15.2"
16755 dependencies:
16756 "@types/bonjour": "npm:^3.5.9"
16757 "@types/connect-history-api-fallback": "npm:^1.3.5"
16758 "@types/express": "npm:^4.17.13"
16759 "@types/serve-index": "npm:^1.9.1"
16760 "@types/serve-static": "npm:^1.13.10"
16761 "@types/sockjs": "npm:^0.3.33"
16762 "@types/ws": "npm:^8.5.5"
16763 ansi-html-community: "npm:^0.0.8"
16764 bonjour-service: "npm:^1.0.11"
16765 chokidar: "npm:^3.5.3"
16766 colorette: "npm:^2.0.10"
16767 compression: "npm:^1.7.4"
16768 connect-history-api-fallback: "npm:^2.0.0"
16769 default-gateway: "npm:^6.0.3"
16770 express: "npm:^4.17.3"
16771 graceful-fs: "npm:^4.2.6"
16772 html-entities: "npm:^2.3.2"
16773 http-proxy-middleware: "npm:^2.0.3"
16774 ipaddr.js: "npm:^2.0.1"
16775 launch-editor: "npm:^2.6.0"
16776 open: "npm:^8.0.9"
16777 p-retry: "npm:^4.5.0"
16778 rimraf: "npm:^3.0.2"
16779 schema-utils: "npm:^4.0.0"
16780 selfsigned: "npm:^2.1.1"
16781 serve-index: "npm:^1.9.1"
16782 sockjs: "npm:^0.3.24"
16783 spdy: "npm:^4.0.2"
16784 webpack-dev-middleware: "npm:^5.3.4"
16785 ws: "npm:^8.13.0"
16786 peerDependencies:
16787 webpack: ^4.37.0 || ^5.0.0
16788 peerDependenciesMeta:
16789 webpack:
16790 optional: true
16791 webpack-cli:
16792 optional: true
16793 bin:
16794 webpack-dev-server: bin/webpack-dev-server.js
16795 checksum: 10c0/625bd5b79360afcf98782c8b1fd710b180bb0e96d96b989defff550c546890010ceea82ffbecb2a0a23f7f018bc72f2dee7b3070f7b448fb0110df6657fb2904
16796 languageName: node
16797 linkType: hard
16798
16799"webpack-merge@npm:^5.9.0":
16800 version: 5.10.0
16801 resolution: "webpack-merge@npm:5.10.0"
16802 dependencies:
16803 clone-deep: "npm:^4.0.1"
16804 flat: "npm:^5.0.2"
16805 wildcard: "npm:^2.0.0"
16806 checksum: 10c0/b607c84cabaf74689f965420051a55a08722d897bdd6c29cb0b2263b451c090f962d41ecf8c9bf56b0ab3de56e65476ace0a8ecda4f4a4663684243d90e0512b
16807 languageName: node
16808 linkType: hard
16809
16810"webpack-sources@npm:^3.2.3":
16811 version: 3.2.3
16812 resolution: "webpack-sources@npm:3.2.3"
16813 checksum: 10c0/2ef63d77c4fad39de4a6db17323d75eb92897b32674e97d76f0a1e87c003882fc038571266ad0ef581ac734cbe20952912aaa26155f1905e96ce251adbb1eb4e
16814 languageName: node
16815 linkType: hard
16816
16817"webpack@npm:^5.88.1, webpack@npm:^5.91.0":
16818 version: 5.91.0
16819 resolution: "webpack@npm:5.91.0"
16820 dependencies:
16821 "@types/eslint-scope": "npm:^3.7.3"
16822 "@types/estree": "npm:^1.0.5"
16823 "@webassemblyjs/ast": "npm:^1.12.1"
16824 "@webassemblyjs/wasm-edit": "npm:^1.12.1"
16825 "@webassemblyjs/wasm-parser": "npm:^1.12.1"
16826 acorn: "npm:^8.7.1"
16827 acorn-import-assertions: "npm:^1.9.0"
16828 browserslist: "npm:^4.21.10"
16829 chrome-trace-event: "npm:^1.0.2"
16830 enhanced-resolve: "npm:^5.16.0"
16831 es-module-lexer: "npm:^1.2.1"
16832 eslint-scope: "npm:5.1.1"
16833 events: "npm:^3.2.0"
16834 glob-to-regexp: "npm:^0.4.1"
16835 graceful-fs: "npm:^4.2.11"
16836 json-parse-even-better-errors: "npm:^2.3.1"
16837 loader-runner: "npm:^4.2.0"
16838 mime-types: "npm:^2.1.27"
16839 neo-async: "npm:^2.6.2"
16840 schema-utils: "npm:^3.2.0"
16841 tapable: "npm:^2.1.1"
16842 terser-webpack-plugin: "npm:^5.3.10"
16843 watchpack: "npm:^2.4.1"
16844 webpack-sources: "npm:^3.2.3"
16845 peerDependenciesMeta:
16846 webpack-cli:
16847 optional: true
16848 bin:
16849 webpack: bin/webpack.js
16850 checksum: 10c0/74a3e0ea1c9a492accf035317f31769ffeaaab415811524b9f17bc7bf7012c5b6e1a9860df5ca6903f3ae2618727b801eb47d9351a2595dfffb25941d368b88c
16851 languageName: node
16852 linkType: hard
16853
16854"webpackbar@npm:^5.0.2":
16855 version: 5.0.2
16856 resolution: "webpackbar@npm:5.0.2"
16857 dependencies:
16858 chalk: "npm:^4.1.0"
16859 consola: "npm:^2.15.3"
16860 pretty-time: "npm:^1.1.0"
16861 std-env: "npm:^3.0.1"
16862 peerDependencies:
16863 webpack: 3 || 4 || 5
16864 checksum: 10c0/336568a6ed1c1ad743c8d20a5cab5875a7ebe1e96181f49ae0a1a897f1a59d1661d837574a25d8ba9dfa4f2f705bd46ca0cd037ff60286ff70fb8d9db2b0c123
16865 languageName: node
16866 linkType: hard
16867
16868"websocket-driver@npm:>=0.5.1, websocket-driver@npm:^0.7.4":
16869 version: 0.7.4
16870 resolution: "websocket-driver@npm:0.7.4"
16871 dependencies:
16872 http-parser-js: "npm:>=0.5.1"
16873 safe-buffer: "npm:>=5.1.0"
16874 websocket-extensions: "npm:>=0.1.1"
16875 checksum: 10c0/5f09547912b27bdc57bac17b7b6527d8993aa4ac8a2d10588bb74aebaf785fdcf64fea034aae0c359b7adff2044dd66f3d03866e4685571f81b13e548f9021f1
16876 languageName: node
16877 linkType: hard
16878
16879"websocket-extensions@npm:>=0.1.1":
16880 version: 0.1.4
16881 resolution: "websocket-extensions@npm:0.1.4"
16882 checksum: 10c0/bbc8c233388a0eb8a40786ee2e30d35935cacbfe26ab188b3e020987e85d519c2009fe07cfc37b7f718b85afdba7e54654c9153e6697301f72561bfe429177e0
16883 languageName: node
16884 linkType: hard
16885
8754"whatwg-fetch@npm:^3.4.1": 16886"whatwg-fetch@npm:^3.4.1":
8755 version: 3.6.19 16887 version: 3.6.19
8756 resolution: "whatwg-fetch@npm:3.6.19" 16888 resolution: "whatwg-fetch@npm:3.6.19"
@@ -8837,6 +16969,17 @@ __metadata:
8837 languageName: node 16969 languageName: node
8838 linkType: hard 16970 linkType: hard
8839 16971
16972"which@npm:^1.3.1":
16973 version: 1.3.1
16974 resolution: "which@npm:1.3.1"
16975 dependencies:
16976 isexe: "npm:^2.0.0"
16977 bin:
16978 which: ./bin/which
16979 checksum: 10c0/e945a8b6bbf6821aaaef7f6e0c309d4b615ef35699576d5489b4261da9539f70393c6b2ce700ee4321c18f914ebe5644bc4631b15466ffbaad37d83151f6af59
16980 languageName: node
16981 linkType: hard
16982
8840"which@npm:^2.0.1, which@npm:^2.0.2": 16983"which@npm:^2.0.1, which@npm:^2.0.2":
8841 version: 2.0.2 16984 version: 2.0.2
8842 resolution: "which@npm:2.0.2" 16985 resolution: "which@npm:2.0.2"
@@ -8857,6 +17000,22 @@ __metadata:
8857 languageName: node 17000 languageName: node
8858 linkType: hard 17001 linkType: hard
8859 17002
17003"widest-line@npm:^4.0.1":
17004 version: 4.0.1
17005 resolution: "widest-line@npm:4.0.1"
17006 dependencies:
17007 string-width: "npm:^5.0.1"
17008 checksum: 10c0/7da9525ba45eaf3e4ed1a20f3dcb9b85bd9443962450694dae950f4bdd752839747bbc14713522b0b93080007de8e8af677a61a8c2114aa553ad52bde72d0f9c
17009 languageName: node
17010 linkType: hard
17011
17012"wildcard@npm:^2.0.0":
17013 version: 2.0.1
17014 resolution: "wildcard@npm:2.0.1"
17015 checksum: 10c0/08f70cd97dd9a20aea280847a1fe8148e17cae7d231640e41eb26d2388697cbe65b67fd9e68715251c39b080c5ae4f76d71a9a69fa101d897273efdfb1b58bf7
17016 languageName: node
17017 linkType: hard
17018
8860"workbox-background-sync@npm:7.0.0": 17019"workbox-background-sync@npm:7.0.0":
8861 version: 7.0.0 17020 version: 7.0.0
8862 resolution: "workbox-background-sync@npm:7.0.0" 17021 resolution: "workbox-background-sync@npm:7.0.0"
@@ -8937,6 +17096,13 @@ __metadata:
8937 languageName: node 17096 languageName: node
8938 linkType: hard 17097 linkType: hard
8939 17098
17099"workbox-core@npm:7.1.0":
17100 version: 7.1.0
17101 resolution: "workbox-core@npm:7.1.0"
17102 checksum: 10c0/fb0b6e23a52e085da00b7a74b1f1854f06c695eb2bd4c244aa335165f59156a4febb4f116b9893b9fb7e0e8bac092d32eecceb4d00f930a93f64737cb2be9531
17103 languageName: node
17104 linkType: hard
17105
8940"workbox-expiration@npm:7.0.0": 17106"workbox-expiration@npm:7.0.0":
8941 version: 7.0.0 17107 version: 7.0.0
8942 resolution: "workbox-expiration@npm:7.0.0" 17108 resolution: "workbox-expiration@npm:7.0.0"
@@ -9037,7 +17203,7 @@ __metadata:
9037 languageName: node 17203 languageName: node
9038 linkType: hard 17204 linkType: hard
9039 17205
9040"workbox-window@npm:7.0.0, workbox-window@npm:^7.0.0": 17206"workbox-window@npm:7.0.0":
9041 version: 7.0.0 17207 version: 7.0.0
9042 resolution: "workbox-window@npm:7.0.0" 17208 resolution: "workbox-window@npm:7.0.0"
9043 dependencies: 17209 dependencies:
@@ -9047,6 +17213,16 @@ __metadata:
9047 languageName: node 17213 languageName: node
9048 linkType: hard 17214 linkType: hard
9049 17215
17216"workbox-window@npm:^7.0.0, workbox-window@npm:^7.1.0":
17217 version: 7.1.0
17218 resolution: "workbox-window@npm:7.1.0"
17219 dependencies:
17220 "@types/trusted-types": "npm:^2.0.2"
17221 workbox-core: "npm:7.1.0"
17222 checksum: 10c0/c989a6e3a0488f049eead3892f8249387604fb04898aa79d0cf14cd7b684f0758f1edf1996745f4755bd30c31c449f628803e507d39b2ea91cc9c36f7d5e9c72
17223 languageName: node
17224 linkType: hard
17225
9050"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": 17226"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0":
9051 version: 7.0.0 17227 version: 7.0.0
9052 resolution: "wrap-ansi@npm:7.0.0" 17228 resolution: "wrap-ansi@npm:7.0.0"
@@ -9058,7 +17234,7 @@ __metadata:
9058 languageName: node 17234 languageName: node
9059 linkType: hard 17235 linkType: hard
9060 17236
9061"wrap-ansi@npm:^8.1.0": 17237"wrap-ansi@npm:^8.0.1, wrap-ansi@npm:^8.1.0":
9062 version: 8.1.0 17238 version: 8.1.0
9063 resolution: "wrap-ansi@npm:8.1.0" 17239 resolution: "wrap-ansi@npm:8.1.0"
9064 dependencies: 17240 dependencies:
@@ -9076,6 +17252,66 @@ __metadata:
9076 languageName: node 17252 languageName: node
9077 linkType: hard 17253 linkType: hard
9078 17254
17255"write-file-atomic@npm:^3.0.3":
17256 version: 3.0.3
17257 resolution: "write-file-atomic@npm:3.0.3"
17258 dependencies:
17259 imurmurhash: "npm:^0.1.4"
17260 is-typedarray: "npm:^1.0.0"
17261 signal-exit: "npm:^3.0.2"
17262 typedarray-to-buffer: "npm:^3.1.5"
17263 checksum: 10c0/7fb67affd811c7a1221bed0c905c26e28f0041e138fb19ccf02db57a0ef93ea69220959af3906b920f9b0411d1914474cdd90b93a96e5cd9e8368d9777caac0e
17264 languageName: node
17265 linkType: hard
17266
17267"ws@npm:^7.3.1":
17268 version: 7.5.9
17269 resolution: "ws@npm:7.5.9"
17270 peerDependencies:
17271 bufferutil: ^4.0.1
17272 utf-8-validate: ^5.0.2
17273 peerDependenciesMeta:
17274 bufferutil:
17275 optional: true
17276 utf-8-validate:
17277 optional: true
17278 checksum: 10c0/aec4ef4eb65821a7dde7b44790f8699cfafb7978c9b080f6d7a98a7f8fc0ce674c027073a78574c94786ba7112cc90fa2cc94fc224ceba4d4b1030cff9662494
17279 languageName: node
17280 linkType: hard
17281
17282"ws@npm:^8.13.0":
17283 version: 8.16.0
17284 resolution: "ws@npm:8.16.0"
17285 peerDependencies:
17286 bufferutil: ^4.0.1
17287 utf-8-validate: ">=5.0.2"
17288 peerDependenciesMeta:
17289 bufferutil:
17290 optional: true
17291 utf-8-validate:
17292 optional: true
17293 checksum: 10c0/a7783bb421c648b1e622b423409cb2a58ac5839521d2f689e84bc9dc41d59379c692dd405b15a997ea1d4c0c2e5314ad707332d0c558f15232d2bc07c0b4618a
17294 languageName: node
17295 linkType: hard
17296
17297"xdg-basedir@npm:^5.0.1, xdg-basedir@npm:^5.1.0":
17298 version: 5.1.0
17299 resolution: "xdg-basedir@npm:5.1.0"
17300 checksum: 10c0/c88efabc71ffd996ba9ad8923a8cc1c7c020a03e2c59f0ffa72e06be9e724ad2a0fccef488757bc6ed3d8849d753dd25082d1035d95cb179e79eae4d034d0b80
17301 languageName: node
17302 linkType: hard
17303
17304"xml-js@npm:^1.6.11":
17305 version: 1.6.11
17306 resolution: "xml-js@npm:1.6.11"
17307 dependencies:
17308 sax: "npm:^1.2.4"
17309 bin:
17310 xml-js: ./bin/cli.js
17311 checksum: 10c0/c83631057f10bf90ea785cee434a8a1a0030c7314fe737ad9bf568a281083b565b28b14c9e9ba82f11fc9dc582a3a907904956af60beb725be1c9ad4b030bc5a
17312 languageName: node
17313 linkType: hard
17314
9079"xstate-beta@npm:xstate@beta": 17315"xstate-beta@npm:xstate@beta":
9080 version: 5.0.0-beta.34 17316 version: 5.0.0-beta.34
9081 resolution: "xstate@npm:5.0.0-beta.34" 17317 resolution: "xstate@npm:5.0.0-beta.34"
@@ -9111,7 +17347,7 @@ __metadata:
9111 languageName: node 17347 languageName: node
9112 linkType: hard 17348 linkType: hard
9113 17349
9114"yaml@npm:^1.10.0": 17350"yaml@npm:^1.10.0, yaml@npm:^1.10.2, yaml@npm:^1.7.2":
9115 version: 1.10.2 17351 version: 1.10.2
9116 resolution: "yaml@npm:1.10.2" 17352 resolution: "yaml@npm:1.10.2"
9117 checksum: 10c0/5c28b9eb7adc46544f28d9a8d20c5b3cb1215a886609a2fd41f51628d8aaa5878ccd628b755dbcd29f6bb4921bd04ffbc6dcc370689bb96e594e2f9813d2605f 17353 checksum: 10c0/5c28b9eb7adc46544f28d9a8d20c5b3cb1215a886609a2fd41f51628d8aaa5878ccd628b755dbcd29f6bb4921bd04ffbc6dcc370689bb96e594e2f9813d2605f
@@ -9147,9 +17383,23 @@ __metadata:
9147 languageName: node 17383 languageName: node
9148 linkType: hard 17384 linkType: hard
9149 17385
9150"zod@npm:^3.22.4": 17386"yocto-queue@npm:^1.0.0":
9151 version: 3.22.4 17387 version: 1.0.0
9152 resolution: "zod@npm:3.22.4" 17388 resolution: "yocto-queue@npm:1.0.0"
9153 checksum: 10c0/7578ab283dac0eee66a0ad0fc4a7f28c43e6745aadb3a529f59a4b851aa10872b3890398b3160f257f4b6817b4ce643debdda4fb21a2c040adda7862cab0a587 17389 checksum: 10c0/856117aa15cf5103d2a2fb173f0ab4acb12b4b4d0ed3ab249fdbbf612e55d1cadfd27a6110940e24746fb0a78cf640b522cc8bca76f30a3b00b66e90cf82abe0
17390 languageName: node
17391 linkType: hard
17392
17393"zod@npm:^3.23.4":
17394 version: 3.23.4
17395 resolution: "zod@npm:3.23.4"
17396 checksum: 10c0/7fb99f05bd5b86dcde06e202285a5d102b2e26d46f5119403a17618d0048e488e074cdcdf3fbba2bdcb77ff8141ddd85112b6d86d7a2fbefc9ffc983997b970e
17397 languageName: node
17398 linkType: hard
17399
17400"zwitch@npm:^2.0.0":
17401 version: 2.0.4
17402 resolution: "zwitch@npm:2.0.4"
17403 checksum: 10c0/3c7830cdd3378667e058ffdb4cf2bb78ac5711214e2725900873accb23f3dfe5f9e7e5a06dcdc5f29605da976fc45c26d9a13ca334d6eea2245a15e77b8fc06e
9154 languageName: node 17404 languageName: node
9155 linkType: hard 17405 linkType: hard
diff --git a/yarnw b/yarnw
new file mode 100755
index 00000000..16e0ea9d
--- /dev/null
+++ b/yarnw
@@ -0,0 +1,10 @@
1#!/bin/sh
2# SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
3#
4# SPDX-License-Identifier: EPL-2.0
5
6set -eu
7script_dir=$(cd -- "$(dirname -- "$0")" > /dev/null && pwd)
8node_bin="${script_dir}/.node/bin"
9export PATH="${node_bin}:${PATH}"
10exec "${node_bin}/yarn" "$@"
diff --git a/yarnw.bat b/yarnw.bat
new file mode 100644
index 00000000..22b64b16
--- /dev/null
+++ b/yarnw.bat
@@ -0,0 +1,12 @@
1@rem SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
2@rem
3@rem SPDX-License-Identifier: EPL-2.0
4
5@echo off
6setlocal
7set script_dir=%~dp0
8set node_bin=%script_dir%.node
9set Path=%node_bin%;%Path%
10%node_bin%\yarn.CMD %*
11set exit_code=%ERRORLEVEL%
12endlocal & if %exit_code% neq 0 exit /b %exit_code%
diff --git a/z3/gradle/libs.versions.toml b/z3/gradle/libs.versions.toml
index 7c6c5ad7..8a9b1aed 100644
--- a/z3/gradle/libs.versions.toml
+++ b/z3/gradle/libs.versions.toml
@@ -3,7 +3,7 @@
3# SPDX-License-Identifier: Apache-2.0 3# SPDX-License-Identifier: Apache-2.0
4 4
5[versions] 5[versions]
6junit = "5.10.2" 6junit = "5.11.0-M1"
7 7
8[libraries] 8[libraries]
9asm = { group = "org.ow2.asm", name = "asm", version = "9.6" } 9asm = { group = "org.ow2.asm", name = "asm", version = "9.6" }