First documentation rework

This commit is contained in:
JeremyStar™ 2024-11-28 22:17:46 +01:00
parent 8630bc0ba6
commit f1e1ad4755
Signed by: JeremyStarTM
GPG key ID: E366BAEF67E4704D
17 changed files with 478 additions and 184 deletions

View file

@ -1,29 +1,20 @@
# sos!docs
Here you can find the StarOpenSource documentation. [Click here to visit the built documentation.](https://docs.staropensource.de)
The StarOpenSource Project uses [Docusaurus](https://docusaurus.io) for generating it's project documentation.
# Commands
We use [make](https://www.gnu.org/software/make/).
## Installing dependencies
```plain
$ make install-deps
```bash
# Installs all required dependencies
make install-deps
# Starts a development server with support for hot reloading
make test
# Build the documentation to 'out/'
make build
# Remove 'out/' directory as well as some of Docusaurus' files
make clean
# If you want to remove node_modules and other pnpm stuff execute this
make clean-extra
```
## Development web server
This will start [a development server](http://localhost:3000) that supports hot reloading.
```plain
$ make test
```
## Building the documentation
This will output the built documentation to `out/`. Simply point a web server to it and you're done.
```plain
$ make build
```
## Cleaning the directory
This will remove the `out/` directory containing the built website aswell as Docusaurus files.
```plain
$ make clean
```
### More cleaning
This will remove the `node_modules/` and `pnpm-lock.yaml` directory aswell.
```plain
$ make clean-extra
```

View file

@ -1,12 +0,0 @@
---
sidebar_position: 1
---
# About
## ... StarOpenSource
**The StarOpenSource Project** aims at developing **ethical** and **open source** applications and tools *without* **ads, tracking or analytics**.
<link href="https://sky.staropensource.de/@staropensource"/>
<link href="https://sky.staropensource.de/@soscore"/>
## ... this documentation
The **StarOpenSource Documentation** contains specifications used in StarOpenSource projects, information about the project and much more.

View file

@ -1,20 +1,38 @@
---
sidebar_position: 2
sidebar_position: 1
description: "Contains a list of all StarOpenSource projects."
---
# Projects
This page lists all projects the StarOpenSource Project or the community are developing or have developed.
## Projects
Projects are sorted in three different categories: *Official*, *Community* and *Infrastructure-related* projects. The latter one being responsible for StarOpenSource's infrastructure.
Additionally, projects are assigned one of three different statuses: *Maintained*, *Inactive* (unmaintained or maintenance mode projects, may still recieve some updates) and *Archived* (deprecated, old or unused projects).
## Official projects
### Maintained
- The CORE Framework ([repository](https://git.staropensource.de/StarOpenSource/CORE), [distribution repository](https://git.staropensource.de/StarOpenSource/CORE-distrib), [documentation](https://core.staropensource.de))
- StarOpenSource Engine ([repository](https://git.staropensource.de/StarOpenSource/Engine), [documentation](https://engine.staropensource.de), [API documentation](https://jd.engine.staropensource.de))
### Inactive
- CORE Framework ([repository](https://git.staropensource.de/StarOpenSource/CORE), [distribution repository](https://git.staropensource.de/StarOpenSource/CORE-distrib-assetlibrary), [documentation](https://core.staropensource.de)): Plans to be superseeded by the sos!engine and our migration to Java
- StarOpenSource UI ([repository](https://git.staropensource.de/StarOpenSource/SUI), [distribution repository](https://git.staropensource.de/StarOpenSource/SUI-distrib), [documentation](https://sui.staropensource.de)): Plans to be superseeded by the sos!engine and our migration to Java
- Bessere Tests ([repository](https://git.staropensource.de/StarOpenSource/BessereTests)): Plans to be superseeded by the sos!engine and our migration to Java
- Androot ([repository](https://git.staropensource.de/StarOpenSource/androot))
### Archived
- CORE Manager ([repository](https://git.staropensource.de/StarOpenSource-Archive/core-manager))
- sostools ([repository](https://git.staropensource.de/StarOpenSource-Archive/sostools))
- Jessist ([repository](https://git.staropensource.de/StarOpenSource-Archive/jessist))
- freax ([repository](https://git.staropensource.de))
- server-kernel ([repository](https://git.staropensource.de/StarOpenSource-Archive/server-kernel)): It was decided to use upstream instead
- CORE Manager ([repository](https://git.staropensource.de/StarOpenSource-Archive/core-manager)): Buggy and flawed
- sostools ([repository](https://git.staropensource.de/StarOpenSource-Archive/sostools)): Just no
- Jessist ([repository](https://git.staropensource.de/StarOpenSource-Archive/jessist)): Game prototype developed for the GamesTalente competition. Includes bad, uncommented code
- FREAX ([repository](https://git.staropensource.de)): Lacking interest and motivation in the project
## Community projects
*none*
## Infrastructure-related projects
### Maintained
- soscmd ([repository](https://git.staropensource.de/StarOpenSource-Infrastructure/soscmd))
- actions-docker ([repository](https://git.staropensource.de/StarOpenSource/actions-docker))
- soscmd ([repository](https://git.staropensource.de/StarOpenSource-Infrastructure/soscmd))
- sos!web ([repository](https://git.staropensource.de/StarOpenSource-Infrastructure/website), [view](https://staropensource.de))
- sos!docs ([repository](https://git.staropensource.de/StarOpenSource-Infrastructure/website-docs), [view](https://docs.staropensource.de))
- sos!/fs/ ([repository](https://git.staropensource.de/StarOpenSource-Infrastructure/website-filesystem), [view](https://fs.staropensource.de))
- globalsites ([repository](https://git.staropensource.de/StarOpenSource-Infrastructure/website-globalsites))
- redirector ([repository](https://git.staropensource.de/StarOpenSource-Infrastructure/website-redirector), [view](https://z.staropensource.de))

View file

@ -3,6 +3,6 @@
"position": 3,
"link": {
"type": "generated-index",
"description": "Contains various StarOpenSource specifications"
"description": "Contains specifications for various things."
}
}

View file

@ -0,0 +1,13 @@
---
sidebar_position: 0
title: "Explanation"
description: "Introduces StarOpenSource's specifications"
---
# Explanation
StarOpenSource maintains it's own set of specifications which aim at setting development standards whilst being useful, minimal and distract-free.
These are used by StarOpenSource software extensively and embraced by the project.
## Specifications
- **[Versioning (SOSVS)](/specifications/versioning/about)**: Efficient versioning system for different pieces of work
- **[Logging (SOSLS)](/specifications/logging/about)**: Useful, pretty and language-independent logging system

View file

@ -1,8 +1,8 @@
{
"label": "Logging Specification",
"position": 2,
"position": 1,
"link": {
"type": "generated-index",
"description": "The StarOpenSource Logging Specification"
"description": "Useful, pretty and language-independent logging system"
}
}

View file

@ -4,7 +4,7 @@ description: "Description of the logging specification"
---
# About
The **StarOpenSource Logging Specification** *(**SOSLS**)* is used throughout many StarOpenSource projects and provides a template for custom logger implementations.
The **StarOpenSource Logging Specification** (or **SOSLS** for short) specifies how an efficient logging infrastructure should look like.
## Versions
<table>
@ -16,6 +16,11 @@ The **StarOpenSource Logging Specification** *(**SOSLS**)* is used throughout ma
<tr>
<th>1</th>
<th>02.03.2024</th>
<th><a href="/specifications/logging/versions/1/">Specification</a></th>
<th><a href="/specifications/logging/versions/1/">Spec</a></th>
</tr>
</table>
<tr>
<th>2</th>
<th>24.08.2024</th>
<th><a href="/specifications/logging/versions/2/">Spec</a></th>
</tr>
</table>

View file

@ -0,0 +1,181 @@
---
sidebar_position: 2
title: "2"
description: "Logging Specification v2"
---
# Version 2
This document aims to outline a unified specification, inspired by various logging implementations.
## Cross-language considerations
### Casing
This specification assumes that methods are written in CamelCase and enums in CONSTANT_CASE. If the programming language your implementation uses has different conventions, use them instead.
### Enums
This specification assumes that the programming language your implementation uses supports enums. If it doesn't, use integer constants instead. If that isn't possible, use strings.
## What a good logger needs
A good logger implementation needs the following things:
- levels, to distinguish message importance
- a message's origin, to know from where a message came
- the actual log message
## Levels
An implementation must provide at least five log levels and may implement an optional one to be able to determine a message's priority.
<table>
<tr>
<th>Name</th>
<th>Method name</th>
<th>Printed name</th>
<th>Enum name</th>
<th>Optional</th>
</tr>
<tr>
<th>Diagnostic</th>
<th><code>diag</code></th>
<th><code>DIAG</code></th>
<th><code>DIAGNOSTIC</code></th>
<th>No</th>
</tr>
<tr>
<th>Verbose</th>
<th><code>verb</code></th>
<th><code>VERB</code></th>
<th><code>VERBOSE</code></th>
<th>No</th>
</tr>
<tr>
<th>Silent Warning</th>
<th><code>sarn</code></th>
<th><code>SARN</code></th>
<th><code>SILENT_WARNING</code></th>
<th>No</th>
</tr>
<tr>
<th>Informational</th>
<th><code>info</code></th>
<th><code>INFO</code></th>
<th><code>INFORMATIONAL</code></th>
<th>No</th>
</tr>
<tr>
<th>Warning</th>
<th><code>warn</code></th>
<th><code>WARN</code></th>
<th><code>WARNING</code></th>
<th>No</th>
</tr>
<tr>
<th>Error</th>
<th><code>error</code></th>
<th><code>ERR!</code></th>
<th><code>ERROR</code></th>
<th>No</th>
</tr>
<tr>
<th>Crash</th>
<th><code>crash</code></th>
<th><code>CRSH</code></th>
<th><code>CRASH</code></th>
<th>If the language and/or platform does not provide a good native crash handler</th>
</tr>
</table>
## Format
A format is required to represent a log message as well as relevant information in a human way.
The logging format shall be minimal but extensible with so-called "format features",
which may be chained together. A few optional and required features are listed in this
specification. Implementation-specific features may be added, depending on the use case,
environment, language and other variables.
### Default format
`[<printed level name> <origin>] <message>`
### Feature `formatting`
The content stays the same but the message is colorized.
This feature is optional.
### Feature `runtime`
Prepends the time the implementation or application is running in milliseconds. \
Example by extending the default: `[<run time in milliseconds>ms] [<printed level name> <origin>] <message>`
This feature is required.
### Features `date` & `time`
Prepends the date and/or the time to the output. \
Example by extending the default: `[<date> [time]] [<printed level name> <origin>] <message>`
This feature is required unless the language of the implementation does not provide good support for dates and time.
### Features `methodName` & `lineNumber`
Appends the method name and/or line number to the origin.
Example by extending the default: `[<printed level name> <origin>#<method name>~<line number>] <message>`
This feature is required unless the language of the implementation does not provide insufficient or any automatic (ie. without developer intervention on log call) support.
### All features
Below is an example of how the format would look like if all features mentioned in this specification were enabled.
#### With placeholders
`[<runtime>ms] [<date> <time>] [<printed level name> <origin>#<method name>~<line number>] <message>`
#### Filled
`[505ms] [03.10.1990 23:23:23] [INFO Test.example#sayHi~42] Hello World!`
## Configuration
A logger implementing this specification should be able to
be configured by the running application at runtime.
This specification lists a few required and optional features.
Implementations may provide their own.
### Minimum level
Specifies the minimum allowed log level.
Lower levels are forbidden and won't be logged.
This option is required and must either be an enum, integer or a string (fallback to the next if one is unavailable).
### Features
Specifies a list of enabled features.
This option is required and must be a comma-separated string or list of strings.
### Multithreading
Specifies that the implementation is multithreaded by accepting
log calls, queueing and then processing them on a separate thread.
This option is optional but recommended.
### Thread Polling Delay
Specifies the time the logging thread shall
wait before processing the queue again.
This value should be subtracted by the
time if took to process all queued messages
after all messages have been processed.
This option is required if multithreading
is built into the implementation.
## Placeholders
Implementations may allow placeholders to be placed
into a log message and replaced during processing.
These must be wrapped inside `%`-signs and must
allow for optional configuration. Placeholders must
allow placeholders to be added and removed dynamically.
## Methods
Implementations are required to provide
methods for all levels, with each being
named after the level's method name.
Each method must require at least the message
to be logged. If required by the language of
the implementation, information about the
message origin may be required as well.
This however should be avoided to not annoy
developers and create maintenance burdens.

View file

@ -3,6 +3,6 @@
"position": 1,
"link": {
"type": "generated-index",
"description": "Contains all SOSLS versions"
"description": "Versions of this specification"
}
}

View file

@ -1,8 +1,8 @@
{
"label": "Versioning Specification",
"position": 1,
"label": "Versioning",
"position": 0,
"link": {
"type": "generated-index",
"description": "The StarOpenSource Versioning Specification"
"description": "Efficient versioning system for different pieces of work"
}
}

View file

@ -1,10 +1,10 @@
---
sidebar_position: 1
sidebar_position: 0
description: "Description of the versioning specification"
---
# About
The **StarOpenSource Versioning System** *(**SOSVS**)* is used throughout all StarOpenSource projects and is intended as a clear versioning system, compatible with the semantic versioning system.
The **StarOpenSource Versioning Specification** (or **SOSVS** for short) specifies a versioning system compatible with the [semantic versioning system](https://semver.org).
## Versions
<table>
@ -16,6 +16,11 @@ The **StarOpenSource Versioning System** *(**SOSVS**)* is used throughout all St
<tr>
<th>1</th>
<th>02.03.2024</th>
<th><a href="/specifications/versioning/versions/1/">Specification</a></th>
<th><a href="/specifications/versioning/versions/1/">Spec</a></th>
</tr>
</table>
<tr>
<th>2</th>
<th>24.08.2024</th>
<th><a href="/specifications/versioning/versions/2/">Spec</a></th>
</tr>
</table>

View file

@ -1,7 +1,7 @@
---
sidebar_position: 2
title: "1"
description: "Defines StarOpenSource's versioning system"
description: "Versioning Specification v1"
---
# Version 1
@ -55,7 +55,7 @@ This table compares features between this specification, semantic versioning and
<tr>
<th>Compatible w/ SemVer</th>
<th>Yes</th>
<th><a href="https://piped.staropensource.de/watch?v=dQw4w9WgXcQ"></a></th> <!-- Let's rickroll those idiots -->
<th><a href="https://youtube.com/watch?v=dQw4w9WgXcQ">&nbsp;&nbsp;&nbsp;</a></th> <!-- Let's rickroll those idiots -->
<th>No</th>
</tr>
<tr>
@ -88,4 +88,4 @@ This table compares features between this specification, semantic versioning and
<th>Yes</th>
<th>Yes</th>
</tr>
</table>
</table>

View file

@ -0,0 +1,85 @@
---
sidebar_position: 2
title: "2"
description: "Versioning Specification v2"
---
# Version 2
## Vectors
Vectors are integers or strings, which can only contain one piece of information. This specification specifies five distinct vectors.
### Release
The release vector is an integer and starts at `1`.
It keeps track of major changes within an application, document or other work.
Major changes require a version vector bump. For example, breaking changes require a version vector bump.
A release vector bump is required, when:
- a breaking change is introduced
- the public, exported API changes (for applications)
The release vector may stay at `1` during the initial development, but should be increased once the work is usable and in a good state. [Works and especially applications should not stay on one version indefinitely](https://github.com/gohugoio/hugo/releases).
### Type
The type vector is a string and must have one of four values: `alpha`, `beta`, `releasecandidate` or `release`.
This vector identifies how stable the released version is.
- **alpha** identifies the work as experimental. The work may have many unresolved issues and may change significantly during further development. Usage is not recommended.
- **beta** identifies the work as unstable. The work may have a few unresolved issues and may change from time to time during further development. Usage is not recommended.
- **releasecandidate** identifies the work as potentially stable. The work may have a few smaller issues but it's shape is final. No new features may be added anymore unless required. Usage only recommended for testers and earlybirds.
- **release** identifies the work as tested and stable. The work is finished and can be used without any problems.
### Typerelease
The typerelease vector is an integer and starts at `0`.
It keeps track of how many times a specific version type has been released.
It resets back to `0` when the release or type vectors change.
### Fork
The fork vector is a string, can have any value (except for dashes and plus signs) and can be unset.
It identifies a fork of some other work.
Example: *Plate* gets forked and it's fork is named *Bowl*. *Bowl*'s fork vector will then be set to `bowl` (which was previously unset) to identify that *Bowl* is a fork of *Plate* with a few modifications.
### Companion
The companion vector is a string, can have any value and can be unset.
This vector identifies the version of another work that the work is based on.
Example: Modification *Improved Metal* (which uses this versioning specification) modifies *Spoon* (which uses [SemVer](https://semver.org)) version *4.1.2*. The companion vector of *Improved Metal* will then be set to `4.1.2`.
## Format
A format is required for vectors to be displayed in.
The release, type and typerelease vectors are required, the companion and fork vectors aren't.
To leave one of the optional vectors out, simply remove the vector in question and it's separator character in front of it.
### Minimal vectors
```plain
v23-releasecandidate5
^ ^ ^
| | |
| | ------------ Typerelease vector
| --------------------------- Type vector
----------------------------- Release vector
```
### All vectors
```plain
v23-releasecandidate5-somefork+2.5.1
^ ^ ^ ^ ^
| | | | |
| | | | --- Companion vector
| | | ----------- Fork vector
| | ------------ Typerelease vector
| --------------------------- Type vector
----------------------------- Release vector
```
### SemVer Compatibility
One of this specifications goals is to be compatible with the [semantic versioning system](https://semver.org) 2.0.0. To achieve this, simply use this format instead:
```plain
23.2.5-somefork+2.5.1
^ ^ ^ ^ ^
| | | | |
| | | | ----- Companion vector (build)
| | | ------------- Fork vector (pre-release)
| | -------------- Typerelease vector (patch)
| --------------- Type vector (minor); alpha is 0, beta is 1, releasecandidate is 2 and release is 3
----------------- Release vector (major)
```

View file

@ -3,6 +3,6 @@
"position": 1,
"link": {
"type": "generated-index",
"description": "Contains all SOSVS versions"
"description": "Versions of this specification"
}
}

6
docs/welcome.md Normal file
View file

@ -0,0 +1,6 @@
---
sidebar_position: 0
---
# Welcome
... to the StarOpenSource documentation! Here you can find policies regarding the project, specifications, our Terms of Service and more.

View file

@ -3,126 +3,128 @@ import type {Config} from "@docusaurus/types";
import type * as Preset from "@docusaurus/preset-classic";
const config: Config = {
title: "sos!docs",
url: "https://docs.staropensource.de",
baseUrl: "/",
favicon: "dist/core.png",
trailingSlash: true,
i18n: {
defaultLocale: "en",
locales: ["en"],
},
noIndex: false,
onBrokenLinks: "throw",
onBrokenAnchors: "throw",
onBrokenMarkdownLinks: "throw",
onDuplicateRoutes: "warn",
/*
onBrokenLinks: "ignore",
onBrokenAnchors: "ignore",
onBrokenMarkdownLinks: "ignore",
onDuplicateRoutes: "ignore",
*/
tagline: "Documenting StarOpenSource",
themeConfig: {
docs: {
sidebar: {
hideable: false,
autoCollapseCategories: true,
}
title: "sos!docs",
url: "https://docs.staropensource.de",
baseUrl: "/",
favicon: "https://fs.staropensource.de/imgs/StarOpenSource_Transparent.png",
trailingSlash: true,
i18n: {
defaultLocale: "en",
locales: [ "en" ],
},
navbar: {
title: "sos!docs",
logo: {
alt: "sos!docs",
src: "https://fs.staropensource.de/imgs/StarOpenSource_Transparent.png",
href: '/about',
},
items: [
{
type: "docSidebar",
sidebarId: "sidebar",
position: "left",
label: "Documentation",
},
{
href: "https://git.staropensource.de/StarOpenSource/website-docs",
label: "Source code",
position: "right",
},
],
},
footer: {
style: "dark",
copyright: `Copyright (c) ${new Date().getFullYear()} The StarOpenSource Project & Contributors<br/>Licensed under the CC BY-NC-SA license, version 4.0.`,
},
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
},
} satisfies Preset.ThemeConfig,
presets: [
[
"classic",
{
debug: false,
noIndex: false,
onBrokenLinks: "throw",
onBrokenAnchors: "throw",
onBrokenMarkdownLinks: "throw",
onDuplicateRoutes: "warn",
/*
onBrokenLinks: "ignore",
onBrokenAnchors: "ignore",
onBrokenMarkdownLinks: "ignore",
onDuplicateRoutes: "ignore",
*/
tagline: "A modular, extensible and easy to use Java game and application engine.",
themeConfig: {
docs: {
path:
"docs",
editUrl: "https://git.staropensource.de/StarOpenSource/website-docs/_edit/develop/",
editLocalizedFiles: false,
editCurrentVersion: true,
routeBasePath: "",
tagsBasePath: 'tags',
sidebarPath: "./sidebars.ts",
sidebarCollapsible: false,
sidebarCollapsed: false,
showLastUpdateAuthor: true,
showLastUpdateTime: true,
breadcrumbs: true,
includeCurrentVersion: true,
sidebar: {
hideable: true,
autoCollapseCategories: true,
},
},
sitemap: {
changefreq: "monthly",
priority: 0.5,
filename: "sitemap.xml"
navbar: {
title: "sos!docs",
logo: {
alt: "StarOpenSource Logo",
src: "https://fs.staropensource.de/imgs/StarOpenSource_Transparent.png",
href: '/welcome',
},
items: [
{
position: "left",
type: "docSidebar",
sidebarId: "sidebar",
label: "Documentation",
},
{
position: "left",
type: "doc",
docId: "specifications/index",
label: "Specifications",
},
{
position: "right",
href: "https://git.staropensource.de/StarOpenSource-Infrastructure/website-docs",
label: "Source code",
},
],
},
theme: {
customCss: "./src/css/custom.css",
footer: {
style: "dark",
copyright: `Copyright (c) ${new Date().getFullYear()} The StarOpenSource Project & Contributors<br/>Licensed under the GNU Affero General Public License version 3<br/>Documentation generated with <a href="https://docusaurus.io">Docusaurus</a>`,
},
} satisfies Preset.Options,
],
],
plugins: [
[
"@docusaurus/plugin-client-redirects",
{
fromExtensions: ["html", "htm", "php"],
redirects: [
{
from: ["/", "/index"],
to: "/about",
},
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
},
} satisfies Preset.ThemeConfig,
presets: [
[
"classic", {
debug: false,
docs: {
path: "docs",
editUrl: "https://git.staropensource.de/StarOpenSource-Infrastructure/website-docs/_edit/develop/",
editLocalizedFiles: false,
editCurrentVersion: true,
routeBasePath: "",
tagsBasePath: 'tags',
sidebarPath: "./sidebars.ts",
sidebarCollapsible: true,
sidebarCollapsed: false,
showLastUpdateAuthor: true,
showLastUpdateTime: true,
breadcrumbs: true,
includeCurrentVersion: true,
},
sitemap: {
changefreq: "monthly",
priority: 0.5,
filename: "sitemap.xml",
},
theme: {
customCss: "./src/css/custom.css",
},
} satisfies Preset.Options,
],
}
],
],
markdown: {
format: "detect",
mermaid: false,
},
staticDirectories: ["static"],
titleDelimiter: "»",
baseUrlIssueBanner: true,
plugins: [
[
"@docusaurus/plugin-client-redirects",
{
fromExtensions: ["html", "htm", "php"],
redirects: [
{
from: ["/", "/index"],
to: "/welcome",
},
],
},
],
],
markdown: {
format: "detect",
mermaid: false,
},
staticDirectories: ["static"],
titleDelimiter: "»",
baseUrlIssueBanner: true,
};
export default config;

View file

@ -15,11 +15,11 @@
"typecheck": "tsc"
},
"dependencies": {
"@docusaurus/core": "3.4.0",
"@docusaurus/plugin-client-redirects": "^3.4.0",
"@docusaurus/plugin-content-docs": "^3.4.0",
"@docusaurus/plugin-sitemap": "^3.4.0",
"@docusaurus/preset-classic": "3.4.0",
"@docusaurus/core": "3.6.3",
"@docusaurus/plugin-client-redirects": "^3.6.3",
"@docusaurus/plugin-content-docs": "^3.6.3",
"@docusaurus/plugin-sitemap": "^3.6.3",
"@docusaurus/preset-classic": "3.6.3",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0",
"prism-react-renderer": "^2.3.0",
@ -27,9 +27,9 @@
"react-dom": "^18.0.0"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "3.4.0",
"@docusaurus/tsconfig": "3.4.0",
"@docusaurus/types": "3.4.0",
"@docusaurus/module-type-aliases": "3.6.3",
"@docusaurus/tsconfig": "3.6.3",
"@docusaurus/types": "3.6.3",
"@types/node": "^20.11.0",
"typescript": "~5.2.2"
},