From fd3458125ad9ffaaec2091bc69cce7c0b243d295 Mon Sep 17 00:00:00 2001 From: Federico Tomassetti Date: Tue, 12 Aug 2025 11:30:37 +0200 Subject: [PATCH 01/14] initial migration to Docusaurus --- README.md | 72 +- Writerside/c.list | 6 - Writerside/cfg/buildprofiles.xml | 13 - Writerside/images/Star.svg | 8 - Writerside/strumenta.tree | 42 - Writerside/topics/ASTRepresentation.md | 647 - Writerside/topics/ASTTraversalAndQuerying.md | 52 - Writerside/topics/CommonElements.md | 13 - Writerside/topics/CrossPlatformParsers.md | 11 - Writerside/topics/DocumentationGeneration.md | 3 - Writerside/topics/DualCodeModelAPIs.md | 18 - Writerside/topics/EMFInteroperability.md | 20 - Writerside/topics/EditorSupport.md | 3 - Writerside/topics/Features.md | 3 - Writerside/topics/Interoperability.md | 3 - Writerside/topics/Methods.md | 3 - Writerside/topics/Naming.md | 10 - Writerside/topics/OriginAndDestination.md | 22 - Writerside/topics/ParseTreeToASTMapping.md | 37 - Writerside/topics/Position.md | 8 - Writerside/topics/SemanticEnrichment.md | 21 - Writerside/topics/Serialization.md | 8 - Writerside/topics/SymbolResolution.md | 65 - Writerside/topics/Testing.md | 24 - Writerside/topics/TransformationFramework.md | 93 - Writerside/topics/TypeChecking.md | 3 - Writerside/topics/Use-Cases.md | 3 - Writerside/topics/Validation.md | 10 - .../topics/usecases/building-codegenerator.md | 12 - .../topics/usecases/building-transpiler.md | 19 - Writerside/v.list | 5 - Writerside/writerside.cfg | 8 - docs/.gitignore | 20 + docs/README.md | 67 + docs/docs/ast-representation.md | 118 + docs/docs/ast-traversal-and-querying.md | 55 + docs/docs/building-codegenerator.md | 47 + .../usecases => docs/docs}/building-parser.md | 15 +- docs/docs/building-transpiler.md | 40 + .../docs/chisel-method.md | 11 +- .../docs/code-generation.md | 17 +- docs/docs/common-elements.md | 53 + docs/docs/cross-platform-parsers.md | 54 + docs/docs/documentation-generation.md | 53 + docs/docs/dual-code-model-apis.md | 68 + docs/docs/editor-support.md | 51 + docs/docs/emf-interoperability.md | 37 + docs/docs/features.md | 32 + docs/docs/interoperability.md | 49 + .../StarlasuOverview.md => docs/docs/intro.md | 20 +- docs/docs/methods.md | 22 + docs/docs/naming.md | 53 + docs/docs/origin-and-destination.md | 53 + docs/docs/parse-tree-to-ast-mapping.md | 66 + docs/docs/position.md | 29 + docs/docs/semantic-enrichment.md | 51 + docs/docs/serialization.md | 33 + docs/docs/symbol-resolution.md | 55 + docs/docs/testing.md | 59 + docs/docs/transformation-framework.md | 50 + docs/docs/tutorial-basics/_category_.json | 8 + docs/docs/tutorial-basics/congratulations.md | 23 + .../tutorial-basics/create-a-blog-post.md | 34 + .../docs/tutorial-basics/create-a-document.md | 57 + docs/docs/tutorial-basics/create-a-page.md | 43 + docs/docs/tutorial-basics/deploy-your-site.md | 31 + .../tutorial-basics/markdown-features.mdx | 152 + docs/docs/tutorial-extras/_category_.json | 7 + .../img/docsVersionDropdown.png | Bin 0 -> 25427 bytes .../tutorial-extras/img/localeDropdown.png | Bin 0 -> 27841 bytes .../tutorial-extras/manage-docs-versions.md | 55 + .../tutorial-extras/translate-your-site.md | 88 + docs/docs/type-checking.md | 59 + docs/docs/use-cases.md | 38 + docs/docs/validation.md | 51 + docs/docusaurus.config.ts | 132 + docs/package-lock.json | 16254 ++++++++++++++++ docs/package.json | 47 + docs/sidebars.ts | 89 + .../src/components/HomepageFeatures/index.tsx | 67 + .../HomepageFeatures/styles.module.css | 11 + docs/src/css/custom.css | 30 + docs/src/pages/index.module.css | 18 + docs/src/pages/index.tsx | 41 + docs/static/.nojekyll | 0 docs/static/img/Star.svg | 3 + .../static/img}/StarlasuOverview.png | Bin .../static/img}/chiselMethod.png | Bin docs/static/img/docusaurus-social-card.jpg | Bin 0 -> 55746 bytes docs/static/img/docusaurus.png | Bin 0 -> 5142 bytes docs/static/img/favicon.ico | Bin 0 -> 3626 bytes docs/static/img/logo.svg | 1 + .../static/img/undraw_docusaurus_mountain.svg | 171 + docs/static/img/undraw_docusaurus_react.svg | 170 + docs/static/img/undraw_docusaurus_tree.svg | 40 + docs/tsconfig.json | 25 + 96 files changed, 19069 insertions(+), 1219 deletions(-) delete mode 100644 Writerside/c.list delete mode 100644 Writerside/cfg/buildprofiles.xml delete mode 100644 Writerside/images/Star.svg delete mode 100644 Writerside/strumenta.tree delete mode 100644 Writerside/topics/ASTRepresentation.md delete mode 100644 Writerside/topics/ASTTraversalAndQuerying.md delete mode 100644 Writerside/topics/CommonElements.md delete mode 100644 Writerside/topics/CrossPlatformParsers.md delete mode 100644 Writerside/topics/DocumentationGeneration.md delete mode 100644 Writerside/topics/DualCodeModelAPIs.md delete mode 100644 Writerside/topics/EMFInteroperability.md delete mode 100644 Writerside/topics/EditorSupport.md delete mode 100644 Writerside/topics/Features.md delete mode 100644 Writerside/topics/Interoperability.md delete mode 100644 Writerside/topics/Methods.md delete mode 100644 Writerside/topics/Naming.md delete mode 100644 Writerside/topics/OriginAndDestination.md delete mode 100644 Writerside/topics/ParseTreeToASTMapping.md delete mode 100644 Writerside/topics/Position.md delete mode 100644 Writerside/topics/SemanticEnrichment.md delete mode 100644 Writerside/topics/Serialization.md delete mode 100644 Writerside/topics/SymbolResolution.md delete mode 100644 Writerside/topics/Testing.md delete mode 100644 Writerside/topics/TransformationFramework.md delete mode 100644 Writerside/topics/TypeChecking.md delete mode 100644 Writerside/topics/Use-Cases.md delete mode 100644 Writerside/topics/Validation.md delete mode 100644 Writerside/topics/usecases/building-codegenerator.md delete mode 100644 Writerside/topics/usecases/building-transpiler.md delete mode 100644 Writerside/v.list delete mode 100644 Writerside/writerside.cfg create mode 100644 docs/.gitignore create mode 100644 docs/README.md create mode 100644 docs/docs/ast-representation.md create mode 100644 docs/docs/ast-traversal-and-querying.md create mode 100644 docs/docs/building-codegenerator.md rename {Writerside/topics/usecases => docs/docs}/building-parser.md (83%) create mode 100644 docs/docs/building-transpiler.md rename Writerside/topics/ChiselMethod.md => docs/docs/chisel-method.md (94%) rename Writerside/topics/CodeGeneration.md => docs/docs/code-generation.md (95%) create mode 100644 docs/docs/common-elements.md create mode 100644 docs/docs/cross-platform-parsers.md create mode 100644 docs/docs/documentation-generation.md create mode 100644 docs/docs/dual-code-model-apis.md create mode 100644 docs/docs/editor-support.md create mode 100644 docs/docs/emf-interoperability.md create mode 100644 docs/docs/features.md create mode 100644 docs/docs/interoperability.md rename Writerside/topics/StarlasuOverview.md => docs/docs/intro.md (93%) create mode 100644 docs/docs/methods.md create mode 100644 docs/docs/naming.md create mode 100644 docs/docs/origin-and-destination.md create mode 100644 docs/docs/parse-tree-to-ast-mapping.md create mode 100644 docs/docs/position.md create mode 100644 docs/docs/semantic-enrichment.md create mode 100644 docs/docs/serialization.md create mode 100644 docs/docs/symbol-resolution.md create mode 100644 docs/docs/testing.md create mode 100644 docs/docs/transformation-framework.md create mode 100644 docs/docs/tutorial-basics/_category_.json create mode 100644 docs/docs/tutorial-basics/congratulations.md create mode 100644 docs/docs/tutorial-basics/create-a-blog-post.md create mode 100644 docs/docs/tutorial-basics/create-a-document.md create mode 100644 docs/docs/tutorial-basics/create-a-page.md create mode 100644 docs/docs/tutorial-basics/deploy-your-site.md create mode 100644 docs/docs/tutorial-basics/markdown-features.mdx create mode 100644 docs/docs/tutorial-extras/_category_.json create mode 100644 docs/docs/tutorial-extras/img/docsVersionDropdown.png create mode 100644 docs/docs/tutorial-extras/img/localeDropdown.png create mode 100644 docs/docs/tutorial-extras/manage-docs-versions.md create mode 100644 docs/docs/tutorial-extras/translate-your-site.md create mode 100644 docs/docs/type-checking.md create mode 100644 docs/docs/use-cases.md create mode 100644 docs/docs/validation.md create mode 100644 docs/docusaurus.config.ts create mode 100644 docs/package-lock.json create mode 100644 docs/package.json create mode 100644 docs/sidebars.ts create mode 100644 docs/src/components/HomepageFeatures/index.tsx create mode 100644 docs/src/components/HomepageFeatures/styles.module.css create mode 100644 docs/src/css/custom.css create mode 100644 docs/src/pages/index.module.css create mode 100644 docs/src/pages/index.tsx create mode 100644 docs/static/.nojekyll create mode 100644 docs/static/img/Star.svg rename {Writerside/images => docs/static/img}/StarlasuOverview.png (100%) rename {Writerside/images => docs/static/img}/chiselMethod.png (100%) create mode 100644 docs/static/img/docusaurus-social-card.jpg create mode 100644 docs/static/img/docusaurus.png create mode 100644 docs/static/img/favicon.ico create mode 100644 docs/static/img/logo.svg create mode 100644 docs/static/img/undraw_docusaurus_mountain.svg create mode 100644 docs/static/img/undraw_docusaurus_react.svg create mode 100644 docs/static/img/undraw_docusaurus_tree.svg create mode 100644 docs/tsconfig.json diff --git a/README.md b/README.md index 36b25ea..64782a5 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,69 @@ -# Starlasu -This project contains the documentation on the Starlasu approach, which is -published [here](https://github.com/Strumenta/StarLasu/tree/main/documentation). +# StarLasu -## Publication +The Starlasu approach provides a flexible, systematic, and extensible framework for creating tools like parsers, +transpilers, code analyzers, interpreters, code generators, and domain-specific languages (DSLs). -We generate the documentation to be published using JetBrains's Writerside. +## Documentation -Updating the published version requires manually uploading the generated files to Netlify. At the moment Federico is the only one who has access. +This project has been migrated from Writerside to **Docusaurus** for better maintainability and modern web standards. + +### Documentation Structure + +- **`docs/`** - Docusaurus-based documentation site +- **`Writerside/`** - Original Writerside documentation (legacy) +- **`webHelpSTRUMENTA2-all/`** - Generated web help files + +### Getting Started with Documentation + +1. **View Online**: The documentation is available at [https://starlasu.com](https://starlasu.com) + +2. **Local Development**: + ```bash + cd docs + npm install + npm start + ``` + +3. **Build for Production**: + ```bash + cd docs + npm run build + ``` + +## What is Starlasu? + +Starlasu consists of a mental framework and guidelines to build different components. For example, we have a detailed +method to design and implement parsers (see [The Chisel Method](docs/docs/chisel-method)). + +Starlasu is supported by a family of libraries, each supporting the application of The Starlasu approach on +different platforms: + +- **Kolasu**: For the JVM (Java, Kotlin), expanding to Node.js and browser environments in version 1.6. +- **Tylasu**: For Node.js and browser environments. +- **Pylasu**: For Python. +- **Sharplasu**: For .NET. + +These libraries share a common architecture and are interoperable. This enables cross-platform development and +consistent tooling. + +## Migration Notes + +The migration from Writerside to Docusaurus provides: + +- **Modern Web Standards**: Better performance and accessibility +- **Improved Navigation**: Enhanced search and navigation capabilities +- **Better Maintainability**: Easier to update and extend +- **Responsive Design**: Works better on mobile and tablet devices +- **Version Control**: Better integration with Git workflows + +## Contributing + +To contribute to the documentation: + +1. Make changes in the `docs/` directory +2. Test locally with `npm start` +3. Submit a pull request + +## License + +Copyright © Strumenta. Built with Docusaurus. diff --git a/Writerside/c.list b/Writerside/c.list deleted file mode 100644 index c4c77a2..0000000 --- a/Writerside/c.list +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Writerside/cfg/buildprofiles.xml b/Writerside/cfg/buildprofiles.xml deleted file mode 100644 index 5e6a73d..0000000 --- a/Writerside/cfg/buildprofiles.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - false - - - - diff --git a/Writerside/images/Star.svg b/Writerside/images/Star.svg deleted file mode 100644 index af261c2..0000000 --- a/Writerside/images/Star.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/Writerside/strumenta.tree b/Writerside/strumenta.tree deleted file mode 100644 index 08c642a..0000000 --- a/Writerside/strumenta.tree +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Writerside/topics/ASTRepresentation.md b/Writerside/topics/ASTRepresentation.md deleted file mode 100644 index 22e4f43..0000000 --- a/Writerside/topics/ASTRepresentation.md +++ /dev/null @@ -1,647 +0,0 @@ -# AST Representation - -Starlasu operates on Abstract Syntax Trees (ASTs) (or _Code Models_). These are tree-like data structures to represent -the information contained in a piece of formal language or “code”. For example, the statements in a procedural program, -the data elements in a SQL query, or the steps in a business workflow. - -All the Starlasu ASTs are based on a few primitive elements. - -The structure is similar to the one used by other Modeling solutions such as [EMF](https://eclipse.dev/modeling/emf/), -[MPS](https://www.jetbrains.com/mps/), or [LionWeb](https://lionweb.io/). -In particular we aim to (mostly) converge to the same terminology used in LionWeb -(see the [LioWeb’s specifications](https://lionweb.io/specification/metametamodel/metametamodel.html)). - -This is a representation of the whole structure. - -```mermaid ---- -title: Starlasu M3 ---- -classDiagram - -class Language { - qualifiedName: String - simpleName: String -} -Language "1" *--> "0..*" Type: types - -class Type { - <> - name: String -} -Type <|-- Classifier -Type <|-- DataType - -%% Concepts - -class Classifier { - <> -} -Classifier "1" *--> "0..*" Feature: features -Classifier <|-- Concept -Classifier <|-- ConceptInterface -Classifier <|-- Annotation - -class Concept -Concept "1" --> "0..1" Concept: extends -Concept "1" --> "0..*" ConceptInterface: implements - -class ConceptInterface -ConceptInterface "1" --> "0..*" ConceptInterface: extends - -%% Features - -class Feature { - <> - name: String - multiplicity: Multiplicity -} -Feature <|-- Property -Feature <|-- Link -Feature "1" --> "1" Type: type - -class Property { - type: DataType -} -class Link { - <> - type: Classifier -} -Link <|-- Containment -Link <|-- Reference - -class Containment -class Reference - -class Annotation { - multiple: Boolean -} -Annotation "1" --> "0..1" Annotation: extends -Annotation "1" --> "0..*" ConceptInterface: implements -Annotation "1" --> "0..1" Classifier: annotates - -%% DataTypes - -class DataType { - <> -} - -DataType <|-- PrimitiveType -class PrimitiveType - -DataType <|-- EnumType -class EnumType -EnumType "1" *--> "0..*" EnumerationLiteral: literals - -class EnumerationLiteral { - name: String -} - -%% Supporting enumerations - -class Multiplicity { - <> - SINGULAR - OPTIONAL - MANY -} - -``` - -***Note that this is the terminology used since Kolasu 1.6. In previous versions of Kolasu and other libraries -the terminology could be slightly different.*** - -We call this structure the Meta-Metamodel of Starlasu or the Starlasu’s M3 -(see https://en.wikipedia.org/wiki/Meta-Object_Facility for a definition of M0, M1, M2, and M3). - -In our case: - -- The M0 or the observed element is the code itself -- The M1 or the model of the code, is an instance of an AST. For example, an actual instance of ClassDeclaration with name *foo*, no fields and no methods -- The M2 or the metamodel is the set of AST classes defined for a certain language, for example the definition of the class ClassDeclaration, describing the fact that a ClassDeclaration has a name, can extend zero or one other ClassDeclarations and can implement zero to many InterfaceDeclarations -- The M3 or the meta-metamodel is the structure that we use to define AST. See the picture above - -## Language - -- At the top level there is a *Language.* See for example, [KolasuLanguage](https://github.com/Strumenta/kolasu/blob/2fa276186924ec859519d3c87fad6513c23fd74a/core/src/main/kotlin/com/strumenta/kolasu/language/KolasuLanguage.kt#L22) -- A *Language* has a qualified name. It has also a simple name, which is simply the portion of the qualified name following the last dot (or the entire qualified name, if it has no dots) -- A *Language* groups various *Types.* -- *Types* can be either *Concepts, ConceptInterfaces, PrimitiveTypes,* or *EnumTypes* - -## Concept, ConceptInterface, Annotation - -- A *Concept* can extend zero or one *Concepts*. It can implement zero to many *ConceptInterfaces* -- *Concepts* and *ConceptInterfaces* have a name (because they are *Types*) -- *Concepts* and *ConceptInterfaces* have features -- *ConceptInterfaces* are similar to interfaces in programming languages -- An *Annotation* can extend another *Annotation*. It can implement zero many *ConceptInterfaces* - -## Features - -- All features have a name and could be either *Properties* or *Links* -- *Multiplicity* is one of: optional (zero or one instances), singular (exactly one instance), or many (zero to many instances). There is not alternative for one or more instances -- *Properties* have a type which is a *DataType*. *Properties* can have multiplicity singular or optional, but not many -- A *Link* is either a *Reference* or a *Containment* -- A *Link* has as type a *Classifier* (either a *Concept* or a *ConceptInterface*) -- A *Reference* can have multiplicity singular or optional, but not many - -## Primitive Types - -- A *Primitive Type* is anything that is not a *Node* is considered a primitive type. Typically these are Strings, Chars, Ints. This does not include Enums, which are treated separately. Arbitrary other types can be used. They may require additional configuration for example, for serialization. - - For example, consider this class from the RPG Language Module: - - ```kotlin - // Class _not_ extending Node - sealed class EditCode { - ... - } - - data class OutputSpecificationFieldDescription( - val fieldIndicators: List = emptyList(), - val fieldName: FieldNameType, - // EditCode is used in an AST and it is not a Node neither a - // ReferenceValue so it is a PrimitiveType. - // editCode is a Property, as the value is a PrimitiveType - val editCode: EditCode? = null, - val blankAfter: Boolean = false, - val endPosition: EndPosition? = null, - val dataFormat: DataFormat = DataFormat.Blank, - val various: Expression? = null, - val comments: String? = null - ) : OutputSpecification(), WithInlineDeclaration - ``` - - -## Enum Types - -These are just types representing a finite set of possibilities. - -## Obtaining Concepts from classes - -*Concepts* are automatically derived from inspecting classes. - -In the case of Kolasu, we inspect all the properties (in the “Kotlin sense” of property) of a Class, -ignoring the one marked as `@Internal`. - -For each property: - -- If the type is `ReferenceValue` (previously called `ReferenceByName`), then it indicates a *Reference* -- If the type is a Node or a Node subclass, then it indicates a *Containment* -- If the type a MutableList of Node or a Node subclass, then it indicates a *Containment* -- If the type is anything else, then we have a *Property* - -We want to keep this structure as minimal as possible, because in this way it is much easier to support more features such as serialization, transformers, interoperability with LionWeb, etc. - -For this reason we do not support sets or maps or other collections. - -For example: - -```kotlin -// This will produce a Concept named JCompilationUnit -data class JCompilationUnit( - // This will produce a containment with multiplicity Optional - val packageDeclaration: JPackageDeclaration? = null, - // This will produce a containment with multiplicity Many - val imports: MutableList = mutableListOf(), - // This will produce a containment with multiplicity Many - val declarations: MutableList = mutableListOf(), - // This will produce a containment with multiplicity Optional - val moduleDeclaration: JModuleDeclaration? = null, -) : Node() - -// This will produce a Concept extending the Concept derived -// from class JAnnotation -data class JSingleElementAnnotation( - // This will produce a reference with multiplicity Singular - override val typeName: ReferenceValue, - // This will produce a containment with multiplicity Singular - val value: JExpression, -) : JAnnotation(typeName) -``` - -# Guidelines on defining ASTs using Kolasu - -Now that we understand the Starlasu M3 and we know how it is derived from the Kotlin classes we create, we can see -how we should write our Kotlin classes to get the M2 (or metamodel or conceptual language) that we want. - -We typically specify attributes and single or optional containments with `var` . - -We typically specify references and multiple containments with `val` . In that case we can change the content of -the reference or the list, without the need to reassign them. - -## Annotations - -The internal annotation can be used to indicate fields that should not appear in the AST - -```kotlin -data class RPGPlaceholderExpr(@property:Internal override var placeholderName: String? = null) : - Expression(), PlaceholderElement { - @property:Internal - override val multiplePlaceholderElement: Boolean - get() = false -} -``` - -The derived annotation can be used to indicate features that are obtained by processing other features, and that -can be recalculated from them. - -```kotlin -data class CompilationUnit( - val mainStatements: MutableList = LinkedList(), - ... -) : Node(), StatementContainer { - ... - - @Derived - val mainRoutine: Subroutine - get() { - return Subroutine("VirtualMainRoutine", null, mainStatements, SubroutineCategory.Main) - .apply { - this.origin = - SimpleOrigin(mainStatements.firstOrNull()?.position, "").addToOriginNodes(mainStatements) - }.withParent(this) - } - -``` - -## Prefix - -We typically want to use a prefix for **all** the classes we use to define our language M2. This is useful because -in transpiler and other applications we may want to combine multiple languages. For example, in a transpiler from RPG to Java we may want to include both the RPG AST classes and the Java AST classes. Both languages could share constructs with the same name, and without a prefix it would be cumbersome to distinguish them. - -## Common Concepts - -Starlasu includes a few Common *ConceptInterfaces.* They can be used as markers, so that different tooling can look -for *Concepts* implementing those, and treated them in a special way. - -They are: - -- **Statement:** it represents a statement in the language (i.e., something that can be executed) -- **Expression:** it represents an expression in the language (i.e., something that can be evaluated and produce a value -- **EntityDeclaration:** it should be used for the definition of classes, interfaces, and structures. These declarations introduces new types. This interface should not be used for parameter declarations or variable declarations. -- **PlaceholderElement:** this indicates special *Concepts* used to represent variability when defining patterns. If you are not building support for patterns in your language, you can ignore them (see [Placeholders](https://www.notion.so/Placeholders-34efa5c5c3df43299ce87bef074b06be?pvs=21)) - -## How to use Named and PossiblyNamed - -*Named* is to be used for things that have **always** a name, *PossiblyNamed* is to be used for things that **may or may not** have name. - -For example, in some languages one can define functions and anonymous functions. If we want to represent both with the same Concept, then we can make that Concept implement *PossiblyNamed*. - -For a local variable which is guaranteed to have a name (supposing our language do not support anonymous variables) then we would use *Named*. - -## When to use ReferenceValue - -A *ReferenceByName* indicates that a name can indicate something else, where something else is typically another node in the same AST or another AST or a reference to some external symbol (like a builtin-function). - -Examples of usages of *ReferenceByName*: - -```kotlin -data class FReferenceExpr(val value: ReferenceByName) - : FExpression - -data class FMethodCallExpr(val method: ReferenceByName, - val args: MutableList = mutableListOf()) - : FExpression -``` - -## When to use enums - -Enums should be used when we have a set of alternatives. For example: - -```kotlin -enum class JVisibility { - PUBLIC, - PRIVATE, - PROTECTED, - DEFAULT -} - -sealed class JClassMember(val visibility: JVisibility): Node() -``` - -## Modifiers - -When representing modifiers we have two alternatives: - -- Represent the list of modifiers itself. We tend to do that to preserve the information on the order of the modifiers. This is a lower level representation, more suited for the parse tree than the AST. We should avoid it. -- To represent the modifiers through flags and enums in the declaration to which the modifiers are applied. This is closer to the mental model a developer would have of the code, and this is what we should do. - -```kotlin -// To use -data class FMethodDeclaration(val visibility: FVisibility, - val isFinal: Boolean, val isStatic: Boolean, - val name: String, val body: FBody? = null) : FMember() - -// To avoid -data class FMethodDeclaration(val modifiers: MutableList, - val name: String, val body: FBody? = null) : FMember() -``` - -## Statements - -We typically define a top level rule to represent all statements of our language: - -```kotlin -sealed class FStatement : BaseNode(), Statement -// here Expression is the common concept we have seen above -``` - -All other statements should end with the `Stmt` postfix. - -### Expression Statements - -In most languages methods or other blocks contain list of statements. They cannot contain directly expressions. However expressions can be wrapped in *ExpressionStatements*: - -```kotlin -data class FExpressionStmt(val expr: FExpression) : FStatement -``` - -For example, in Java we may have: - -```kotlin -public void foo() { - // here this entire line, including the semicolon, is an - // JExpressionStmt, while the expression 1 + 2, is a JAdditionExpr - 1 + 2; -} -``` - -## Expressions - -We typically define a top level rule to represent all expressions of our language: - -```kotlin -sealed class FExpression : BaseNode(), Expression -// here Expression is the common concept we have seen above -``` - -All other expressions should end with the `Expr` postfix. - -### Binary expressions - -```kotlin -sealed class FBinaryExpr( - open var left: FExpression, - open var right: FExpression) -: FExpression() - -// We should NOT do this -// The type of operations should be distinguished through subclasses -// We may well have an operator field in the parse tree, but we should -// not have in the AST -class FBinaryExpr( - open var left: FExpression, - open var right: FExpression, - val operator: OperatorType) -: FExpression() -``` - -### Arithmetic expressions - -```kotlin -sealed class FArithmeticExpr( - open var left: FExpression, - open var right: FExpression) -: FExpression() - -// do **not** call this FSumExpr or FAddExpr -data class FAdditionExpr( - override var left: FExpression, - override var right: FExpression) -: FArithmeticExpr() - -data class FSubtractionExpr( - override var left: FExpression, - override var right: FExpression) -: FArithmeticExpr() - -data class FMultiplicationExpr( - override var left: FExpression, - override var right: FExpression) -: FArithmeticExpr() - -data class FDivisionExpr( - override var left: FExpression, - override var right: FExpression) -: FArithmeticExpr() -``` - -### Comparison expressions - -```kotlin -sealed class FComparisonExpr( - override var left: FExpression, - override var right: FExpression) : - FBinaryExpr(left, right) - -data class FEqualityExpr( - override var left: FExpression, - override var right: FExpression) : - FComparisonExpr(left, right) - -// do **not** call this FDisequalityExpr -data class FInequalityExpr( - override var left: FExpression, - override var right: FExpression) : - FComparisonExpr(left, right) - -data class FLessThanExpr( - override var left: FExpression, - override var right: FExpression) : - FComparisonExpr(left, right) - -data class FGreaterThanExpression( - override var left: FExpression, - override var right: FExpression) : - FComparisonExpression(left, right) - -data class FLessOrEqualToExpression( - override var left: FExpression, - override var right: FExpression) : - FComparisonExpression(left, right) - -data class FGreaterOrEqualToExpr( - override var left: FExpression, - override var right: FExpression) : - FComparisonExpr(left, right) - -``` - -### Logical expressions - -```kotlin -// even if the language does not support bitwise and/or expressions -// these name make more obvious what these expressions are -data class FLogicalAndExpr( - override var left: FExpression, - override var right: FExpression) : - FBinaryExpr(left, right) - -data class FLogicalOrExpr( - override var left: FExpression, - override var right: FExpression) : - FBinaryExpr(left, right) -``` - -### Field accesses - -Field accesses are typically represented like this: - -```kotlin -data class FFieldAccessExpr(val container: FExpression, - val field: ReferenceValue) : FExpression() -``` - -Note that in case of chain of field accesses we would have a recurring structure. - -We should **not** aim to represent chains of field accesses as a single expression: - -```kotlin -// Do **not** do this -data class FFieldAccessExpr(val parts: List): FExpression() - -// Or this, which is not supported by Starlasu as lists of references -// are forbidden -data class FFieldAccessExpr( - val parts: List): FExpression() - -// Also this has to be avoided -data class FFieldAccessExpr( - val parts: List): FExpression() -data class FFieldAccessExprPart( - val field: ReferenceValue): Node() -``` - -Note that we discuss only *qualified* field accesses. So field accesses in the form: - -```java -container.field -``` - -We do not consider *unqualified* field accesses. The reason is that unqualified field accesses are undistinguishable from references to other expressions during parsing. We can distinguish them only during symbol resolution. For this reason unqualified field accesses are represented using reference expressions. - -### Function and Method calls - -Function and method calls are typically expressions, as they can produce a value: - -```kotlin -data class FMethodCallExpr( - val method: ReferenceValue, - val args: MutableList = mutableLisOf()) - : FExpression() -``` - -These represents method calls where the receiver (the thing on which the method is invoked) is not specified. - -```kotlin -myMethod() // simple or unqualified method call, see this section -myReceived.myMethod() // qualified method call, see next section -``` - -If both qualified and unqualified method calls are possible, a single abstract parent class should be used. It should contain the `method` and `args` parameters specified here. - -### Qualified method calls - -These represents method calls where the receiver (the thing on which the method is invoked) is specified. - -```kotlin -myMethod() // simple or unqualified method call, see previous section -myReceived.myMethod() // qualified method call, see this section -``` - -This is how they can be represented: - -```kotlin -data class FQualifiedMethodCallExpr( - var container: FExpression, - override val method: ReferenceValue, - override val args: MutableList = mutableLisOf()) - : FMethodCall() -``` - -We discourage having a single AST class to represent both unqualified and qualified method calls, by making the container optional. - -### Unary expressions - -```kotlin -data class FNegatedExpr(val base: FExpression): FExpression() -data class FMinusExpr(val base: FExpression): FExpression() -``` - -## Method definitions - -```kotlin -data class FMethodDeclaration( - override var name: String, - val params: MutableList, - // body is null for abstract methods. We want to distinguish - // between abstract methods and methods with an empty body - var body: FBody? = null) : FClassMember(), Named -``` - -## Partitions - -Partitions are special constructs needed for LionWeb interoperability to represent collections of ASTs. - -They are *not* represented as Kolasu nodes (the annotation *LionWebPartition* has been removed) - -## Placeholders - -Placeholders are used to create patterns: - -```kotlin -data class RPGPlaceholderExpr(@property:Internal override var placeholderName: String? = null) : - Expression(), PlaceholderElement { - @property:Internal - override val multiplePlaceholderElement: Boolean - get() = false -} - -data class RPGPlaceholderMultiStmt(@property:Internal override var placeholderName: String? = null) : - Statement(), PlaceholderElement { - @property:Internal - override val multiplePlaceholderElement: Boolean - get() = true -} - -``` - -Why do we need pattern? To match ASTs or produce following a certain structure. Consider this example: - -```kotlin -this.statementByExample( -""" C FOR I = `expr:s` TO `expr:e` - C `stmt*:b` - C ENDFOR""", -"""for (int I = `expr:s`;I <= `expr:e`;I++) { `stmt*:b` }""", -variants= listOf("I") -) -``` - -This piece of code: - -- Match in an RPG AST every for statement defining a variable called I, *irrespectively of what the starting and ending expressions are and irrespectively of the statements it contains* -- It then produce a piece of Java code, filling in the translation of the corresponding elements captured in the RPG code - -For example, if we parse: - -```kotlin - C FOR I = 1 TO 2 - C "hello" DSPLY - C "world" DSPLY - C ENDFOR -``` - -The output Java code would be: - -```java -for (int I = 1;I <= 2;I++) { - System.out.println("hello"); - System.out.println("world"); -} -``` - -In order to represent “AST with holes” we use the placeholder parsing rules and the placeholder AST elements. - -A demo of this feature is presented in this video: [Let's talk about transpilers](https://youtu.be/d-ulE5Trb0s?t=1754). \ No newline at end of file diff --git a/Writerside/topics/ASTTraversalAndQuerying.md b/Writerside/topics/ASTTraversalAndQuerying.md deleted file mode 100644 index b886faa..0000000 --- a/Writerside/topics/ASTTraversalAndQuerying.md +++ /dev/null @@ -1,52 +0,0 @@ -# AST Traversal and Querying - -To process the information contained in an AST, we'll have to _traverse_ it. That is, process each node in a given sequence. - -## Manual Traversal - -We can traverse a tree "manually" i.e. programmatically following all relevant references in the nodes. E.g. start from -the root node `Program`, then visit the contents of a child collection `statements`, and so on. - -However, this approach produces a traversal algorithm that depends on the precise structure of the AST. Therefore, the -algorithm is not reusable, and this approach doesn't scale over a growing number of node instances and node types. -It's also brittle in evolving code bases where the structure of the AST changes over time. - -## Traversal Functions - -So, StarLasu provides a number of generic traversal functions that we can apply and adapt to our ASTs for our use cases. -In languages where it's possible to do so, StarLasu exposes these functions as "extension methods" on the `Node` class. -These functions do not return a collection of nodes, rather they are "generators" or "iterators" and similar concepts -depending on the implementation language. These are facilities that return or "yield" one node after the other, in the intended sequence. - -The basic traversal method is `walk`, that visits all the nodes in the tree in a depth-first sequence. - -_See an example in:_ -- [Kolasu](https://github.com/Strumenta/kolasu/blob/ca96cc9200e26cee5674c0809fdff557b0ccbbc9/core/src/test/kotlin/com/strumenta/kolasu/traversing/TraversingStructurallyTest.kt#L188-L196) -- [Pylasu](https://github.com/Strumenta/pylasu/blob/a57368920b0dd14868347690dea86066c1e17727/tests/test_traversing.py#L21-L23) -- [Tylasu](https://github.com/Strumenta/tylasu/blob/29c5dcac2384f03f4911b80d4f310a09a754b0ef/tests/traversing.test.ts#L45C12-L46) - -Most other methods are derived from `walk` and may change the order of traversal. - -An exception is methods that travel upwards from a node to its ancestors, rather than downwards to its children. -This is the case of the `walkAncestors` method. - -## Listeners and Visitors - -In StarLasu we do not encourage the usage of visitors or listeners, that are commonly used with ANTLR for example. -These have to be generated and produce interfaces with a number of methods depending on the number of node types, which can grow high. -Moreover, listeners/visitors make it difficult to organize code in a structured manner. - -## Finding Nodes of a Given Type - -Given an AST there is one essential operation we may want to do: find nodes of a given type. We can search for nodes of a given type in two -directions: looking among descendants of the current node and look among ancestors. - -For example, given a field declaration we may want to know in which class is declared. In that case we will look for the closest ancestor -of type ClassDeclaration. - -On the other hand, we may identify all the return statement inside a MethodDeclaration. In that case we will look for them among the descendants -of the node. - -_See in:_ -- [Kolasu](https://github.com/Strumenta/kolasu/tree/master/core/src/main/kotlin/com/strumenta/kolasu/traversing) -- [Tylasu](https://github.com/Strumenta/tylasu/tree/master/src/traversing) \ No newline at end of file diff --git a/Writerside/topics/CommonElements.md b/Writerside/topics/CommonElements.md deleted file mode 100644 index 88e2686..0000000 --- a/Writerside/topics/CommonElements.md +++ /dev/null @@ -1,13 +0,0 @@ -# AST Common Elements - -Most programming languages share some concepts. We identified these common concepts and defined marker types for them. In this way, we can treat these elements similary in all languages. - -They are: - -* Statement: for example print statements, expression statements, or return statements -* Expression: for example, literals, mathematical expressions, boolean expressions -* Entity Declaration: for example, class declarations, top level function declarations - -_See in [Kolasu](https://github.com/Strumenta/kolasu/blob/main/ast/src/commonMain/kotlin/com/strumenta/kolasu/model/CommonElements.kt)_ - -_This is not yet supported in other StarLasu libraries._ diff --git a/Writerside/topics/CrossPlatformParsers.md b/Writerside/topics/CrossPlatformParsers.md deleted file mode 100644 index db0a0f9..0000000 --- a/Writerside/topics/CrossPlatformParsers.md +++ /dev/null @@ -1,11 +0,0 @@ -# Cross-platform parsers - -Different users may want to use our parsers from different platforms such as the browser, Python, the JVM, etc. - -On the other hand we want to avoid having to rewrite the parsers for the same languages across multiple platforms. For this reason we have developed an approach to use parsers across platforms. In essence, we write a parser for any platform we want, using Kolasu, Pylasu, or Tylasu. We then access the AST produced by such parsers on another platform by serializing the AST produced on one platform and unserializing it on another one. To make this possible we built tools to: - -- analyze the codebase of the original parser and extract a metamodel -- generate AST classes on the other platforms from the metamodel -- generate an AST unserializers from the metamodel - -In this way we could write a parser for RPG in Kotlin, using Kolasu. We would then automatically generate equivalent AST classes in Pylasu, and code to unserialize an AST instantiating those AST classes. In the end, we would obtain a parser usable from Python, which expose AST classes in Python. The implementation would call the parser written in Kotlin, obtain the AST serialized and unserialize it behind the scenes. \ No newline at end of file diff --git a/Writerside/topics/DocumentationGeneration.md b/Writerside/topics/DocumentationGeneration.md deleted file mode 100644 index 38620a4..0000000 --- a/Writerside/topics/DocumentationGeneration.md +++ /dev/null @@ -1,3 +0,0 @@ -# AST Documentation - -_To be written_ \ No newline at end of file diff --git a/Writerside/topics/DualCodeModelAPIs.md b/Writerside/topics/DualCodeModelAPIs.md deleted file mode 100644 index 6ed5634..0000000 --- a/Writerside/topics/DualCodeModelAPIs.md +++ /dev/null @@ -1,18 +0,0 @@ -# The Dual Code Model APIs - -This segment is more theoretical than the others. It is meant to provide a high-level overview of the dual code model APIs and the approach followed in the development of the StarLasu libraries. -It will approach the concepts of homogenous and heterogeneous APIs, and how to use and leveraged them in the StarLasu libraries. - -## Homogenous APIs - -In kolasu, [Nodes](https://github.com/Strumenta/kolasu/blob/main/core/src/main/kotlin/com/strumenta/kolasu/model/Node.kt) are the basic building blocks of an AST. They are used to represent the different elements of the language being parsed. -All the instances of nodes are the same and have a defined set of properties and methods, such as the origin, parent, etc... - -There are also reflective capabilities: so that its possible to ask each node for its properties and for each property to have access to the name, type and multiplicity, which allows to write fully generic algorithms. -This is what we call a homogenous API. - -This homogenous APIs are important to develop generic tools, like interpreters or semantic enrichment modules. Using the homogenous API, we can develop a tool that can be used for any language that has an AST representation. -## Heterogeneous APIs - -On the other hand, each Node can also have its own specific set of properties and methods. For instance a Node that represents an if statement can have the condition and the body properties. -This is what we call a heterogeneous API. diff --git a/Writerside/topics/EMFInteroperability.md b/Writerside/topics/EMFInteroperability.md deleted file mode 100644 index 0bd820d..0000000 --- a/Writerside/topics/EMFInteroperability.md +++ /dev/null @@ -1,20 +0,0 @@ -# EMF Interoperability - -The Eclipse Modeling Framework (EMF) has been very successful in the MDE world. It can be regarded as an exchange format supported by different tools. - -For this reason we built support for exporting Metamodels and Models to EMF. We in particular support the serialization to EMF-JSON. EMF-JSON is not as -well-defined and supported as XMI (based on XML), but the request for JSON-based formats on some of the platforms supported brought us to focus on it. - -In our case, _metamodels_ are the definition of the node types. For example, they specify which properties each node has. - -Instead, we can represent and serialize ASTs as _models_ (i.e., instances of metamodels). A model describes the value of each node's properties, and the -relationships among the nodes. - -In some of the StarLasu libraries, we can also _import_ EMF metamodels and models (generated with other StarLasu libraries) -in order to _consume_ the results of a tool (e.g. a parser) from a different language. This is what the -[Strumenta Playground](https://playground.strumenta.com/) web app does, for example. This is also useful for [cross-platform parsers](parsers-cross-platform.md). - -Read more about this topic in: -- [Kolasu](https://javadoc.io/doc/com.strumenta.kolasu/kolasu-emf/latest/index.html) ([source code](https://github.com/Strumenta/kolasu/tree/master/emf)) -- [Pylasu](https://pylasu.readthedocs.io/en/latest/pylasu.emf.html) ([source code](https://github.com/Strumenta/pylasu/tree/master/pylasu/emf)) _note: support in Pylasu is a work in progress._ -- [Tylasu](https://strumenta.github.io/tylasu/modules/interop_ecore.html) ([source code](https://github.com/Strumenta/tylasu/blob/master/src/interop/ecore.ts)) diff --git a/Writerside/topics/EditorSupport.md b/Writerside/topics/EditorSupport.md deleted file mode 100644 index 10ab08e..0000000 --- a/Writerside/topics/EditorSupport.md +++ /dev/null @@ -1,3 +0,0 @@ -# Editor Support - -_To be written_ \ No newline at end of file diff --git a/Writerside/topics/Features.md b/Writerside/topics/Features.md deleted file mode 100644 index e67ad3e..0000000 --- a/Writerside/topics/Features.md +++ /dev/null @@ -1,3 +0,0 @@ -# Features - -Start typing here... \ No newline at end of file diff --git a/Writerside/topics/Interoperability.md b/Writerside/topics/Interoperability.md deleted file mode 100644 index 2d37a9d..0000000 --- a/Writerside/topics/Interoperability.md +++ /dev/null @@ -1,3 +0,0 @@ -# Interoperability - -_To be written_ \ No newline at end of file diff --git a/Writerside/topics/Methods.md b/Writerside/topics/Methods.md deleted file mode 100644 index 06f2ab4..0000000 --- a/Writerside/topics/Methods.md +++ /dev/null @@ -1,3 +0,0 @@ -# Methods - -Start typing here... \ No newline at end of file diff --git a/Writerside/topics/Naming.md b/Writerside/topics/Naming.md deleted file mode 100644 index 292d0be..0000000 --- a/Writerside/topics/Naming.md +++ /dev/null @@ -1,10 +0,0 @@ -# Naming - -Two interfaces are defined: - -- PossiblyNamed, which define an attribute name of type String with multiplicity 0..1 -- Named, which extends PossiblyNamed and define an attribute name of type String with multiplicity 1..1 - -For example, a FunctionDeclaration will be PossiblyNamed in languages which permits anonymous functions. - -In the StarLasu libraries we provide special support for things which are Named or PossiblyNamed. We can used these interfaces in [Symbol Resolution](SymbolResolution.md), for example. diff --git a/Writerside/topics/OriginAndDestination.md b/Writerside/topics/OriginAndDestination.md deleted file mode 100644 index 0af0c13..0000000 --- a/Writerside/topics/OriginAndDestination.md +++ /dev/null @@ -1,22 +0,0 @@ -# Origin and Destination - -A Node can have an Origin. An Origin indicates where the nodes come from. - -Let's see some examples: - -In the case of Nodes built by a parser, the Origin will indicate a point in some source file. -In the case of Nodes built by a transformer, the Origin may indicate some Node which provided the original information. -Consider this example: we are building a transpiler from RPG to Java. - -We first build an RPG parser that given RPG code product an RPG AST. The root of the AST may have type -RPGCompilationUnit. The origin of an RPGCompilationUnit will represent the RPG file name and the position in that file. -In the case of the root a position ranging from the first character of the first line, to the last character of the last line. - -Then we build a transformer that given an RPG AST produces a Java AST. The root of such AST may have type -JavaCompilationUnit. The origin of a JavaCompilationUnit will refer to another node, in this case having type -RPGCompilationUnit. - -In a Node we may also indicate what can be created from a Node. For example, if we build programmatically -an AST and then we want to generate code from it, we may want to specify for each node what portion of code -has been generated. For example, a node representing an If Statement in Java could end up being represented by a 5 -lines of Java code inside a large Java file. In that case, the Destination will specify the name of the file and the lines and columns representing our If Statement. \ No newline at end of file diff --git a/Writerside/topics/ParseTreeToASTMapping.md b/Writerside/topics/ParseTreeToASTMapping.md deleted file mode 100644 index ef1f8c5..0000000 --- a/Writerside/topics/ParseTreeToASTMapping.md +++ /dev/null @@ -1,37 +0,0 @@ -# Parse Tree to AST mapping - -Suppose we have a simple language and we want to parse this piece of code: - -``` -set foo = 123 -display 456 -``` - -We would like to parse this with ANTLR, and then translate the resulting parse-tree into an AST. StarLasu offers -_transformers_ to implement such mappings. For example, with Kolasu we may write: - -```kotlin -val transformer = ParseTreeToASTTransformer() -transformer.registerNodeFactory(SimpleLangParser.CompilationUnitContext::class, CU::class) - .withChild(SimpleLangParser.CompilationUnitContext::statement, CU::statements) -transformer.registerNodeFactory(SimpleLangParser.DisplayStmtContext::class) { ctx -> - DisplayIntStatement(value = ctx.expression().INT_LIT().text.toInt()) -} -transformer.registerNodeFactory(SimpleLangParser.SetStmtContext::class) { ctx -> - SetStatement(variable = ctx.ID().text, value = ctx.expression().INT_LIT().text.toInt()) -} - -val transformedCU = transformer.transform(pt)!! -// The result would be equivalent to the following: -val cu = CU( - statements = listOf( - SetStatement(variable = "foo", value = 123).withParseTreeNode(pt.statement(0)), - DisplayIntStatement(value = 456).withParseTreeNode(pt.statement(1)) - ) -).withParseTreeNode(pt) -``` - -Read more about this topic for: -- [Kolasu](https://javadoc.io/doc/com.strumenta.kolasu/kolasu-core/latest/com/strumenta/kolasu/mapping/ParseTreeToASTTransformer.html) ([source code](https://github.com/Strumenta/kolasu/tree/master/core/src/main/kotlin/com/strumenta/kolasu/mapping)) -- [Pylasu](https://pylasu.readthedocs.io/en/latest/pylasu.mapping.html#pylasu-mapping-parse-tree-to-ast-transformer-module) -- [Tylasu](https://strumenta.github.io/tylasu/classes/mapping.parsetreetoasttransformer.html) \ No newline at end of file diff --git a/Writerside/topics/Position.md b/Writerside/topics/Position.md deleted file mode 100644 index 541d655..0000000 --- a/Writerside/topics/Position.md +++ /dev/null @@ -1,8 +0,0 @@ -# Position - -Each Node can have an associated position. It indicates a in textual files - -A Position has a start and an end Point. Each position is relative to a certain Source, which is optional. - -A Point has a Line and a Column (both integer values). The first line of a file is Line 1. -The first Column of each line is 0. The starting point of file has therefore Line=1 and Column=0. diff --git a/Writerside/topics/SemanticEnrichment.md b/Writerside/topics/SemanticEnrichment.md deleted file mode 100644 index 1883ad5..0000000 --- a/Writerside/topics/SemanticEnrichment.md +++ /dev/null @@ -1,21 +0,0 @@ -# Semantic Enrichment - -People who are new to parser development may attempt to enforce grammar-level type coherence. For example, defining that a variable declared with type int can only have a subset of the expression types as its initial value, that doesn't work and can increase the complexity of writing a grammar and still not obtaining the desired constraints. - -In general, it is preferable to be less strict in the grammar and Parse Tree to AST Mapping, identifying discrepancies as the final AST processing step. - -The benefits of doing so are: - -- Simpler grammars; -- Better error messages; - -Semantic checks are the mechanisms that are meant to check/identify possible discrepancies in a syntactically correct input. It is an advanced feature and it is not implemented in most parsers, only when specifically requested/needed. - -## Semantic Checks - -- [](SymbolResolution.md); -- Type System checks; -- Other checks such as: - - Two symbols with the same name declared in the same scope; - - Variables used before being declared; - - etc... diff --git a/Writerside/topics/Serialization.md b/Writerside/topics/Serialization.md deleted file mode 100644 index 894d47e..0000000 --- a/Writerside/topics/Serialization.md +++ /dev/null @@ -1,8 +0,0 @@ -# Serialization - -In addition to what is described here, there is also EMF serialization, which is discussed separately. See [EMF](EMFInteroperability.md). - -StarLasu Tools supports exporting ASTs to JSON and XML. -Additionally, [kolasu](https://github.com/Strumenta/kolasu/blob/main/lionweb/src/main/kotlin/com/strumenta/kolasu/lionweb/LionWebModelConverter.kt) and [tylasu](https://github.com/Strumenta/tylasu/blob/master/src/interop/lionweb.ts) support import/export from the LionWeb format - -_See in [Kolasu](https://github.com/Strumenta/kolasu/tree/main/serialization/src/main/kotlin)_. diff --git a/Writerside/topics/SymbolResolution.md b/Writerside/topics/SymbolResolution.md deleted file mode 100644 index b67cc06..0000000 --- a/Writerside/topics/SymbolResolution.md +++ /dev/null @@ -1,65 +0,0 @@ -# Symbol Resolution - -The objective of symbol resolution consists in linking name-based textual references to the corresponding node entity in the Abstract Syntax Tree (AST). StarLasu provides support for implementing such process with the following building blocks: - -* `PossiblyNamed` and `Named` interfaces can be implemented for nodes that can be referenced - see [Naming](Naming.md); -* `ReferenceByName` properties can be defined in nodes to represent links to other nodes; -* `SymbolResolver` instances can be configured to specify symbol resolution logic for each property or node type; -* `Scope` instances are used to resolve each reference in the AST; - -## Representing references among nodes - -References between nodes are implemented using `ReferenceByName` instances in StarLasu. These keep track of the relationship between a `name` and the `referred` node, which might be absent until the symbol resolution phase and must be a sub-type of `PossiblyNamed`. - -In [Kolasu](https://github.com/Strumenta/kolasu), for example, we can define a node `Person` containing a reference `friend` towards another `Person` as follows: -```kotlin -data class Person( - override val name: String, - val friend: ReferenceByName // <-- reference to another `Person` -) : PossiblyNamed -``` -Instances can then be created providing the `name` of the referred `Person` instance. As regards the actual referenced object, it might be provided as `initialReferred` value if known or left unresolved until symbol resolution. -```kotlin -// reference by name using `name` only -val first: Person = Person(friend = ReferenceByName("second")) -// reference by name using `initialReferred` value and `name` -val second: Person = Person(friend = ReferenceByName("first", first)) -``` -In general, references can be resolved using one or more candidates, as follows -```kotlin -second.tryToResolve(first) // <-- `first` is the only candidate -second.tryToResolve(listOf(first, second, others)) // <-- list of candidates -``` -While it is possible to manually implement symbol resolution by traversing the AST and updating the `referred` value for each `ReferenceByName` property, StarLasu provides support for the declarative specification of symbol resolution rules, as shown in the next section. - -## Declarative symbol resolution - -As mentioned in the previous section, it is surely possible to manually implement symbol resolution as some kind of tree-traversal algorithm. However, StarLasu provides support to ease such task and allows the developer to focus on language-specific concerns by providing rules for each reference in a given AST. - -Symbol resolution rule specifications consist of three parts: - -* __guard__ - the reference property for which we want to provide a scope; -* __context__ - the node from which we want to compute the scope; -* __body__ - the actual scope definition, i.e. `Scope` instance; - -Each rule produces a `Scope` instance that is used to resolve a given property. Given a property, StarLasu adopts a precise rule resolution schema. Considering `Person::friend`, for example, the following steps will be performed: - -1) lookup for a property-based rule having `Person::friend` as guard and `Person` as context; -2) lookup for a property-based rule having `Person::friend` as guard and any ancestor of the `Person` node as context; - -As soon as one rule is found, the symbol resolver will use it to resolve the reference. - -In our example, we could define that `friend` reference candidates should correspond to aggregating all `Person` instances contained in the `CompilationUnit` of the AST as follows: -```kotlin -val symbolResolver = symbolResolver { - // property-based rule for Person::friend property - scopeFor(Person::friend) { - scope { - it.findAncestorOfType(CompilationUnit::class.java) - ?.walk() - ?.filterIsInstance() - ?.forEach(this::define) - } - } -} -``` diff --git a/Writerside/topics/Testing.md b/Writerside/topics/Testing.md deleted file mode 100644 index bfb5eaf..0000000 --- a/Writerside/topics/Testing.md +++ /dev/null @@ -1,24 +0,0 @@ -# Testing - -StarLasu offers support for comparing parse trees and ASTs. - -See `assertParseTreeStr`, `assertParsingResultsAreEqual`, and `assertASTsAreEqual` in Kolasu. - -## Coverage of the grammar - -Related to this, there is experimental support for verifying the Coverage of a grammar by the examples we have. See [CoverageListener](https://github.com/Strumenta/kolasu/blob/master/core/src/main/kotlin/com/strumenta/kolasu/parsing/coverage/CoverageListener.kt) in Kolasu. - -The goal is that, given a grammar and a set of examples, we want to understand: - -- How many possible paths in the grammar are covered -- Which alternatives are not covered, so that we can look for appropriate examples - -Another solution is to verify the coverage of the generated ANTLR Parser. - -## Performance testing - -_To be written._ - -## Test the parser on examples - -In practice it is often convenient to run the parser on a larget set of examples and just check if the parser can handle them without finding errors. diff --git a/Writerside/topics/TransformationFramework.md b/Writerside/topics/TransformationFramework.md deleted file mode 100644 index 599d3ca..0000000 --- a/Writerside/topics/TransformationFramework.md +++ /dev/null @@ -1,93 +0,0 @@ -# Transformation Framework - -In general we may want to process ASTs and use their information to produce something else. For example, to generate a diagram or to generate code. - -A particular case is the transformation of an AST into another AST. This is typically done within transpilers. - -## Example of refactoring within the same language - -One usage of transformations is to perform refactoring within the same AST. For example, let's suppose that we have this language: - -``` -enum class Operator { - PLUS, MULT -} -sealed class Expression : Node() -data class IntLiteral(val value: Int) : Expression() -data class GenericBinaryExpression(val operator: Operator, val left: Expression, val right: Expression) : Node() -data class Mult(val left: Expression, val right: Expression) : Node() -data class Sum(val left: Expression, val right: Expression) : Node() -``` - -We then decide to transform an AST by removing instances of `GenericBinaryExpression` and replace them with `Mult` or `Sum`. We can do that in this way: - -``` -val myTransformer = ASTTransformer(allowGenericNode = false).apply { - registerNodeFactory(GenericBinaryExpression::class) { source: GenericBinaryExpression -> - when (source.operator) { - Operator.MULT -> Mult(transform(source.left) as Expression, transform(source.right) as Expression) - Operator.PLUS -> Sum(transform(source.left) as Expression, transform(source.right) as Expression) - } - } - // This may benefit of specific support: for example a NodeFactory that returns the same element - registerNodeFactory(IntLiteral::class) { source: IntLiteral -> source } -} -assertASTsAreEqual( - Mult(IntLiteral(7), IntLiteral(8)), - myTransformer.transform(GenericBinaryExpression(Operator.MULT, IntLiteral(7), IntLiteral(8)))!! -) -assertASTsAreEqual( - Sum(IntLiteral(7), IntLiteral(8)), - myTransformer.transform(GenericBinaryExpression(Operator.PLUS, IntLiteral(7), IntLiteral(8)))!! -) -``` - -## Example of translation to another language - -Let's consider two languages. In this example they have exactly the same structure: - -``` -sealed class ALangExpression : Node() -data class ALangIntLiteral(val value: Int) : ALangExpression() -data class ALangSum(val left: ALangExpression, val right: ALangExpression) : ALangExpression() -data class ALangMult(val left: ALangExpression, val right: ALangExpression) : ALangExpression() - -sealed class BLangExpression : Node() -data class BLangIntLiteral(val value: Int) : BLangExpression() -data class BLangSum(val left: BLangExpression, val right: BLangExpression) : BLangExpression() -data class BLangMult(val left: BLangExpression, val right: BLangExpression) : BLangExpression() -``` - -While this is a toy example it is true that many languages shares similar structures. Think of literals, mathematical operations, or basic control flow structures such as if-statements: they have the same structures in languages which are very different. - -We could build a transformer that given an AST of `ALang` produces the corresponding AST of `BLang`: - -``` -val myTransformer = ASTTransformer(allowGenericNode = false).apply { - registerNodeFactory(ALangIntLiteral::class) { source: ALangIntLiteral -> BLangIntLiteral(source.value) } - registerNodeFactory(ALangSum::class) { source: ALangSum -> - BLangSum(transform(source.left) as BLangExpression, transform(source.right) as BLangExpression) - } - registerNodeFactory(ALangMult::class) { source: ALangMult -> - BLangMult(transform(source.left) as BLangExpression, transform(source.right) as BLangExpression) - } -} -assertASTsAreEqual( - BLangMult( - BLangSum( - BLangIntLiteral(1), - BLangMult(BLangIntLiteral(2), BLangIntLiteral(3)) - ), - BLangIntLiteral(4) - ), - myTransformer.transform( - ALangMult( - ALangSum( - ALangIntLiteral(1), - ALangMult(ALangIntLiteral(2), ALangIntLiteral(3)) - ), - ALangIntLiteral(4) - ) - )!! -) -``` \ No newline at end of file diff --git a/Writerside/topics/TypeChecking.md b/Writerside/topics/TypeChecking.md deleted file mode 100644 index 54b47c9..0000000 --- a/Writerside/topics/TypeChecking.md +++ /dev/null @@ -1,3 +0,0 @@ -# Type Checking - -_To be written_. \ No newline at end of file diff --git a/Writerside/topics/Use-Cases.md b/Writerside/topics/Use-Cases.md deleted file mode 100644 index e879adf..0000000 --- a/Writerside/topics/Use-Cases.md +++ /dev/null @@ -1,3 +0,0 @@ -# Use Cases - -Here we group a few different Use Cases for the Starlasu Approach. \ No newline at end of file diff --git a/Writerside/topics/Validation.md b/Writerside/topics/Validation.md deleted file mode 100644 index ea93bdc..0000000 --- a/Writerside/topics/Validation.md +++ /dev/null @@ -1,10 +0,0 @@ -# Validation - -We have a concept of `Issue`. Each issue has a message, a position, a IssueSeverity, and an IssueType. - -The `IssueType` can be lexical, syntactic, semantic, or translation. -The `IssueSeverity` can be info, warning, or error. - -A `Result` is an object that has a root and a list of issues, with methods that allow to retrieve issues of a specific type or severity and check if there are no issues - -_See in [Kolasu Issue](https://github.com/Strumenta/kolasu/blob/main/ast/src/commonMain/kotlin/com/strumenta/kolasu/validation/Validation.kt)_ _and [Kolasu Result](https://github.com/Strumenta/kolasu/blob/main/ast/src/commonMain/kotlin/com/strumenta/kolasu/validation/Result.kt)_. diff --git a/Writerside/topics/usecases/building-codegenerator.md b/Writerside/topics/usecases/building-codegenerator.md deleted file mode 100644 index 66e8b5c..0000000 --- a/Writerside/topics/usecases/building-codegenerator.md +++ /dev/null @@ -1,12 +0,0 @@ -# Building a code generator - -A code generator is a component that given an AST permits to generate code (i.e., text). - -It can be a component inside a [transpiler](building-transpiler.md), or it can be used by itself to output source code -from an AST that we've constructed programmatically (that is, explicitly creating and combining nodes, rather than -starting from the output of a parser). - -This use case is currently being improved in StarLasu. At the moment, we're experimenting in internal projects such as -StarLasu-Tools (to generate Kotlin and Python). In the future more support is planned to be added in StarLasu itself. - -For more information about code generation options and techniques, please refer to our [Guide to Code Generation](https://tomassetti.me/code-generation/). diff --git a/Writerside/topics/usecases/building-transpiler.md b/Writerside/topics/usecases/building-transpiler.md deleted file mode 100644 index 2743e55..0000000 --- a/Writerside/topics/usecases/building-transpiler.md +++ /dev/null @@ -1,19 +0,0 @@ -# Building a transpiler - -The general approach to design transpilers has been described in the article [How to write a transpiler](https://tomassetti.me/how-to-write-a-transpiler/). - -In general these are the steps: - -- The original code is parsed, obtaining the original AST (see [Building parsers](building-parser.md)) -- Transformations are performed to go from the original AST to the target AST (see [AST Transformations](../transformations.md)). If necessary, we can add intermediate transformation steps. -- Target code is generated from the target AST (see [Building code generators](building-codegenerator.md)) - -For example, suppose we want to translate RPG into Java: - -- We will use an [RPG Parser](https://strumenta.com/parser-for-rpg/), obtaining an RPG AST. -- We will implement AST transformations to transform the RPG AST into a Java AST, defined using e.g. Kolasu. The Java - AST specifically is a component that Strumenta has developed and can license. However, it's also possible to build - another one independently, using Kolasu or other StarLasu libraries. -- We will use a [code generator](building-codegenerator.md) to generate Java code from the Java AST. The code generator - could be a pre-built component, too, or we may develop it with support from StarLasu and possibly other libraries (e.g. a templating engine). - diff --git a/Writerside/v.list b/Writerside/v.list deleted file mode 100644 index 2d12cb3..0000000 --- a/Writerside/v.list +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/Writerside/writerside.cfg b/Writerside/writerside.cfg deleted file mode 100644 index d62d75d..0000000 --- a/Writerside/writerside.cfg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..b2d6de3 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,20 @@ +# Dependencies +/node_modules + +# Production +/build + +# Generated files +.docusaurus +.cache-loader + +# Misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..4b06373 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,67 @@ +# Starlasu Documentation + +This directory contains the Docusaurus-based documentation for the Starlasu project. + +## Getting Started + +### Prerequisites + +- Node.js 18.0 or above +- npm or yarn + +### Installation + +```bash +npm install +``` + +### Development + +Start the development server: + +```bash +npm start +``` + +This will start the documentation site at [http://localhost:3000](http://localhost:3000). + +### Building + +Build the documentation for production: + +```bash +npm run build +``` + +### Serving + +Serve the built documentation locally: + +```bash +npm run serve +``` + +## Project Structure + +- `docs/` - Documentation markdown files +- `src/` - React components and pages +- `static/` - Static assets (images, etc.) +- `docusaurus.config.ts` - Docusaurus configuration +- `sidebars.ts` - Sidebar navigation configuration + +## Adding Content + +### New Documentation Pages + +1. Create a new markdown file in the `docs/` directory +2. Add frontmatter with metadata (id, title, sidebar_label) +3. Update `sidebars.ts` to include the new page +4. Add any necessary images to `static/img/` + +### Updating Navigation + +Edit `sidebars.ts` to modify the documentation structure and navigation. + +## Deployment + +The documentation can be deployed to GitHub Pages or any static hosting service using the built files from `npm run build`. diff --git a/docs/docs/ast-representation.md b/docs/docs/ast-representation.md new file mode 100644 index 0000000..bd5d661 --- /dev/null +++ b/docs/docs/ast-representation.md @@ -0,0 +1,118 @@ +--- +id: ast-representation +title: AST Representation +sidebar_label: AST Representation +--- + +# AST Representation + +Starlasu operates on Abstract Syntax Trees (ASTs) (or _Code Models_). These are tree-like data structures to represent +the information contained in a piece of formal language or "code". For example, the statements in a procedural program, +the data elements in a SQL query, or the steps in a business workflow. + +All the Starlasu ASTs are based on a few primitive elements. + +The structure is similar to the one used by other Modeling solutions such as [EMF](https://eclipse.dev/modeling/emf/), +[MPS](https://www.jetbrains.com/mps/), or [LionWeb](https://lionweb.io/). +In particular we aim to (mostly) converge to the same terminology used in LionWeb +(see the [LioWeb's specifications](https://lionweb.io/specification/metametamodel/metametamodel.html)). + +This is a representation of the whole structure. + +```mermaid +--- +title: Starlasu M3 +--- +classDiagram + +class Language { + qualifiedName: String + simpleName: String +} +Language "1" *--> "0..*" Type: types + +class Type { + <> + name: String +} +Type <|-- Classifier +Type <|-- DataType + +%% Concepts + +class Classifier { + <> +} +Classifier "1" *--> "0..*" Feature: features +Classifier <|-- Concept +Classifier <|-- ConceptInterface +Classifier <|-- Annotation + +class Concept +Concept "1" --> "0..1" Concept: extends +Concept "1" --> "0..*" ConceptInterface: implements + +class ConceptInterface +ConceptInterface "1" --> "0..*" ConceptInterface: extends + +%% Features + +class Feature { + <> + name: String + multiplicity: Multiplicity +} +Feature <|-- Property +Feature <|-- Link +Feature "1" --> "1" Type: type + +class Property { + type: DataType +} +class Link { + <> + type: Classifier +} +Link <|-- Containment +Link <|-- Reference + +class Containment +class Reference + +class Annotation { + multiple: Boolean +} +Annotation "1" --> "0..1" Annotation: extends +Annotation "1" --> "0..*" ConceptInterface: implements +Annotation "1" --> "0..1" Classifier: annotates + +%% DataTypes + +class DataType { + <> +} + +DataType <|-- PrimitiveType +class PrimitiveType + +DataType <|-- EnumType +class EnumType +EnumType "1" *--> "0..*" EnumerationLiteral: literals + +class EnumerationLiteral { + name: String +} + +%% Supporting enumerations +``` + +The AST representation in Starlasu follows a hierarchical structure where: + +- **Language**: The top-level container that holds all types +- **Type**: Abstract base for all types in the language +- **Classifier**: Abstract base for concepts, interfaces, and annotations +- **Concept**: Concrete classes that can extend other concepts and implement interfaces +- **Feature**: Properties and links that define the structure of classifiers +- **DataType**: Primitive types and enums for basic values + +This structure provides a flexible foundation for representing any formal language or code structure while maintaining consistency across different Starlasu implementations. \ No newline at end of file diff --git a/docs/docs/ast-traversal-and-querying.md b/docs/docs/ast-traversal-and-querying.md new file mode 100644 index 0000000..4b5cab2 --- /dev/null +++ b/docs/docs/ast-traversal-and-querying.md @@ -0,0 +1,55 @@ +--- +id: ast-traversal-and-querying +title: AST Traversal and Querying +sidebar_label: AST Traversal and Querying +--- + +# AST Traversal and Querying + +AST traversal and querying are fundamental operations for analyzing and transforming code structures in Starlasu. + +## Traversal Patterns + +Starlasu provides several traversal patterns: + +- **Depth-First**: Visit all children before siblings +- **Breadth-First**: Visit all siblings before children +- **Custom Traversal**: Define your own traversal order + +## Querying Capabilities + +Query your ASTs using: + +- **Type-based Queries**: Find all nodes of a specific type +- **Property-based Queries**: Filter by node properties +- **Relationship Queries**: Navigate parent-child relationships +- **Path Queries**: Find nodes along specific paths + +## Common Use Cases + +- **Code Analysis**: Find all function calls or variable declarations +- **Refactoring**: Identify code patterns for transformation +- **Metrics**: Count and analyze code structures +- **Validation**: Check code against rules and constraints + +## Implementation + +Starlasu libraries provide: + +- **Visitor Pattern**: Traditional traversal approach +- **Query APIs**: High-level querying capabilities +- **Lazy Evaluation**: Efficient processing of large ASTs +- **Caching**: Optimize repeated queries + +## Example + +```kotlin +// Find all function calls +val functionCalls = ast.findAll() + +// Find nodes with specific properties +val publicMethods = ast.findAll { it.isPublic } + +// Navigate relationships +val parentClass = node.parent() +``` \ No newline at end of file diff --git a/docs/docs/building-codegenerator.md b/docs/docs/building-codegenerator.md new file mode 100644 index 0000000..f87fc1e --- /dev/null +++ b/docs/docs/building-codegenerator.md @@ -0,0 +1,47 @@ +--- +id: building-codegenerator +title: Building a Code Generator +sidebar_label: Building a Code Generator +--- + +# Building a Code Generator + +Code generators create output files from AST representations, enabling automated code production for various purposes. + +## Use Cases + +- **API Client Generation**: Create client libraries from API specifications +- **Database Access Layers**: Generate ORM code from database schemas +- **Configuration Code**: Produce configuration classes from schema definitions +- **Test Code**: Automatically generate test fixtures and mocks + +## Architecture + +The code generator follows a simple pattern: + +1. **Input**: AST representation of the source model +2. **Template Processing**: Apply templates or generation rules +3. **Output**: Generated source code in the target language + +## Key Features + +- **Template System**: Use templates for consistent code structure +- **Customization**: Support for project-specific generation rules +- **Validation**: Ensure generated code meets quality standards +- **Incremental Generation**: Update only changed portions + +## Implementation with Starlasu + +Starlasu provides: + +- **ASTCodeGenerator**: Base class for building generators +- **Printing Utilities**: Methods for formatted code output +- **Indentation Management**: Automatic code formatting +- **Testing Support**: Tools for validating generated output + +## Best Practices + +- Separate generation logic from business logic +- Use templates for maintainable generation rules +- Implement comprehensive testing of generated code +- Provide customization hooks for different use cases \ No newline at end of file diff --git a/Writerside/topics/usecases/building-parser.md b/docs/docs/building-parser.md similarity index 83% rename from Writerside/topics/usecases/building-parser.md rename to docs/docs/building-parser.md index 4fd3575..5699c8c 100644 --- a/Writerside/topics/usecases/building-parser.md +++ b/docs/docs/building-parser.md @@ -1,3 +1,9 @@ +--- +id: building-parser +title: Building a Parser +sidebar_label: Building a Parser +--- + # Building a parser Building parsers is the most traditional use case. Kolasu was initially created with this goal in mind and tens of commercial parsers have been @@ -12,14 +18,13 @@ An initial version may also be generated from the ANTLR grammar, by using StarLa We then organize the parser into a pipeline: 1. First-stage parsing using ANTLR. We obtain a parse tree and, possibly, a series of errors. -2. Second-stage parsing. [The parse tree is mapped into the AST](ParseTreeToASTMapping.md) +2. Second-stage parsing. [The parse tree is mapped into the AST](./parse-tree-to-ast-mapping) 3. Potentially, for some parsers, we perform additional steps, such as: - 1. [Symbol resolution](SymbolResolution.md) - 2. [Type checking](TypeChecking.md) + 1. [Symbol resolution](./symbol-resolution) + 2. [Type checking](./type-checking) 3. Advanced calculations such as lineage, data flow analysis, linting, etc. The StarLasu ASTs provide a more convenient API with respect to the ANTLR APIs for parse trees. In fact, StarLasu comes with additional features such as serialization and support for symbol resolution. Finally, when mapping the parse tree into an AST, we drop implementation details of the grammar from the tree, and we organize the information in the most -convenient way for users. - +convenient way for users. \ No newline at end of file diff --git a/docs/docs/building-transpiler.md b/docs/docs/building-transpiler.md new file mode 100644 index 0000000..c2f5c4f --- /dev/null +++ b/docs/docs/building-transpiler.md @@ -0,0 +1,40 @@ +--- +id: building-transpiler +title: Building a Transpiler +sidebar_label: Building a Transpiler +--- + +# Building a Transpiler + +A transpiler translates code from one programming language to another, making it easier to migrate legacy codebases or create cross-platform solutions. + +## Architecture + +The transpiler follows a three-stage pipeline: + +1. **Source Language Parsing**: Parse the input code into an AST +2. **Transformation**: Convert the source AST to a target language AST +3. **Code Generation**: Generate the final target language code + +## Key Components + +- **Source Parser**: Understands the input language syntax +- **Target Generator**: Produces code in the target language +- **Transformation Engine**: Maps between language constructs +- **Symbol Resolution**: Handles cross-language reference mapping + +## Benefits + +- **Legacy Migration**: Modernize old codebases +- **Cross-Platform**: Share code between different environments +- **Language Evolution**: Gradually adopt new language features +- **Tool Reuse**: Leverage existing language tools and ecosystems + +## Implementation + +Using Starlasu, you can build transpilers by: + +1. Creating parsers for both source and target languages +2. Defining transformation rules between AST structures +3. Implementing code generators for the target language +4. Testing with round-trip validation (parse → transform → generate → re-parse) \ No newline at end of file diff --git a/Writerside/topics/ChiselMethod.md b/docs/docs/chisel-method.md similarity index 94% rename from Writerside/topics/ChiselMethod.md rename to docs/docs/chisel-method.md index 381fc68..0423996 100644 --- a/Writerside/topics/ChiselMethod.md +++ b/docs/docs/chisel-method.md @@ -1,3 +1,9 @@ +--- +id: chisel-method +title: The Chisel Method +sidebar_label: The Chisel Method +--- + # The Chisel Method The Chisel method allows to build parsers consistently using the same approach which allows to achieve a consistency on the architectural decisions and enables developers to get familiar with a project easily. @@ -8,7 +14,8 @@ The Chisel method is based on the following principles: 1. We define a clear goal, which is shared by the Client and the Language Engineering Team. This goal is objective, and it is not subject to interpretation. 2. At each step, the Language Engineering Team should clearly understand where we are and what should be done next - parsing and then refining the produced AST. Tool support should facilitate each single step, removing friction due to repetitive tasks. For this the StarLasu Libraries can be used since it provides user-friendly APIs for seamless integration as well as cross-language integration. 3. Ensure frictionless adoption by providing all support needed to facilitate the adoption of the parser inside a Language Engineering Pipeline. By automatically generating documentation and having a method that simplifies training processes. -![image.png](chiselMethod.png) + +![The Chisel Method](/img/chiselMethod.png) The Chisel method is based on the following steps: @@ -22,4 +29,4 @@ The Chisel method is based on the following steps: 2. Write a semantics module for more advanced codebase analysis and symbol resolution (optional). 3. Write a code generation module this if the final goal is to generate the code for a target language (optional). -Chisel is a method and a transformative approach to parsers development, ensuring efficiency, adaptability, and sustainability. +Chisel is a method and a transformative approach to parsers development, ensuring efficiency, adaptability, and sustainability. \ No newline at end of file diff --git a/Writerside/topics/CodeGeneration.md b/docs/docs/code-generation.md similarity index 95% rename from Writerside/topics/CodeGeneration.md rename to docs/docs/code-generation.md index 97c2b37..04c26a9 100644 --- a/Writerside/topics/CodeGeneration.md +++ b/docs/docs/code-generation.md @@ -1,3 +1,9 @@ +--- +id: code-generation +title: Code Generation +sidebar_label: Code Generation +--- + # Code Generation Code Generation modules are useful to generate new files programmatically. This is the case when building a transpiler, where there is the need to generate text (code) from an AST representation. @@ -8,7 +14,8 @@ Currently, Code Generation modules can be written with Kolasu and SharpLasu. The Code Generation implementation should be separated from any other modules and be called code-generation. This module will typically have as dependency an ast module. Next is presented an `build.gradle.kts` file example for a code generation module. Note that currently the gradle starlasu plugin is private. -``` kotlin + +```kotlin import com.strumenta.starlasugradleplugin.addGitHubPackagesRepo plugins { @@ -39,7 +46,7 @@ dependencies { The Code Generator class should be a subclass of `ASTCodeGenerator`, this class needs to override the `registerRecordPrinters` function. This function will contain a `recordPrinter` for each AST node, the implementation of the recordPrinter will determine the output generated for the node type. -``` kotlin +```kotlin class MyCodeGenerator : ASTCodeGenerator() { override fun registerRecordPrinters() { recordPrinter { @@ -70,7 +77,7 @@ For that unit testing can be done by writing the expected output in a file/strin It is also a good practise to have end-to-end tests, and one can follow 2 methods: -1. AST to AST testing: +1. **AST to AST testing**: - Parse an input file that contains the original code, obtaining a first AST; - Generate the code from this first AST, obtaining the generated code; @@ -79,10 +86,10 @@ It is also a good practise to have end-to-end tests, and one can follow 2 method This testing method is useful to test large examples, where it is hard to write the expected output manually. It allows to test the code generation in a more abstract way, where we check that the produced AST matches the one we expect. Of course it lacks coverage for code styling and formatting. -2. AST to code testing: +2. **AST to code testing**: - Parse a string that contains the original code to the target AST representation; - Generate the code from the target AST; - Compare the expected output with the generated output. -This testing method is useful to test smaller examples and cover styling and formatting of the code. It allows to test the code generation in a more concrete way, where we check that the produced code matches the one we expect. +This testing method is useful to test smaller examples and cover styling and formatting of the code. It allows to test the code generation in a more concrete way, where we check that the produced code matches the one we expect. \ No newline at end of file diff --git a/docs/docs/common-elements.md b/docs/docs/common-elements.md new file mode 100644 index 0000000..4352686 --- /dev/null +++ b/docs/docs/common-elements.md @@ -0,0 +1,53 @@ +--- +id: common-elements +title: Common Elements +sidebar_label: Common Elements +--- + +# Common Elements + +Common elements in Starlasu provide shared functionality and utilities that are used across different language engineering tools. + +## Core Components + +### AST Nodes +- **Base Classes**: Common functionality for all AST nodes +- **Position Tracking**: Source location information +- **Serialization**: Standard serialization support +- **Validation**: Common validation rules + +### Utilities +- **String Handling**: Text processing utilities +- **File Operations**: File reading and writing +- **Error Handling**: Standard error reporting +- **Logging**: Logging and debugging support + +## Shared Patterns + +### Design Patterns +- **Visitor Pattern**: Standard AST traversal +- **Builder Pattern**: AST construction utilities +- **Factory Pattern**: Node creation helpers +- **Observer Pattern**: Change notification + +### Common Operations +- **AST Traversal**: Standard traversal algorithms +- **Node Comparison**: AST comparison utilities +- **Copy Operations**: Deep copying and cloning +- **Merge Operations**: AST merging utilities + +## Benefits + +- **Code Reuse**: Share common functionality across tools +- **Consistency**: Maintain consistent behavior +- **Maintenance**: Centralize common code +- **Testing**: Shared test utilities + +## Implementation + +Starlasu provides: + +- **Base Classes**: Common base classes for all implementations +- **Utility Libraries**: Shared utility functions +- **Standard Interfaces**: Common interfaces and contracts +- **Testing Support**: Shared testing utilities \ No newline at end of file diff --git a/docs/docs/cross-platform-parsers.md b/docs/docs/cross-platform-parsers.md new file mode 100644 index 0000000..cdb049c --- /dev/null +++ b/docs/docs/cross-platform-parsers.md @@ -0,0 +1,54 @@ +--- +id: cross-platform-parsers +title: Cross-Platform Parsers +sidebar_label: Cross-Platform Parsers +--- + +# Cross-Platform Parsers + +Cross-platform parsers in Starlasu enable you to build language tools that work across different programming environments and platforms. + +## Platform Support + +### JVM Platform +- **Java**: Native Java implementation +- **Kotlin**: Kotlin-based implementation +- **Scala**: Scala integration support +- **Android**: Mobile development support + +### Web Platform +- **Node.js**: Server-side JavaScript +- **Browser**: Client-side JavaScript +- **TypeScript**: Type-safe JavaScript +- **WebAssembly**: High-performance web execution + +### Other Platforms +- **Python**: Python implementation +- **.NET**: C#, F#, VB.NET support +- **Native**: C/C++ integration + +## Benefits + +- **Code Reuse**: Share parser logic across platforms +- **Consistency**: Maintain consistent behavior across environments +- **Flexibility**: Choose the best platform for each use case +- **Ecosystem**: Leverage platform-specific tools and libraries + +## Implementation + +### Shared Components +- **Grammar Definitions**: Platform-independent language specifications +- **AST Models**: Common data structures across platforms +- **Testing**: Shared test suites and validation + +### Platform-Specific Features +- **Performance Optimization**: Platform-specific optimizations +- **Tool Integration**: Native platform tool integration +- **Library Ecosystem**: Platform-specific library usage + +## Use Cases + +- **Multi-Platform Tools**: Tools that work on multiple platforms +- **Language Servers**: Cross-platform language intelligence +- **Code Analysis**: Platform-independent code analysis +- **Documentation**: Generate docs for multiple platforms \ No newline at end of file diff --git a/docs/docs/documentation-generation.md b/docs/docs/documentation-generation.md new file mode 100644 index 0000000..baf768c --- /dev/null +++ b/docs/docs/documentation-generation.md @@ -0,0 +1,53 @@ +--- +id: documentation-generation +title: Documentation Generation +sidebar_label: Documentation Generation +--- + +# Documentation Generation + +Documentation generation in Starlasu automatically creates comprehensive documentation from your ASTs and language definitions. + +## Generated Documentation + +### API Documentation +- **Class References**: Complete class and interface documentation +- **Method Signatures**: Function and method documentation +- **Property Details**: Field and property descriptions +- **Type Information**: Type definitions and constraints + +### Language Documentation +- **Grammar Rules**: Language syntax and structure +- **Examples**: Code examples and usage patterns +- **Best Practices**: Language-specific guidelines +- **Migration Guides**: Language evolution documentation + +## Output Formats + +### Web Documentation +- **HTML**: Web-based documentation +- **Markdown**: Plain text documentation +- **PDF**: Printable documentation +- **Interactive**: Searchable and navigable docs + +### API References +- **Javadoc**: Java-style documentation +- **JSDoc**: JavaScript documentation +- **XML Documentation**: .NET-style documentation +- **Custom Formats**: Project-specific documentation + +## Benefits + +- **Automation**: Generate docs automatically from code +- **Consistency**: Maintain consistent documentation style +- **Completeness**: Ensure all elements are documented +- **Maintenance**: Keep docs in sync with code changes + +## Implementation + +Starlasu provides: + +- **Documentation Generators**: Base classes for building doc generators +- **Template System**: Customizable documentation templates +- **Format Support**: Multiple output format support +- **Integration**: Work with existing documentation tools \ No newline at end of file diff --git a/docs/docs/dual-code-model-apis.md b/docs/docs/dual-code-model-apis.md new file mode 100644 index 0000000..060c372 --- /dev/null +++ b/docs/docs/dual-code-model-apis.md @@ -0,0 +1,68 @@ +--- +id: dual-code-model-apis +title: Dual Code Model APIs +sidebar_label: Dual Code Model APIs +--- + +# Dual Code Model APIs + +Starlasu provides two complementary APIs for working with ASTs: homogeneous and heterogeneous APIs. + +## Homogeneous API + +The homogeneous API treats all AST nodes uniformly: + +- **Type Safety**: All nodes have the same interface +- **Generic Operations**: Apply operations to any node type +- **Reflection**: Access properties dynamically +- **Flexibility**: Work with unknown node types + +## Heterogeneous API + +The heterogeneous API provides type-specific operations: + +- **Type-Specific Methods**: Access properties and methods specific to each node type +- **Compile-Time Safety**: Catch errors at compile time +- **IntelliSense**: Better IDE support and autocomplete +- **Performance**: Optimized for specific node types + +## When to Use Each + +### Use Homogeneous API when: +- Working with unknown or generic node types +- Implementing generic algorithms +- Building tools that work with any AST +- Need for dynamic property access + +### Use Heterogeneous API when: +- Working with known node types +- Building type-specific functionality +- Need for compile-time safety +- Performance is critical + +## Implementation + +Starlasu libraries provide both APIs: + +- **Base Classes**: Common functionality for all nodes +- **Type-Specific Classes**: Specialized behavior for each node type +- **Conversion Methods**: Switch between API styles +- **Hybrid Approaches**: Combine both APIs as needed + +## Example + +```kotlin +// Homogeneous API +val allNodes = ast.findAll() +allNodes.forEach { node -> + val name = node.getProperty("name") + // Work with any node type +} + +// Heterogeneous API +val functions = ast.findAll() +functions.forEach { func -> + val name = func.name // Type-safe access + val params = func.parameters // Type-specific property +} +``` \ No newline at end of file diff --git a/docs/docs/editor-support.md b/docs/docs/editor-support.md new file mode 100644 index 0000000..37e7b95 --- /dev/null +++ b/docs/docs/editor-support.md @@ -0,0 +1,51 @@ +--- +id: editor-support +title: Editor Support +sidebar_label: Editor Support +--- + +# Editor Support + +Editor support in Starlasu enables integration with IDEs and text editors, providing language intelligence and development tools. + +## Language Intelligence Features + +### Code Navigation +- **Go to Definition**: Jump to symbol definitions +- **Find References**: Locate all usages of a symbol +- **Symbol Search**: Search for symbols across the codebase +- **Outline View**: Display code structure hierarchy + +### Code Completion +- **IntelliSense**: Context-aware code suggestions +- **Auto-completion**: Complete code as you type +- **Parameter Hints**: Show function parameter information +- **Snippet Support**: Insert common code patterns + +### Error Detection +- **Real-time Validation**: Show errors as you type +- **Syntax Highlighting**: Highlight code structure +- **Semantic Errors**: Detect logical and type errors +- **Quick Fixes**: Suggest solutions for common issues + +## Editor Integration + +### Language Server Protocol (LSP) +- **Standard Interface**: Work with any LSP-compatible editor +- **Cross-Platform**: Support for multiple operating systems +- **Rich Features**: Full language intelligence capabilities + +### IDE Plugins +- **IntelliJ IDEA**: Native integration with JetBrains IDEs +- **VS Code**: Extension for Visual Studio Code +- **Eclipse**: Plugin for Eclipse IDE +- **Vim/Emacs**: Support for text-based editors + +## Implementation + +Starlasu provides: + +- **LSP Implementation**: Language server for editor integration +- **AST Analysis**: Fast analysis for real-time feedback +- **Incremental Parsing**: Efficient parsing for large files +- **Performance Optimization**: Responsive editor experience \ No newline at end of file diff --git a/docs/docs/emf-interoperability.md b/docs/docs/emf-interoperability.md new file mode 100644 index 0000000..393b5d8 --- /dev/null +++ b/docs/docs/emf-interoperability.md @@ -0,0 +1,37 @@ +--- +id: emf-interoperability +title: EMF Interoperability +sidebar_label: EMF Interoperability +--- + +# EMF Interoperability + +EMF (Eclipse Modeling Framework) interoperability in Starlasu enables integration with the Eclipse ecosystem and EMF-based tools. + +## EMF Integration + +### Model Exchange +- **ECore Models**: Import and export EMF Ecore models +- **XMI Serialization**: Exchange models in XMI format +- **Model Validation**: Use EMF validation frameworks + +### Tool Integration +- **Eclipse Plugins**: Build Eclipse-based language tools +- **EMF Editors**: Create visual model editors +- **Model Transformations**: Use EMF transformation frameworks + +## Benefits + +- **Eclipse Ecosystem**: Leverage existing Eclipse tools and plugins +- **Visual Modeling**: Create graphical model editors +- **Standards Compliance**: Follow EMF modeling standards +- **Tool Integration**: Work with EMF-based development tools + +## Implementation + +Starlasu provides: + +- **ECore Adapters**: Convert between Starlasu and EMF models +- **XMI Support**: Import/export models in XMI format +- **Validation Integration**: Use EMF validation with Starlasu models +- **Editor Support**: Create EMF-based visual editors \ No newline at end of file diff --git a/docs/docs/features.md b/docs/docs/features.md new file mode 100644 index 0000000..276a469 --- /dev/null +++ b/docs/docs/features.md @@ -0,0 +1,32 @@ +--- +id: features +title: Features +sidebar_label: Features +--- + +# Features + +This section covers all the core features of the Starlasu approach, including: + +- **Serialization**: How to serialize and deserialize ASTs +- **Position**: Handling source code positions and locations +- **Origin and Destination**: Managing source and target information +- **Parse Tree to AST Mapping**: Converting parse trees to ASTs +- **Naming**: Handling identifiers and naming conventions +- **Cross-Platform Parsers**: Building parsers that work across platforms +- **Common Elements**: Shared components and utilities +- **Transformation Framework**: Tools for transforming ASTs +- **Code Generation**: Generating code from ASTs +- **Dual Code Model APIs**: Both homogeneous and heterogeneous APIs +- **Documentation Generation**: Creating documentation from ASTs +- **Testing**: Testing strategies for language tools +- **AST Traversal and Querying**: Navigating and querying ASTs +- **Interoperability**: Working with other tools and formats +- **Semantic Enrichment**: Adding semantic information to ASTs +- **Editor Support**: Building editor integrations +- **AST Representation**: Core AST structure and design +- **Validation**: Validating ASTs and language rules +- **Symbol Resolution**: Resolving references and symbols +- **Type Checking**: Type analysis and validation + +Explore each feature to understand how it fits into the Starlasu ecosystem and how to use it effectively in your language engineering projects. \ No newline at end of file diff --git a/docs/docs/interoperability.md b/docs/docs/interoperability.md new file mode 100644 index 0000000..fd96e94 --- /dev/null +++ b/docs/docs/interoperability.md @@ -0,0 +1,49 @@ +--- +id: interoperability +title: Interoperability +sidebar_label: Interoperability +--- + +# Interoperability + +Interoperability in Starlasu enables integration with other tools, frameworks, and ecosystems in the language engineering space. + +## Cross-Platform Libraries + +Starlasu provides libraries for multiple platforms: + +- **Kolasu**: JVM-based implementation (Java, Kotlin) +- **Tylasu**: Node.js and browser implementation (TypeScript/JavaScript) +- **Pylasu**: Python implementation +- **Sharplasu**: .NET implementation (C#, F#, VB.NET) + +## Standard Formats + +### AST Exchange +- **JSON Serialization**: Human-readable AST representation +- **Binary Format**: Compact AST storage and transmission +- **XML Export**: Integration with XML-based tools + +### Language Integration +- **Language Server Protocol**: Standard IDE integration +- **Tree-sitter**: Integration with tree-sitter parsers +- **ANTLR**: Support for ANTLR-generated parse trees + +## External Tool Integration + +### Modeling Tools +- **EMF**: Eclipse Modeling Framework integration +- **MPS**: JetBrains Meta Programming System support +- **LionWeb**: Standard modeling framework integration + +### Development Tools +- **Build Systems**: Maven, Gradle, npm integration +- **CI/CD**: Automated testing and deployment +- **Documentation**: Integration with documentation generators + +## Benefits + +- **Tool Ecosystem**: Leverage existing language engineering tools +- **Platform Flexibility**: Work across different programming environments +- **Standards Compliance**: Follow industry standards and protocols +- **Vendor Independence**: Avoid lock-in to specific tools \ No newline at end of file diff --git a/Writerside/topics/StarlasuOverview.md b/docs/docs/intro.md similarity index 93% rename from Writerside/topics/StarlasuOverview.md rename to docs/docs/intro.md index a604e30..7ef5cf8 100644 --- a/Writerside/topics/StarlasuOverview.md +++ b/docs/docs/intro.md @@ -1,3 +1,8 @@ +--- +id: intro +title: Introduction +sidebar_label: Introduction +--- # The Starlasu Approach @@ -6,7 +11,7 @@ transpilers, code analyzers, interpreters, code generators, and domain-specific The Starlasu approach was developed at [Strumenta](https://strumenta.com), drawing on a decade of experience in Language Engineering projects. -It reflects lessons learned about what works and what doesn’t, +It reflects lessons learned about what works and what doesn't, combining this expertise to deliver reliable and adaptable language processing systems. ## What can you do with The Starlasu approach? @@ -25,12 +30,12 @@ transpilers. We typically implements these Parsers that are then used to build c The Starlasu approach is centered around the idea of **Code Model**. We have this component at the center and a constellation of other components interacting with it. -![Overview of the Starlasu Approach](../images/StarlasuOverview.png) +![Overview of the Starlasu Approach](/img/StarlasuOverview.png) ### The Code Model (or AST) The **Code Model** represents a representation of the information present in the code, in a form that facilitates reasoning about it and processing. It facilitates reasoning by being close to the mental model a developer would -have of the code and it facilitates processing through the [dualistic homogeneous and heterogeneous APIs](DualCodeModelAPIs.md). +have of the code and it facilitates processing through the [dualistic homogeneous and heterogeneous APIs](./dual-code-model-apis). The Code Model is an evolution of the Abstract Syntax Tree (AST). @@ -58,7 +63,7 @@ code string. ## What one gets from Starlasu? Starlasu consists of a mental framework and guidelines to build the different component. For example, we have a detailed -method to design and implement parsers (see [The Chisel Method](ChiselMethod.md)). +method to design and implement parsers (see [The Chisel Method](./chisel-method)). One also gets a family of libraries, all built around the same principles but for different programming languages. In this way one can conveniently use the Starlasu when programming in a multitude of programming languages. @@ -80,8 +85,8 @@ Below is a detailed matrix of the features provided by each of them: | Feature | Kolasu | Tylasu | Sharplasu | Pylasu | |----------------------------------------------|----------|-----------------|-------------------|-----------------| -| [AST Representation](ASTRepresentation.md) | Stable | Stable | Stable | Stable | -| [Semantic Enrichment](SemanticEnrichment.md) | Complete | Not implemented | Complete | Not implemented | +| [AST Representation](./ast-representation) | Stable | Stable | Stable | Stable | +| [Semantic Enrichment](./semantic-enrichment) | Complete | Not implemented | Complete | Not implemented | | Code Generation | Stable | Not implemented | Under development | Not implemented | | Parser Integration | Stable | Stable | Stable | Stable | | Editor Support | Partial | Partial | Not implemented | Not implemented | @@ -105,9 +110,8 @@ Starlasu combines the concept of a star and the shortand for language support. W have at the center one element (the code model), and everything else operates on it either producing code models, refining code models or consuming code model. - ## Origin of The Starlasu approach -The Starlasu approach originated from Strumenta’s commitment to simplifying and standardizing language engineering. +The Starlasu approach originated from Strumenta's commitment to simplifying and standardizing language engineering. In other words, we were not particularly keen reinventing the wheel and doing the same mistakes over and over, so we wanted to capture what we learned in one-hundred or so language engineering projects to overcome the typical pitfalls, get a design that was extensible, and that permitted to get where we want as fast and uneventfully as possible. diff --git a/docs/docs/methods.md b/docs/docs/methods.md new file mode 100644 index 0000000..d812504 --- /dev/null +++ b/docs/docs/methods.md @@ -0,0 +1,22 @@ +--- +id: methods +title: Methods +sidebar_label: Methods +--- + +# Methods + +This section covers the systematic approaches and methodologies developed within the Starlasu framework: + +## The Chisel Method + +The Chisel Method is a detailed methodology for designing and implementing parsers. It provides a systematic approach to: + +- **Parser Design**: Structured approach to parser architecture +- **Implementation Strategy**: Step-by-step implementation guidance +- **Best Practices**: Proven techniques and patterns +- **Common Pitfalls**: What to avoid and how to handle challenges + +The Chisel Method represents the distillation of years of experience in parser development, providing a reliable path from concept to working implementation. + +Explore the [Chisel Method](./chisel-method) to learn how to build robust and maintainable parsers using the Starlasu approach. \ No newline at end of file diff --git a/docs/docs/naming.md b/docs/docs/naming.md new file mode 100644 index 0000000..d50685f --- /dev/null +++ b/docs/docs/naming.md @@ -0,0 +1,53 @@ +--- +id: naming +title: Naming +sidebar_label: Naming +--- + +# Naming + +Naming conventions and handling in Starlasu ensure consistent and meaningful names across your language engineering tools. + +## Naming Conventions + +### Identifiers +- **Variable Names**: Descriptive and meaningful names +- **Function Names**: Action-oriented naming +- **Class Names**: Noun-based naming +- **Constant Names**: Uppercase with underscores + +### File Naming +- **Source Files**: Descriptive file names +- **Test Files**: Test-specific naming patterns +- **Configuration Files**: Clear configuration naming +- **Documentation Files**: Organized documentation naming + +## Naming Validation + +### Rules and Constraints +- **Length Limits**: Maximum and minimum name lengths +- **Character Sets**: Allowed characters and patterns +- **Reserved Words**: Language-specific reserved terms +- **Uniqueness**: Ensure names are unique within scope + +### Quality Checks +- **Readability**: Names should be easy to read +- **Meaning**: Names should convey purpose +- **Consistency**: Follow established naming patterns +- **Standards**: Adhere to language-specific standards + +## Benefits + +- **Code Readability**: Easier to understand and maintain +- **Consistency**: Uniform naming across codebase +- **Maintenance**: Easier to find and modify code +- **Collaboration**: Better team collaboration + +## Implementation + +Starlasu provides: + +- **Naming Validators**: Check naming conventions +- **Name Generators**: Generate names automatically +- **Conflict Detection**: Identify naming conflicts +- **Refactoring Support**: Safe name changes \ No newline at end of file diff --git a/docs/docs/origin-and-destination.md b/docs/docs/origin-and-destination.md new file mode 100644 index 0000000..1545ae2 --- /dev/null +++ b/docs/docs/origin-and-destination.md @@ -0,0 +1,53 @@ +--- +id: origin-and-destination +title: Origin and Destination +sidebar_label: Origin and Destination +--- + +# Origin and Destination + +Origin and destination tracking in Starlasu maintains information about where AST elements come from and where they are intended to go. + +## Origin Tracking + +### Source Information +- **File Path**: Original source file location +- **Line Numbers**: Source line and column information +- **Parse Tree**: Original parse tree node reference +- **Grammar Rule**: Grammar rule that created the node + +### Metadata +- **Creation Time**: When the node was created +- **Parser Version**: Version of parser that created it +- **Source Format**: Original source format (text, binary, etc.) +- **Encoding**: Source file encoding information + +## Destination Tracking + +### Target Information +- **Output Format**: Intended output format +- **Target Language**: Target programming language +- **Platform**: Target platform or environment +- **Configuration**: Output configuration settings + +### Transformation History +- **Applied Transformations**: List of transformations applied +- **Intermediate States**: Intermediate AST representations +- **Validation Results**: Validation and checking results +- **Generation Settings**: Code generation parameters + +## Benefits + +- **Traceability**: Track elements through transformations +- **Debugging**: Understand how elements were created +- **Error Reporting**: Provide accurate error locations +- **Optimization**: Identify optimization opportunities + +## Implementation + +Starlasu provides: + +- **Origin Tracking**: Automatic source information tracking +- **Destination Metadata**: Target and output information +- **Transformation History**: Complete transformation chain +- **Debugging Tools**: Tools for investigating origins \ No newline at end of file diff --git a/docs/docs/parse-tree-to-ast-mapping.md b/docs/docs/parse-tree-to-ast-mapping.md new file mode 100644 index 0000000..ac792f6 --- /dev/null +++ b/docs/docs/parse-tree-to-ast-mapping.md @@ -0,0 +1,66 @@ +--- +id: parse-tree-to-ast-mapping +title: Parse Tree to AST Mapping +sidebar_label: Parse Tree to AST Mapping +--- + +# Parse Tree to AST Mapping + +Parse tree to AST mapping in Starlasu converts low-level parse trees into high-level abstract syntax trees. + +## What is Mapping? + +Mapping transforms: + +- **Parse Tree Nodes**: Low-level grammar-specific nodes +- **AST Nodes**: High-level language-agnostic nodes +- **Structure**: Convert parse tree structure to AST structure +- **Information**: Extract semantic information from syntax + +## Mapping Process + +### Node Transformation +- **Terminal Nodes**: Convert to AST leaf nodes +- **Non-terminal Nodes**: Transform to AST internal nodes +- **Rule Nodes**: Apply grammar rule transformations +- **Error Nodes**: Handle parsing errors gracefully + +### Structure Conversion +- **Tree Structure**: Maintain hierarchical relationships +- **Node Ordering**: Preserve logical node ordering +- **Grouping**: Group related nodes logically +- **Flattening**: Simplify complex nested structures + +## Benefits + +- **Abstraction**: Work with high-level language concepts +- **Language Independence**: AST is language-agnostic +- **Tool Integration**: Easier integration with analysis tools +- **Maintenance**: Simpler AST manipulation and transformation + +## Implementation + +Starlasu provides: + +- **Mapping Framework**: Base classes for building mappers +- **Rule-based Mapping**: Define mapping rules declaratively +- **Visitor Pattern**: Standard mapping approach +- **Error Handling**: Graceful handling of mapping errors + +## Example + +```kotlin +// Parse tree node +class ParseTreeFunctionCall(val functionName: String, val arguments: List) + +// AST node +class ASTFunctionCall(val functionName: String, val arguments: List) + +// Mapping rule +fun mapFunctionCall(node: ParseTreeFunctionCall): ASTFunctionCall { + return ASTFunctionCall( + functionName = node.functionName, + arguments = node.arguments.map { mapExpression(it) } + ) +} +``` \ No newline at end of file diff --git a/docs/docs/position.md b/docs/docs/position.md new file mode 100644 index 0000000..a792068 --- /dev/null +++ b/docs/docs/position.md @@ -0,0 +1,29 @@ +--- +id: position +title: Position +sidebar_label: Position +--- + +# Position + +Position tracking in Starlasu allows you to maintain information about where each element in your AST originated in the source code. + +## What is Position? + +Position information includes: + +- **Line and Column**: Exact location in the source file +- **Offset**: Character position from the start of the file +- **Length**: Number of characters the element spans +- **Source File**: Reference to the original source + +## Benefits + +- **Error Reporting**: Provide precise error locations +- **Debugging**: Trace AST elements back to source +- **IDE Integration**: Enable features like "Go to Definition" +- **Refactoring**: Support safe code transformations + +## Implementation + +Starlasu libraries automatically track position information during parsing and maintain it through transformations, making it easy to provide accurate source location information in your language tools. \ No newline at end of file diff --git a/docs/docs/semantic-enrichment.md b/docs/docs/semantic-enrichment.md new file mode 100644 index 0000000..7f5bcf8 --- /dev/null +++ b/docs/docs/semantic-enrichment.md @@ -0,0 +1,51 @@ +--- +id: semantic-enrichment +title: Semantic Enrichment +sidebar_label: Semantic Enrichment +--- + +# Semantic Enrichment + +Semantic enrichment in Starlasu adds meaning and context to ASTs beyond their syntactic structure, enabling deeper code analysis and understanding. + +## What is Semantic Enrichment? + +Semantic enrichment adds: + +- **Symbol Information**: Resolved references and definitions +- **Type Information**: Computed types for expressions +- **Scope Information**: Variable and function scoping details +- **Semantic Metadata**: Additional context and annotations + +## Enrichment Process + +### Symbol Resolution +- **Reference Resolution**: Connect references to definitions +- **Scope Analysis**: Determine symbol visibility and lifetime +- **Import Resolution**: Handle imported symbols and namespaces + +### Type Analysis +- **Type Inference**: Determine types from context and usage +- **Type Checking**: Validate type compatibility +- **Generic Resolution**: Handle parameterized types + +### Context Analysis +- **Control Flow**: Analyze program execution paths +- **Data Flow**: Track data movement through the program +- **Dependencies**: Identify relationships between components + +## Benefits + +- **Better Analysis**: Enable advanced code analysis tools +- **IDE Features**: Support for refactoring and navigation +- **Documentation**: Generate accurate API documentation +- **Optimization**: Enable code optimization opportunities + +## Implementation + +Starlasu provides: + +- **Enrichment Pipeline**: Framework for building enrichment processes +- **Symbol Tables**: Efficient symbol storage and lookup +- **Type System**: Framework for type analysis +- **Performance Optimization**: Efficient enrichment algorithms \ No newline at end of file diff --git a/docs/docs/serialization.md b/docs/docs/serialization.md new file mode 100644 index 0000000..80eb19c --- /dev/null +++ b/docs/docs/serialization.md @@ -0,0 +1,33 @@ +--- +id: serialization +title: Serialization +sidebar_label: Serialization +--- + +# Serialization + +Serialization in Starlasu allows you to convert ASTs to and from various formats for storage, transmission, or analysis purposes. + +## Supported Formats + +Starlasu provides serialization support for: + +- **JSON**: Human-readable format for debugging and data exchange +- **Binary**: Compact format for efficient storage and transmission +- **XML**: Standard format for integration with other tools + +## Usage + +Serialization is typically handled through the Starlasu libraries, which provide: + +- Automatic serialization of AST nodes +- Custom serialization for specific node types +- Deserialization with validation +- Support for circular references + +## Benefits + +- **Persistence**: Save ASTs to files or databases +- **Debugging**: Inspect AST structure in human-readable format +- **Integration**: Exchange ASTs with other tools and systems +- **Testing**: Create test fixtures from serialized ASTs \ No newline at end of file diff --git a/docs/docs/symbol-resolution.md b/docs/docs/symbol-resolution.md new file mode 100644 index 0000000..41d42ae --- /dev/null +++ b/docs/docs/symbol-resolution.md @@ -0,0 +1,55 @@ +--- +id: symbol-resolution +title: Symbol Resolution +sidebar_label: Symbol Resolution +--- + +# Symbol Resolution + +Symbol resolution in Starlasu connects references in your code to their actual definitions, enabling advanced code analysis and IDE features. + +## What are Symbols? + +Symbols represent named entities in your code: + +- **Variables**: Local and global variables +- **Functions**: Function and method definitions +- **Classes**: Class and interface declarations +- **Namespaces**: Package and module structures + +## Resolution Process + +Symbol resolution follows these steps: + +1. **Parsing**: Create AST with unresolved references +2. **Scope Analysis**: Determine the scope of each symbol +3. **Reference Resolution**: Connect references to definitions +4. **Validation**: Check for undefined or ambiguous references + +## Resolution Strategies + +### Name Resolution +- **Lexical Scoping**: Follow language scoping rules +- **Import Resolution**: Handle imported symbols +- **Qualified Names**: Resolve fully qualified references + +### Type Resolution +- **Type Inference**: Determine types from context +- **Type Checking**: Validate type compatibility +- **Generic Resolution**: Handle generic type parameters + +## Use Cases + +- **IDE Features**: Go to definition, find usages +- **Code Analysis**: Dependency analysis, dead code detection +- **Refactoring**: Safe symbol renaming and moving +- **Documentation**: Generate accurate API documentation + +## Implementation + +Starlasu provides: + +- **Symbol Tables**: Efficient symbol lookup and storage +- **Scope Management**: Handle nested and overlapping scopes +- **Reference Tracking**: Maintain bidirectional references +- **Performance Optimization**: Fast resolution algorithms \ No newline at end of file diff --git a/docs/docs/testing.md b/docs/docs/testing.md new file mode 100644 index 0000000..6694d40 --- /dev/null +++ b/docs/docs/testing.md @@ -0,0 +1,59 @@ +--- +id: testing +title: Testing +sidebar_label: Testing +--- + +# Testing + +Testing is crucial for ensuring the reliability and correctness of language engineering tools built with Starlasu. + +## Testing Strategies + +### Unit Testing +- **AST Construction**: Test individual AST node creation +- **Parser Components**: Test grammar rules and parsing logic +- **Transformations**: Test AST transformation functions +- **Code Generation**: Test output generation logic + +### Integration Testing +- **End-to-End Parsing**: Test complete parsing pipelines +- **Round-Trip Validation**: Parse → Generate → Re-parse +- **Cross-Platform**: Test across different Starlasu implementations + +### Performance Testing +- **Large File Handling**: Test with substantial codebases +- **Memory Usage**: Monitor resource consumption +- **Response Time**: Measure parsing and generation speed + +## Testing Tools + +Starlasu provides: + +- **Test Utilities**: Helper functions for common testing scenarios +- **AST Comparison**: Tools for comparing AST structures +- **Mock ASTs**: Create test fixtures easily +- **Performance Benchmarks**: Measure tool performance + +## Best Practices + +- **Test Coverage**: Aim for comprehensive coverage of edge cases +- **Regression Testing**: Ensure new features don't break existing functionality +- **Property-Based Testing**: Use generative testing for complex scenarios +- **Continuous Integration**: Automate testing in your build pipeline + +## Example Test + +```kotlin +@Test +fun testFunctionParsing() { + val source = "fun hello() { println('world') }" + val ast = parser.parse(source) + + assertNotNull(ast) + assertTrue(ast.root is FunctionDeclaration) + + val function = ast.root as FunctionDeclaration + assertEquals("hello", function.name) +} +``` \ No newline at end of file diff --git a/docs/docs/transformation-framework.md b/docs/docs/transformation-framework.md new file mode 100644 index 0000000..05a240c --- /dev/null +++ b/docs/docs/transformation-framework.md @@ -0,0 +1,50 @@ +--- +id: transformation-framework +title: Transformation Framework +sidebar_label: Transformation Framework +--- + +# Transformation Framework + +The Transformation Framework in Starlasu provides tools and patterns for transforming ASTs from one form to another. + +## What are Transformations? + +Transformations convert ASTs between different representations: + +- **Parse Tree to AST**: Convert low-level parse trees to high-level ASTs +- **Language to Language**: Transform between different programming languages +- **Optimization**: Apply optimizations and simplifications +- **Normalization**: Convert to canonical forms + +## Transformation Patterns + +Common transformation patterns include: + +- **Visitor-based**: Walk the AST and transform each node +- **Rule-based**: Apply transformation rules to matching patterns +- **Template-based**: Use templates for complex transformations +- **Incremental**: Transform only changed portions + +## Key Components + +- **Transformation Engine**: Orchestrates the transformation process +- **Rule System**: Defines transformation rules and conditions +- **Validation**: Ensures transformations maintain AST integrity +- **Rollback**: Support for undoing transformations + +## Benefits + +- **Code Migration**: Transform legacy code to modern languages +- **Optimization**: Apply performance improvements automatically +- **Normalization**: Standardize code structures +- **Interoperability**: Enable code sharing between platforms + +## Implementation + +Starlasu provides: + +- **Base Classes**: Common transformation infrastructure +- **Utility Methods**: Helper functions for common operations +- **Testing Support**: Tools for validating transformations +- **Performance Optimization**: Efficient transformation algorithms \ No newline at end of file diff --git a/docs/docs/tutorial-basics/_category_.json b/docs/docs/tutorial-basics/_category_.json new file mode 100644 index 0000000..2e6db55 --- /dev/null +++ b/docs/docs/tutorial-basics/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Tutorial - Basics", + "position": 2, + "link": { + "type": "generated-index", + "description": "5 minutes to learn the most important Docusaurus concepts." + } +} diff --git a/docs/docs/tutorial-basics/congratulations.md b/docs/docs/tutorial-basics/congratulations.md new file mode 100644 index 0000000..04771a0 --- /dev/null +++ b/docs/docs/tutorial-basics/congratulations.md @@ -0,0 +1,23 @@ +--- +sidebar_position: 6 +--- + +# Congratulations! + +You have just learned the **basics of Docusaurus** and made some changes to the **initial template**. + +Docusaurus has **much more to offer**! + +Have **5 more minutes**? Take a look at **[versioning](../tutorial-extras/manage-docs-versions.md)** and **[i18n](../tutorial-extras/translate-your-site.md)**. + +Anything **unclear** or **buggy** in this tutorial? [Please report it!](https://github.com/facebook/docusaurus/discussions/4610) + +## What's next? + +- Read the [official documentation](https://docusaurus.io/) +- Modify your site configuration with [`docusaurus.config.js`](https://docusaurus.io/docs/api/docusaurus-config) +- Add navbar and footer items with [`themeConfig`](https://docusaurus.io/docs/api/themes/configuration) +- Add a custom [Design and Layout](https://docusaurus.io/docs/styling-layout) +- Add a [search bar](https://docusaurus.io/docs/search) +- Find inspirations in the [Docusaurus showcase](https://docusaurus.io/showcase) +- Get involved in the [Docusaurus Community](https://docusaurus.io/community/support) diff --git a/docs/docs/tutorial-basics/create-a-blog-post.md b/docs/docs/tutorial-basics/create-a-blog-post.md new file mode 100644 index 0000000..550ae17 --- /dev/null +++ b/docs/docs/tutorial-basics/create-a-blog-post.md @@ -0,0 +1,34 @@ +--- +sidebar_position: 3 +--- + +# Create a Blog Post + +Docusaurus creates a **page for each blog post**, but also a **blog index page**, a **tag system**, an **RSS** feed... + +## Create your first Post + +Create a file at `blog/2021-02-28-greetings.md`: + +```md title="blog/2021-02-28-greetings.md" +--- +slug: greetings +title: Greetings! +authors: + - name: Joel Marcey + title: Co-creator of Docusaurus 1 + url: https://github.com/JoelMarcey + image_url: https://github.com/JoelMarcey.png + - name: Sébastien Lorber + title: Docusaurus maintainer + url: https://sebastienlorber.com + image_url: https://github.com/slorber.png +tags: [greetings] +--- + +Congratulations, you have made your first post! + +Feel free to play around and edit this post as much as you like. +``` + +A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings). diff --git a/docs/docs/tutorial-basics/create-a-document.md b/docs/docs/tutorial-basics/create-a-document.md new file mode 100644 index 0000000..c22fe29 --- /dev/null +++ b/docs/docs/tutorial-basics/create-a-document.md @@ -0,0 +1,57 @@ +--- +sidebar_position: 2 +--- + +# Create a Document + +Documents are **groups of pages** connected through: + +- a **sidebar** +- **previous/next navigation** +- **versioning** + +## Create your first Doc + +Create a Markdown file at `docs/hello.md`: + +```md title="docs/hello.md" +# Hello + +This is my **first Docusaurus document**! +``` + +A new document is now available at [http://localhost:3000/docs/hello](http://localhost:3000/docs/hello). + +## Configure the Sidebar + +Docusaurus automatically **creates a sidebar** from the `docs` folder. + +Add metadata to customize the sidebar label and position: + +```md title="docs/hello.md" {1-4} +--- +sidebar_label: 'Hi!' +sidebar_position: 3 +--- + +# Hello + +This is my **first Docusaurus document**! +``` + +It is also possible to create your sidebar explicitly in `sidebars.js`: + +```js title="sidebars.js" +export default { + tutorialSidebar: [ + 'intro', + // highlight-next-line + 'hello', + { + type: 'category', + label: 'Tutorial', + items: ['tutorial-basics/create-a-document'], + }, + ], +}; +``` diff --git a/docs/docs/tutorial-basics/create-a-page.md b/docs/docs/tutorial-basics/create-a-page.md new file mode 100644 index 0000000..20e2ac3 --- /dev/null +++ b/docs/docs/tutorial-basics/create-a-page.md @@ -0,0 +1,43 @@ +--- +sidebar_position: 1 +--- + +# Create a Page + +Add **Markdown or React** files to `src/pages` to create a **standalone page**: + +- `src/pages/index.js` → `localhost:3000/` +- `src/pages/foo.md` → `localhost:3000/foo` +- `src/pages/foo/bar.js` → `localhost:3000/foo/bar` + +## Create your first React Page + +Create a file at `src/pages/my-react-page.js`: + +```jsx title="src/pages/my-react-page.js" +import React from 'react'; +import Layout from '@theme/Layout'; + +export default function MyReactPage() { + return ( + +

My React page

+

This is a React page

+
+ ); +} +``` + +A new page is now available at [http://localhost:3000/my-react-page](http://localhost:3000/my-react-page). + +## Create your first Markdown Page + +Create a file at `src/pages/my-markdown-page.md`: + +```mdx title="src/pages/my-markdown-page.md" +# My Markdown page + +This is a Markdown page +``` + +A new page is now available at [http://localhost:3000/my-markdown-page](http://localhost:3000/my-markdown-page). diff --git a/docs/docs/tutorial-basics/deploy-your-site.md b/docs/docs/tutorial-basics/deploy-your-site.md new file mode 100644 index 0000000..1c50ee0 --- /dev/null +++ b/docs/docs/tutorial-basics/deploy-your-site.md @@ -0,0 +1,31 @@ +--- +sidebar_position: 5 +--- + +# Deploy your site + +Docusaurus is a **static-site-generator** (also called **[Jamstack](https://jamstack.org/)**). + +It builds your site as simple **static HTML, JavaScript and CSS files**. + +## Build your site + +Build your site **for production**: + +```bash +npm run build +``` + +The static files are generated in the `build` folder. + +## Deploy your site + +Test your production build locally: + +```bash +npm run serve +``` + +The `build` folder is now served at [http://localhost:3000/](http://localhost:3000/). + +You can now deploy the `build` folder **almost anywhere** easily, **for free** or very small cost (read the **[Deployment Guide](https://docusaurus.io/docs/deployment)**). diff --git a/docs/docs/tutorial-basics/markdown-features.mdx b/docs/docs/tutorial-basics/markdown-features.mdx new file mode 100644 index 0000000..35e0082 --- /dev/null +++ b/docs/docs/tutorial-basics/markdown-features.mdx @@ -0,0 +1,152 @@ +--- +sidebar_position: 4 +--- + +# Markdown Features + +Docusaurus supports **[Markdown](https://daringfireball.net/projects/markdown/syntax)** and a few **additional features**. + +## Front Matter + +Markdown documents have metadata at the top called [Front Matter](https://jekyllrb.com/docs/front-matter/): + +```text title="my-doc.md" +// highlight-start +--- +id: my-doc-id +title: My document title +description: My document description +slug: /my-custom-url +--- +// highlight-end + +## Markdown heading + +Markdown text with [links](./hello.md) +``` + +## Links + +Regular Markdown links are supported, using url paths or relative file paths. + +```md +Let's see how to [Create a page](/create-a-page). +``` + +```md +Let's see how to [Create a page](./create-a-page.md). +``` + +**Result:** Let's see how to [Create a page](./create-a-page.md). + +## Images + +Regular Markdown images are supported. + +You can use absolute paths to reference images in the static directory (`static/img/docusaurus.png`): + +```md +![Docusaurus logo](/img/docusaurus.png) +``` + +![Docusaurus logo](/img/docusaurus.png) + +You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them: + +```md +![Docusaurus logo](./img/docusaurus.png) +``` + +## Code Blocks + +Markdown code blocks are supported with Syntax highlighting. + +````md +```jsx title="src/components/HelloDocusaurus.js" +function HelloDocusaurus() { + return

Hello, Docusaurus!

; +} +``` +```` + +```jsx title="src/components/HelloDocusaurus.js" +function HelloDocusaurus() { + return

Hello, Docusaurus!

; +} +``` + +## Admonitions + +Docusaurus has a special syntax to create admonitions and callouts: + +```md +:::tip My tip + +Use this awesome feature option + +::: + +:::danger Take care + +This action is dangerous + +::: +``` + +:::tip My tip + +Use this awesome feature option + +::: + +:::danger Take care + +This action is dangerous + +::: + +## MDX and React Components + +[MDX](https://mdxjs.com/) can make your documentation more **interactive** and allows using any **React components inside Markdown**: + +```jsx +export const Highlight = ({children, color}) => ( + { + alert(`You clicked the color ${color} with label ${children}`) + }}> + {children} + +); + +This is Docusaurus green ! + +This is Facebook blue ! +``` + +export const Highlight = ({children, color}) => ( + { + alert(`You clicked the color ${color} with label ${children}`); + }}> + {children} + +); + +This is Docusaurus green ! + +This is Facebook blue ! diff --git a/docs/docs/tutorial-extras/_category_.json b/docs/docs/tutorial-extras/_category_.json new file mode 100644 index 0000000..a8ffcc1 --- /dev/null +++ b/docs/docs/tutorial-extras/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Tutorial - Extras", + "position": 3, + "link": { + "type": "generated-index" + } +} diff --git a/docs/docs/tutorial-extras/img/docsVersionDropdown.png b/docs/docs/tutorial-extras/img/docsVersionDropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..97e4164618b5f8beda34cfa699720aba0ad2e342 GIT binary patch literal 25427 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 literal 0 HcmV?d00001 diff --git a/docs/docs/tutorial-extras/img/localeDropdown.png b/docs/docs/tutorial-extras/img/localeDropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..e257edc1f932985396bf59584c7ccfaddf955779 GIT binary patch literal 27841 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 JrC|B>e*nH7H{}2T literal 0 HcmV?d00001 diff --git a/docs/docs/tutorial-extras/manage-docs-versions.md b/docs/docs/tutorial-extras/manage-docs-versions.md new file mode 100644 index 0000000..ccda0b9 --- /dev/null +++ b/docs/docs/tutorial-extras/manage-docs-versions.md @@ -0,0 +1,55 @@ +--- +sidebar_position: 1 +--- + +# Manage Docs Versions + +Docusaurus can manage multiple versions of your docs. + +## Create a docs version + +Release a version 1.0 of your project: + +```bash +npm run docusaurus docs:version 1.0 +``` + +The `docs` folder is copied into `versioned_docs/version-1.0` and `versions.json` is created. + +Your docs now have 2 versions: + +- `1.0` at `http://localhost:3000/docs/` for the version 1.0 docs +- `current` at `http://localhost:3000/docs/next/` for the **upcoming, unreleased docs** + +## Add a Version Dropdown + +To navigate seamlessly across versions, add a version dropdown. + +Modify the `docusaurus.config.js` file: + +```js title="docusaurus.config.js" +export default { + themeConfig: { + navbar: { + items: [ + // highlight-start + { + type: 'docsVersionDropdown', + }, + // highlight-end + ], + }, + }, +}; +``` + +The docs version dropdown appears in your navbar: + +![Docs Version Dropdown](./img/docsVersionDropdown.png) + +## Update an existing version + +It is possible to edit versioned docs in their respective folder: + +- `versioned_docs/version-1.0/hello.md` updates `http://localhost:3000/docs/hello` +- `docs/hello.md` updates `http://localhost:3000/docs/next/hello` diff --git a/docs/docs/tutorial-extras/translate-your-site.md b/docs/docs/tutorial-extras/translate-your-site.md new file mode 100644 index 0000000..b5a644a --- /dev/null +++ b/docs/docs/tutorial-extras/translate-your-site.md @@ -0,0 +1,88 @@ +--- +sidebar_position: 2 +--- + +# Translate your site + +Let's translate `docs/intro.md` to French. + +## Configure i18n + +Modify `docusaurus.config.js` to add support for the `fr` locale: + +```js title="docusaurus.config.js" +export default { + i18n: { + defaultLocale: 'en', + locales: ['en', 'fr'], + }, +}; +``` + +## Translate a doc + +Copy the `docs/intro.md` file to the `i18n/fr` folder: + +```bash +mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/ + +cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md +``` + +Translate `i18n/fr/docusaurus-plugin-content-docs/current/intro.md` in French. + +## Start your localized site + +Start your site on the French locale: + +```bash +npm run start -- --locale fr +``` + +Your localized site is accessible at [http://localhost:3000/fr/](http://localhost:3000/fr/) and the `Getting Started` page is translated. + +:::caution + +In development, you can only use one locale at a time. + +::: + +## Add a Locale Dropdown + +To navigate seamlessly across languages, add a locale dropdown. + +Modify the `docusaurus.config.js` file: + +```js title="docusaurus.config.js" +export default { + themeConfig: { + navbar: { + items: [ + // highlight-start + { + type: 'localeDropdown', + }, + // highlight-end + ], + }, + }, +}; +``` + +The locale dropdown now appears in your navbar: + +![Locale Dropdown](./img/localeDropdown.png) + +## Build your localized site + +Build your site for a specific locale: + +```bash +npm run build -- --locale fr +``` + +Or build your site to include all the locales at once: + +```bash +npm run build +``` diff --git a/docs/docs/type-checking.md b/docs/docs/type-checking.md new file mode 100644 index 0000000..e962da9 --- /dev/null +++ b/docs/docs/type-checking.md @@ -0,0 +1,59 @@ +--- +id: type-checking +title: Type Checking +sidebar_label: Type Checking +--- + +# Type Checking + +Type checking in Starlasu validates that operations and expressions in your code are type-safe, preventing runtime errors and improving code quality. + +## What is Type Checking? + +Type checking verifies: + +- **Type Compatibility**: Operations use compatible types +- **Type Safety**: Prevent invalid type operations +- **Type Inference**: Determine types from context +- **Type Constraints**: Enforce type-related rules + +## Type Checking Process + +### Static Analysis +- **Compile-Time Checking**: Validate types before execution +- **Type Inference**: Automatically determine types where possible +- **Constraint Validation**: Check type constraints and bounds + +### Dynamic Analysis +- **Runtime Type Checking**: Validate types during execution +- **Type Guards**: Runtime type validation and conversion +- **Error Handling**: Graceful handling of type mismatches + +## Type System Features + +### Basic Types +- **Primitive Types**: Numbers, strings, booleans +- **Composite Types**: Arrays, objects, unions +- **Generic Types**: Parameterized type definitions + +### Advanced Features +- **Type Inference**: Automatic type determination +- **Union Types**: Support for multiple possible types +- **Intersection Types**: Combine multiple type constraints +- **Type Guards**: Runtime type validation + +## Benefits + +- **Error Prevention**: Catch type errors early +- **Code Quality**: Ensure type safety across codebase +- **Documentation**: Types serve as documentation +- **Tool Support**: Enable better IDE features + +## Implementation + +Starlasu provides: + +- **Type System**: Framework for defining types +- **Type Checker**: Engine for validating type rules +- **Type Inference**: Automatic type determination +- **Error Reporting**: Clear type error messages \ No newline at end of file diff --git a/docs/docs/use-cases.md b/docs/docs/use-cases.md new file mode 100644 index 0000000..20de93f --- /dev/null +++ b/docs/docs/use-cases.md @@ -0,0 +1,38 @@ +--- +id: use-cases +title: Use Cases +sidebar_label: Use Cases +--- + +# Use Cases + +This section provides practical examples and step-by-step guides for building common language engineering applications using the Starlasu approach: + +## Building a Transpiler + +Learn how to create a transpiler that translates code from one language to another. This guide covers: + +- **Architecture Design**: Planning the transpilation pipeline +- **Source Language Parsing**: Understanding the input language +- **Target Language Generation**: Producing output code +- **Transformation Logic**: Converting between language constructs + +## Building a Parser + +Discover how to implement a parser for your custom language or DSL: + +- **Grammar Definition**: Specifying language syntax +- **Parser Implementation**: Building the parsing logic +- **AST Construction**: Creating the abstract syntax tree +- **Error Handling**: Managing parsing errors gracefully + +## Building a Code Generator + +Learn to generate code from ASTs for various purposes: + +- **Code Model Analysis**: Understanding the input structure +- **Output Format Selection**: Choosing the target language +- **Generation Strategy**: Planning the code generation approach +- **Template Systems**: Using templates for consistent output + +Each use case provides practical examples, code snippets, and best practices to help you implement your own language engineering tools using the Starlasu framework. \ No newline at end of file diff --git a/docs/docs/validation.md b/docs/docs/validation.md new file mode 100644 index 0000000..298cee1 --- /dev/null +++ b/docs/docs/validation.md @@ -0,0 +1,51 @@ +--- +id: validation +title: Validation +sidebar_label: Validation +--- + +# Validation + +Validation in Starlasu ensures that ASTs conform to language rules and constraints, providing early error detection and code quality assurance. + +## What is Validation? + +Validation checks ASTs against: + +- **Language Rules**: Syntax and semantic constraints +- **Business Rules**: Domain-specific requirements +- **Quality Standards**: Code style and best practices +- **Cross-References**: Consistency of references and names + +## Validation Types + +### Syntax Validation +- **Grammar Compliance**: Ensure AST structure matches language grammar +- **Required Properties**: Check that mandatory fields are present +- **Type Constraints**: Validate data types and relationships + +### Semantic Validation +- **Symbol Resolution**: Verify all references are properly resolved +- **Type Checking**: Ensure type compatibility across expressions +- **Scope Rules**: Validate variable and function scoping + +### Business Rule Validation +- **Naming Conventions**: Check naming patterns and standards +- **Architecture Rules**: Validate architectural constraints +- **Security Policies**: Ensure compliance with security requirements + +## Implementation + +Starlasu provides: + +- **Validation Framework**: Base classes for building validators +- **Rule Engine**: Define and execute validation rules +- **Error Reporting**: Collect and report validation issues +- **Performance Optimization**: Efficient validation algorithms + +## Benefits + +- **Early Error Detection**: Catch issues before runtime +- **Code Quality**: Ensure adherence to standards +- **Documentation**: Validation rules serve as documentation +- **Automation**: Integrate validation into build pipelines \ No newline at end of file diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts new file mode 100644 index 0000000..877bc54 --- /dev/null +++ b/docs/docusaurus.config.ts @@ -0,0 +1,132 @@ +import {themes as prismThemes} from 'prism-react-renderer'; +import type {Config} from '@docusaurus/types'; +import type * as Preset from '@docusaurus/preset-classic'; + +// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) + +const config: Config = { + title: 'The Starlasu Approach', + tagline: 'A flexible, systematic, and extensible framework for Language Engineering', + favicon: 'img/favicon.ico', + + // Future flags, see https://docusaurus.io/docs/api/docusaurus-config#future + future: { + v4: true, // Improve compatibility with the upcoming Docusaurus v4 + }, + + // Set the production url of your site here + url: 'https://starlasu.com', + // Set the // pathname under which your site is served + // For GitHub pages deployment, it is often '//' + baseUrl: '/', + + // GitHub pages deployment config. + // If you aren't using GitHub pages, you don't need these. + organizationName: 'strumenta', // Usually your GitHub org/user name. + projectName: 'starlasu', // Usually your repo name. + + onBrokenLinks: 'throw', + onBrokenMarkdownLinks: 'throw', + + // Even if you don't use internationalization, you can use this field to set + // useful metadata like html lang. For example, if your site is Chinese, you + // may want to replace "en" with "zh-Hans". + i18n: { + defaultLocale: 'en', + locales: ['en'], + }, + + presets: [ + [ + 'classic', + { + docs: { + sidebarPath: './sidebars.ts', + // Please change this to your repo. + editUrl: + 'https://github.com/strumenta/starlasu/tree/main/docs/', + }, + blog: { + showReadingTime: true, + // Please change this to your repo. + editUrl: + 'https://github.com/strumenta/starlasu/tree/main/docs/', + }, + theme: { + customCss: './src/css/custom.css', + }, + } satisfies Preset.Options, + ], + ], + + themeConfig: { + // Replace with your project's social card + image: 'img/docusaurus-social-card.jpg', + navbar: { + title: 'Starlasu', + logo: { + alt: 'Starlasu Logo', + src: 'img/logo.svg', + }, + items: [ + { + type: 'docSidebar', + sidebarId: 'tutorialSidebar', + position: 'left', + label: 'Documentation', + }, + { + href: 'https://github.com/strumenta/starlasu', + label: 'GitHub', + position: 'right', + }, + ], + }, + footer: { + style: 'dark', + links: [ + { + title: 'Docs', + items: [ + { + label: 'Overview', + to: '/docs/intro', + }, + { + label: 'Features', + to: '/docs/category/features', + }, + { + label: 'Methods', + to: '/docs/category/methods', + }, + { + label: 'Use Cases', + to: '/docs/category/use-cases', + }, + ], + }, + { + title: 'Community', + items: [ + { + label: 'GitHub', + href: 'https://github.com/strumenta/starlasu', + }, + { + label: 'Strumenta', + href: 'https://strumenta.com', + }, + ], + }, + ], + copyright: `Copyright © ${new Date().getFullYear()} Strumenta. Built with Docusaurus.`, + }, + prism: { + theme: prismThemes.github, + darkTheme: prismThemes.dracula, + }, + } satisfies Preset.ThemeConfig, +}; + +export default config; diff --git a/docs/package-lock.json b/docs/package-lock.json new file mode 100644 index 0000000..940f96a --- /dev/null +++ b/docs/package-lock.json @@ -0,0 +1,16254 @@ +{ + "name": "docs", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "docs", + "version": "0.0.0", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/preset-classic": "3.8.1", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "prism-react-renderer": "^2.3.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "3.8.1", + "@docusaurus/tsconfig": "3.8.1", + "@docusaurus/types": "3.8.1", + "typescript": "~5.6.2" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@algolia/abtesting": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.1.0.tgz", + "integrity": "sha512-sEyWjw28a/9iluA37KLGu8vjxEIlb60uxznfTUmXImy7H5NvbpSO6yYgmgH5KiD7j+zTUUihiST0jEP12IoXow==", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.9.tgz", + "integrity": "sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ==", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.17.9", + "@algolia/autocomplete-shared": "1.17.9" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.9.tgz", + "integrity": "sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ==", + "dependencies": { + "@algolia/autocomplete-shared": "1.17.9" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.9.tgz", + "integrity": "sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ==", + "dependencies": { + "@algolia/autocomplete-shared": "1.17.9" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.9.tgz", + "integrity": "sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ==", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/client-abtesting": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.35.0.tgz", + "integrity": "sha512-uUdHxbfHdoppDVflCHMxRlj49/IllPwwQ2cQ8DLC4LXr3kY96AHBpW0dMyi6ygkn2MtFCc6BxXCzr668ZRhLBQ==", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.35.0.tgz", + "integrity": "sha512-SunAgwa9CamLcRCPnPHx1V2uxdQwJGqb1crYrRWktWUdld0+B2KyakNEeVn5lln4VyeNtW17Ia7V7qBWyM/Skw==", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-common": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.35.0.tgz", + "integrity": "sha512-ipE0IuvHu/bg7TjT2s+187kz/E3h5ssfTtjpg1LbWMgxlgiaZIgTTbyynM7NfpSJSKsgQvCQxWjGUO51WSCu7w==", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-insights": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.35.0.tgz", + "integrity": "sha512-UNbCXcBpqtzUucxExwTSfAe8gknAJ485NfPN6o1ziHm6nnxx97piIbcBQ3edw823Tej2Wxu1C0xBY06KgeZ7gA==", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.35.0.tgz", + "integrity": "sha512-/KWjttZ6UCStt4QnWoDAJ12cKlQ+fkpMtyPmBgSS2WThJQdSV/4UWcqCUqGH7YLbwlj3JjNirCu3Y7uRTClxvA==", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-query-suggestions": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.35.0.tgz", + "integrity": "sha512-8oCuJCFf/71IYyvQQC+iu4kgViTODbXDk3m7yMctEncRSRV+u2RtDVlpGGfPlJQOrAY7OONwJlSHkmbbm2Kp/w==", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-search": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.35.0.tgz", + "integrity": "sha512-FfmdHTrXhIduWyyuko1YTcGLuicVbhUyRjO3HbXE4aP655yKZgdTIfMhZ/V5VY9bHuxv/fGEh3Od1Lvv2ODNTg==", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/events": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", + "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" + }, + "node_modules/@algolia/ingestion": { + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.35.0.tgz", + "integrity": "sha512-gPzACem9IL1Co8mM1LKMhzn1aSJmp+Vp434An4C0OBY4uEJRcqsLN3uLBlY+bYvFg8C8ImwM9YRiKczJXRk0XA==", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/monitoring": { + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.35.0.tgz", + "integrity": "sha512-w9MGFLB6ashI8BGcQoVt7iLgDIJNCn4OIu0Q0giE3M2ItNrssvb8C0xuwJQyTy1OFZnemG0EB1OvXhIHOvQwWw==", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/recommend": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.35.0.tgz", + "integrity": "sha512-AhrVgaaXAb8Ue0u2nuRWwugt0dL5UmRgS9LXe0Hhz493a8KFeZVUE56RGIV3hAa6tHzmAV7eIoqcWTQvxzlJeQ==", + "dependencies": { + "@algolia/client-common": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.35.0.tgz", + "integrity": "sha512-diY415KLJZ6x1Kbwl9u96Jsz0OstE3asjXtJ9pmk1d+5gPuQ5jQyEsgC+WmEXzlec3iuVszm8AzNYYaqw6B+Zw==", + "dependencies": { + "@algolia/client-common": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-fetch": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.35.0.tgz", + "integrity": "sha512-uydqnSmpAjrgo8bqhE9N1wgcB98psTRRQXcjc4izwMB7yRl9C8uuAQ/5YqRj04U0mMQ+fdu2fcNF6m9+Z1BzDQ==", + "dependencies": { + "@algolia/client-common": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-node-http": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.35.0.tgz", + "integrity": "sha512-RgLX78ojYOrThJHrIiPzT4HW3yfQa0D7K+MQ81rhxqaNyNBu4F1r+72LNHYH/Z+y9I1Mrjrd/c/Ue5zfDgAEjQ==", + "dependencies": { + "@algolia/client-common": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", + "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", + "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.6", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", + "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", + "dependencies": { + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", + "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "regexpu-core": "^6.2.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.10" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", + "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", + "dependencies": { + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.2.tgz", + "integrity": "sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "dependencies": { + "@babel/types": "^7.28.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", + "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz", + "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz", + "integrity": "sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz", + "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.0.tgz", + "integrity": "sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", + "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", + "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", + "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", + "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", + "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz", + "integrity": "sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", + "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz", + "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.1.tgz", + "integrity": "sha512-P0QiV/taaa3kXpLY+sXla5zec4E+4t4Aqc9ggHlfZ7a2cp8/x/Gv08jfwEtn9gnnYIMvHx6aoOZ8XJL8eU71Dg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.0.tgz", + "integrity": "sha512-dGopk9nZrtCs2+nfIem25UuHyt5moSJamArzIoh9/vezUQPmYDOzjaHDCkAzuGJibCIkPup8rMT2+wYB6S73cA==", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.0.tgz", + "integrity": "sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.0.tgz", + "integrity": "sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg==", + "dependencies": { + "@babel/compat-data": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.27.1", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.28.0", + "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.0", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.27.1", + "@babel/plugin-transform-classes": "^7.28.0", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.0", + "@babel/plugin-transform-exponentiation-operator": "^7.27.1", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.27.1", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.28.0", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.28.0", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "core-js-compat": "^3.43.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.27.1.tgz", + "integrity": "sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.27.1", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz", + "integrity": "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.2.tgz", + "integrity": "sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.28.2.tgz", + "integrity": "sha512-FVFaVs2/dZgD3Y9ZD+AKNKjyGKzwu0C54laAXWUXgLcVXcCX6YZ6GhK2cp7FogSN2OA0Fu+QT8dP3FUdo9ShSQ==", + "dependencies": { + "core-js-pure": "^3.43.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", + "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@csstools/cascade-layer-name-parser": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.5.tgz", + "integrity": "sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz", + "integrity": "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.10.tgz", + "integrity": "sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/color-helpers": "^5.0.2", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz", + "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.2.tgz", + "integrity": "sha512-nWBE08nhO8uWl6kSAeCx4im7QfVko3zLrtgWZY4/bP87zrSPpSyN/3W3TDqz1jJuH+kbKOHXg5rJnK+ZVYcFFg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-cascade-layers/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@csstools/postcss-cascade-layers/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.10.tgz", + "integrity": "sha512-4dY0NBu7NVIpzxZRgh/Q/0GPSz/jLSw0i/u3LTUor0BkQcz/fNhN10mSWBDsL0p9nDb0Ky1PD6/dcGbhACuFTQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-mix-function": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.10.tgz", + "integrity": "sha512-P0lIbQW9I4ShE7uBgZRib/lMTf9XMjJkFl/d6w4EMNHu2qvQ6zljJGEcBkw/NsBtq/6q3WrmgxSS8kHtPMkK4Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-mix-variadic-function-arguments": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.0.tgz", + "integrity": "sha512-Z5WhouTyD74dPFPrVE7KydgNS9VvnjB8qcdes9ARpCOItb4jTnm7cHp4FhxCRUoyhabD0WVv43wbkJ4p8hLAlQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-content-alt-text": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.6.tgz", + "integrity": "sha512-eRjLbOjblXq+byyaedQRSrAejKGNAFued+LcbzT+LCL78fabxHkxYjBbxkroONxHHYu2qxhFK2dBStTLPG3jpQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-exponential-functions": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.9.tgz", + "integrity": "sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz", + "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gamut-mapping": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.10.tgz", + "integrity": "sha512-QDGqhJlvFnDlaPAfCYPsnwVA6ze+8hhrwevYWlnUeSjkkZfBpcCO42SaUD8jiLlq7niouyLgvup5lh+f1qessg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gradients-interpolation-method": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.10.tgz", + "integrity": "sha512-HHPauB2k7Oits02tKFUeVFEU2ox/H3OQVrP3fSOKDxvloOikSal+3dzlyTZmYsb9FlY9p5EUpBtz0//XBmy+aw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.10.tgz", + "integrity": "sha512-nOKKfp14SWcdEQ++S9/4TgRKchooLZL0TUFdun3nI4KPwCjETmhjta1QT4ICQcGVWQTvrsgMM/aLB5We+kMHhQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.2.tgz", + "integrity": "sha512-lrK2jjyZwh7DbxaNnIUjkeDmU8Y6KyzRBk91ZkI5h8nb1ykEfZrtIVArdIjX4DHMIBGpdHrgP0n4qXDr7OHaKA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-initial": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.1.tgz", + "integrity": "sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.3.tgz", + "integrity": "sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-light-dark-function": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.9.tgz", + "integrity": "sha512-1tCZH5bla0EAkFAI2r0H33CDnIBeLUaJh1p+hvvsylJ4svsv2wOmJjJn+OXwUZLXef37GYbRIVKX+X+g6m+3CQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-float-and-clear": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz", + "integrity": "sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-overflow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz", + "integrity": "sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-overscroll-behavior": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz", + "integrity": "sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-resize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz", + "integrity": "sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-viewport-units": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.4.tgz", + "integrity": "sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-media-minmax": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.9.tgz", + "integrity": "sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.5.tgz", + "integrity": "sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz", + "integrity": "sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz", + "integrity": "sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.10.tgz", + "integrity": "sha512-ZzZUTDd0fgNdhv8UUjGCtObPD8LYxMH+MJsW9xlZaWTV8Ppr4PtxlHYNMmF4vVWGl0T6f8tyWAKjoI6vePSgAg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.1.0.tgz", + "integrity": "sha512-YrkI9dx8U4R8Sz2EJaoeD9fI7s7kmeEBfmO+UURNeL6lQI7VxF6sBE+rSqdCBn4onwqmxFdBU3lTwyYb/lCmxA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-random-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-2.0.1.tgz", + "integrity": "sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-relative-color-syntax": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.10.tgz", + "integrity": "sha512-8+0kQbQGg9yYG8hv0dtEpOMLwB9M+P7PhacgIzVzJpixxV4Eq9AUQtQw8adMmAJU1RBBmIlpmtmm3XTRd/T00g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-scope-pseudo-class": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz", + "integrity": "sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-scope-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-sign-functions": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.4.tgz", + "integrity": "sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.9.tgz", + "integrity": "sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.2.tgz", + "integrity": "sha512-8XvCRrFNseBSAGxeaVTaNijAu+FzUvjwFXtcrynmazGb/9WUdsPCpBX+mHEHShVRq47Gy4peYAoxYs8ltUnmzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/color-helpers": "^5.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.9.tgz", + "integrity": "sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz", + "integrity": "sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/utilities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/utilities/-/utilities-2.0.0.tgz", + "integrity": "sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@docsearch/css": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.9.0.tgz", + "integrity": "sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA==" + }, + "node_modules/@docsearch/react": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.9.0.tgz", + "integrity": "sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ==", + "dependencies": { + "@algolia/autocomplete-core": "1.17.9", + "@algolia/autocomplete-preset-algolia": "1.17.9", + "@docsearch/css": "3.9.0", + "algoliasearch": "^5.14.2" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 20.0.0", + "react": ">= 16.8.0 < 20.0.0", + "react-dom": ">= 16.8.0 < 20.0.0", + "search-insights": ">= 1 < 3" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "search-insights": { + "optional": true + } + } + }, + "node_modules/@docusaurus/babel": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.8.1.tgz", + "integrity": "sha512-3brkJrml8vUbn9aeoZUlJfsI/GqyFcDgQJwQkmBtclJgWDEQBKKeagZfOgx0WfUQhagL1sQLNW0iBdxnI863Uw==", + "dependencies": { + "@babel/core": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.25.9", + "@babel/preset-env": "^7.25.9", + "@babel/preset-react": "^7.25.9", + "@babel/preset-typescript": "^7.25.9", + "@babel/runtime": "^7.25.9", + "@babel/runtime-corejs3": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@docusaurus/logger": "3.8.1", + "@docusaurus/utils": "3.8.1", + "babel-plugin-dynamic-import-node": "^2.3.3", + "fs-extra": "^11.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/bundler": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.8.1.tgz", + "integrity": "sha512-/z4V0FRoQ0GuSLToNjOSGsk6m2lQUG4FRn8goOVoZSRsTrU8YR2aJacX5K3RG18EaX9b+52pN4m1sL3MQZVsQA==", + "dependencies": { + "@babel/core": "^7.25.9", + "@docusaurus/babel": "3.8.1", + "@docusaurus/cssnano-preset": "3.8.1", + "@docusaurus/logger": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils": "3.8.1", + "babel-loader": "^9.2.1", + "clean-css": "^5.3.3", + "copy-webpack-plugin": "^11.0.0", + "css-loader": "^6.11.0", + "css-minimizer-webpack-plugin": "^5.0.1", + "cssnano": "^6.1.2", + "file-loader": "^6.2.0", + "html-minifier-terser": "^7.2.0", + "mini-css-extract-plugin": "^2.9.2", + "null-loader": "^4.0.1", + "postcss": "^8.5.4", + "postcss-loader": "^7.3.4", + "postcss-preset-env": "^10.2.1", + "terser-webpack-plugin": "^5.3.9", + "tslib": "^2.6.0", + "url-loader": "^4.1.1", + "webpack": "^5.95.0", + "webpackbar": "^6.0.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/faster": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/faster": { + "optional": true + } + } + }, + "node_modules/@docusaurus/core": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.8.1.tgz", + "integrity": "sha512-ENB01IyQSqI2FLtOzqSI3qxG2B/jP4gQPahl2C3XReiLebcVh5B5cB9KYFvdoOqOWPyr5gXK4sjgTKv7peXCrA==", + "dependencies": { + "@docusaurus/babel": "3.8.1", + "@docusaurus/bundler": "3.8.1", + "@docusaurus/logger": "3.8.1", + "@docusaurus/mdx-loader": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-common": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", + "boxen": "^6.2.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cli-table3": "^0.6.3", + "combine-promises": "^1.1.0", + "commander": "^5.1.0", + "core-js": "^3.31.1", + "detect-port": "^1.5.1", + "escape-html": "^1.0.3", + "eta": "^2.2.0", + "eval": "^0.1.8", + "execa": "5.1.1", + "fs-extra": "^11.1.1", + "html-tags": "^3.3.1", + "html-webpack-plugin": "^5.6.0", + "leven": "^3.1.0", + "lodash": "^4.17.21", + "open": "^8.4.0", + "p-map": "^4.0.0", + "prompts": "^2.4.2", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", + "react-loadable-ssr-addon-v5-slorber": "^1.0.1", + "react-router": "^5.3.4", + "react-router-config": "^5.1.1", + "react-router-dom": "^5.3.4", + "semver": "^7.5.4", + "serve-handler": "^6.1.6", + "tinypool": "^1.0.2", + "tslib": "^2.6.0", + "update-notifier": "^6.0.2", + "webpack": "^5.95.0", + "webpack-bundle-analyzer": "^4.10.2", + "webpack-dev-server": "^4.15.2", + "webpack-merge": "^6.0.1" + }, + "bin": { + "docusaurus": "bin/docusaurus.mjs" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@mdx-js/react": "^3.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/cssnano-preset": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.8.1.tgz", + "integrity": "sha512-G7WyR2N6SpyUotqhGznERBK+x84uyhfMQM2MmDLs88bw4Flom6TY46HzkRkSEzaP9j80MbTN8naiL1fR17WQug==", + "dependencies": { + "cssnano-preset-advanced": "^6.1.2", + "postcss": "^8.5.4", + "postcss-sort-media-queries": "^5.2.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/logger": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.8.1.tgz", + "integrity": "sha512-2wjeGDhKcExEmjX8k1N/MRDiPKXGF2Pg+df/bDDPnnJWHXnVEZxXj80d6jcxp1Gpnksl0hF8t/ZQw9elqj2+ww==", + "dependencies": { + "chalk": "^4.1.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/mdx-loader": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.8.1.tgz", + "integrity": "sha512-DZRhagSFRcEq1cUtBMo4TKxSNo/W6/s44yhr8X+eoXqCLycFQUylebOMPseHi5tc4fkGJqwqpWJLz6JStU9L4w==", + "dependencies": { + "@docusaurus/logger": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", + "@mdx-js/mdx": "^3.0.0", + "@slorber/remark-comment": "^1.0.0", + "escape-html": "^1.0.3", + "estree-util-value-to-estree": "^3.0.1", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "image-size": "^2.0.2", + "mdast-util-mdx": "^3.0.0", + "mdast-util-to-string": "^4.0.0", + "rehype-raw": "^7.0.0", + "remark-directive": "^3.0.0", + "remark-emoji": "^4.0.0", + "remark-frontmatter": "^5.0.0", + "remark-gfm": "^4.0.0", + "stringify-object": "^3.3.0", + "tslib": "^2.6.0", + "unified": "^11.0.3", + "unist-util-visit": "^5.0.0", + "url-loader": "^4.1.1", + "vfile": "^6.0.1", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/module-type-aliases": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.8.1.tgz", + "integrity": "sha512-6xhvAJiXzsaq3JdosS7wbRt/PwEPWHr9eM4YNYqVlbgG1hSK3uQDXTVvQktasp3VO6BmfYWPozueLWuj4gB+vg==", + "dependencies": { + "@docusaurus/types": "3.8.1", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "@types/react-router-dom": "*", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@docusaurus/plugin-content-blog": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.8.1.tgz", + "integrity": "sha512-vNTpMmlvNP9n3hGEcgPaXyvTljanAKIUkuG9URQ1DeuDup0OR7Ltvoc8yrmH+iMZJbcQGhUJF+WjHLwuk8HSdw==", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/logger": "3.8.1", + "@docusaurus/mdx-loader": "3.8.1", + "@docusaurus/theme-common": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-common": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", + "cheerio": "1.0.0-rc.12", + "feed": "^4.2.2", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "schema-dts": "^1.1.2", + "srcset": "^4.0.0", + "tslib": "^2.6.0", + "unist-util-visit": "^5.0.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/plugin-content-docs": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.8.1.tgz", + "integrity": "sha512-oByRkSZzeGNQByCMaX+kif5Nl2vmtj2IHQI2fWjCfCootsdKZDPFLonhIp5s3IGJO7PLUfe0POyw0Xh/RrGXJA==", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/logger": "3.8.1", + "@docusaurus/mdx-loader": "3.8.1", + "@docusaurus/module-type-aliases": "3.8.1", + "@docusaurus/theme-common": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-common": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", + "@types/react-router-config": "^5.0.7", + "combine-promises": "^1.1.0", + "fs-extra": "^11.1.1", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "schema-dts": "^1.1.2", + "tslib": "^2.6.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-pages": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.8.1.tgz", + "integrity": "sha512-a+V6MS2cIu37E/m7nDJn3dcxpvXb6TvgdNI22vJX8iUTp8eoMoPa0VArEbWvCxMY/xdC26WzNv4wZ6y0iIni/w==", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/mdx-loader": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", + "fs-extra": "^11.1.1", + "tslib": "^2.6.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-css-cascade-layers": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.8.1.tgz", + "integrity": "sha512-VQ47xRxfNKjHS5ItzaVXpxeTm7/wJLFMOPo1BkmoMG4Cuz4nuI+Hs62+RMk1OqVog68Swz66xVPK8g9XTrBKRw==", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/plugin-debug": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.8.1.tgz", + "integrity": "sha512-nT3lN7TV5bi5hKMB7FK8gCffFTBSsBsAfV84/v293qAmnHOyg1nr9okEw8AiwcO3bl9vije5nsUvP0aRl2lpaw==", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils": "3.8.1", + "fs-extra": "^11.1.1", + "react-json-view-lite": "^2.3.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-analytics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.8.1.tgz", + "integrity": "sha512-Hrb/PurOJsmwHAsfMDH6oVpahkEGsx7F8CWMjyP/dw1qjqmdS9rcV1nYCGlM8nOtD3Wk/eaThzUB5TSZsGz+7Q==", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-gtag": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.8.1.tgz", + "integrity": "sha512-tKE8j1cEZCh8KZa4aa80zpSTxsC2/ZYqjx6AAfd8uA8VHZVw79+7OTEP2PoWi0uL5/1Is0LF5Vwxd+1fz5HlKg==", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", + "@types/gtag.js": "^0.0.12", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-tag-manager": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.8.1.tgz", + "integrity": "sha512-iqe3XKITBquZq+6UAXdb1vI0fPY5iIOitVjPQ581R1ZKpHr0qe+V6gVOrrcOHixPDD/BUKdYwkxFjpNiEN+vBw==", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-sitemap": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.8.1.tgz", + "integrity": "sha512-+9YV/7VLbGTq8qNkjiugIelmfUEVkTyLe6X8bWq7K5qPvGXAjno27QAfFq63mYfFFbJc7z+pudL63acprbqGzw==", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/logger": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-common": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", + "fs-extra": "^11.1.1", + "sitemap": "^7.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-svgr": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.8.1.tgz", + "integrity": "sha512-rW0LWMDsdlsgowVwqiMb/7tANDodpy1wWPwCcamvhY7OECReN3feoFwLjd/U4tKjNY3encj0AJSTxJA+Fpe+Gw==", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", + "@svgr/core": "8.1.0", + "@svgr/webpack": "^8.1.0", + "tslib": "^2.6.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/preset-classic": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.8.1.tgz", + "integrity": "sha512-yJSjYNHXD8POMGc2mKQuj3ApPrN+eG0rO1UPgSx7jySpYU+n4WjBikbrA2ue5ad9A7aouEtMWUoiSRXTH/g7KQ==", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/plugin-content-blog": "3.8.1", + "@docusaurus/plugin-content-docs": "3.8.1", + "@docusaurus/plugin-content-pages": "3.8.1", + "@docusaurus/plugin-css-cascade-layers": "3.8.1", + "@docusaurus/plugin-debug": "3.8.1", + "@docusaurus/plugin-google-analytics": "3.8.1", + "@docusaurus/plugin-google-gtag": "3.8.1", + "@docusaurus/plugin-google-tag-manager": "3.8.1", + "@docusaurus/plugin-sitemap": "3.8.1", + "@docusaurus/plugin-svgr": "3.8.1", + "@docusaurus/theme-classic": "3.8.1", + "@docusaurus/theme-common": "3.8.1", + "@docusaurus/theme-search-algolia": "3.8.1", + "@docusaurus/types": "3.8.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/theme-classic": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.8.1.tgz", + "integrity": "sha512-bqDUCNqXeYypMCsE1VcTXSI1QuO4KXfx8Cvl6rYfY0bhhqN6d2WZlRkyLg/p6pm+DzvanqHOyYlqdPyP0iz+iw==", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/logger": "3.8.1", + "@docusaurus/mdx-loader": "3.8.1", + "@docusaurus/module-type-aliases": "3.8.1", + "@docusaurus/plugin-content-blog": "3.8.1", + "@docusaurus/plugin-content-docs": "3.8.1", + "@docusaurus/plugin-content-pages": "3.8.1", + "@docusaurus/theme-common": "3.8.1", + "@docusaurus/theme-translations": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-common": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "copy-text-to-clipboard": "^3.2.0", + "infima": "0.2.0-alpha.45", + "lodash": "^4.17.21", + "nprogress": "^0.2.0", + "postcss": "^8.5.4", + "prism-react-renderer": "^2.3.0", + "prismjs": "^1.29.0", + "react-router-dom": "^5.3.4", + "rtlcss": "^4.1.0", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/theme-common": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.8.1.tgz", + "integrity": "sha512-UswMOyTnPEVRvN5Qzbo+l8k4xrd5fTFu2VPPfD6FcW/6qUtVLmJTQCktbAL3KJ0BVXGm5aJXz/ZrzqFuZERGPw==", + "dependencies": { + "@docusaurus/mdx-loader": "3.8.1", + "@docusaurus/module-type-aliases": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-common": "3.8.1", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "clsx": "^2.0.0", + "parse-numeric-range": "^1.3.0", + "prism-react-renderer": "^2.3.0", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/plugin-content-docs": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.8.1.tgz", + "integrity": "sha512-NBFH5rZVQRAQM087aYSRKQ9yGEK9eHd+xOxQjqNpxMiV85OhJDD4ZGz6YJIod26Fbooy54UWVdzNU0TFeUUUzQ==", + "dependencies": { + "@docsearch/react": "^3.9.0", + "@docusaurus/core": "3.8.1", + "@docusaurus/logger": "3.8.1", + "@docusaurus/plugin-content-docs": "3.8.1", + "@docusaurus/theme-common": "3.8.1", + "@docusaurus/theme-translations": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", + "algoliasearch": "^5.17.1", + "algoliasearch-helper": "^3.22.6", + "clsx": "^2.0.0", + "eta": "^2.2.0", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/theme-translations": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.8.1.tgz", + "integrity": "sha512-OTp6eebuMcf2rJt4bqnvuwmm3NVXfzfYejL+u/Y1qwKhZPrjPoKWfk1CbOP5xH5ZOPkiAsx4dHdQBRJszK3z2g==", + "dependencies": { + "fs-extra": "^11.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/tsconfig": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.8.1.tgz", + "integrity": "sha512-XBWCcqhRHhkhfolnSolNL+N7gj3HVE3CoZVqnVjfsMzCoOsuQw2iCLxVVHtO+rePUUfouVZHURDgmqIySsF66A==", + "dev": true + }, + "node_modules/@docusaurus/types": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.8.1.tgz", + "integrity": "sha512-ZPdW5AB+pBjiVrcLuw3dOS6BFlrG0XkS2lDGsj8TizcnREQg3J8cjsgfDviszOk4CweNfwo1AEELJkYaMUuOPg==", + "dependencies": { + "@mdx-js/mdx": "^3.0.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "commander": "^5.1.0", + "joi": "^17.9.2", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", + "utility-types": "^3.10.0", + "webpack": "^5.95.0", + "webpack-merge": "^5.9.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/types/node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@docusaurus/utils": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.8.1.tgz", + "integrity": "sha512-P1ml0nvOmEFdmu0smSXOqTS1sxU5tqvnc0dA4MTKV39kye+bhQnjkIKEE18fNOvxjyB86k8esoCIFM3x4RykOQ==", + "dependencies": { + "@docusaurus/logger": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils-common": "3.8.1", + "escape-string-regexp": "^4.0.0", + "execa": "5.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "github-slugger": "^1.5.0", + "globby": "^11.1.0", + "gray-matter": "^4.0.3", + "jiti": "^1.20.0", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "micromatch": "^4.0.5", + "p-queue": "^6.6.2", + "prompts": "^2.4.2", + "resolve-pathname": "^3.0.0", + "tslib": "^2.6.0", + "url-loader": "^4.1.1", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/utils-common": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.8.1.tgz", + "integrity": "sha512-zTZiDlvpvoJIrQEEd71c154DkcriBecm4z94OzEE9kz7ikS3J+iSlABhFXM45mZ0eN5pVqqr7cs60+ZlYLewtg==", + "dependencies": { + "@docusaurus/types": "3.8.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/utils-validation": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.8.1.tgz", + "integrity": "sha512-gs5bXIccxzEbyVecvxg6upTwaUbfa0KMmTj7HhHzc016AGyxH2o73k1/aOD0IFrdCsfJNt37MqNI47s2MgRZMA==", + "dependencies": { + "@docusaurus/logger": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-common": "3.8.1", + "fs-extra": "^11.2.0", + "joi": "^17.9.2", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.30", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", + "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==" + }, + "node_modules/@mdx-js/mdx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", + "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-scope": "^1.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "source-map": "^0.7.0", + "unified": "^11.0.0", + "unist-util-position-from-estree": "^2.0.0", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/react": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz", + "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==", + "dependencies": { + "@types/mdx": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "dependencies": { + "graceful-fs": "4.2.10" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/@pnpm/npm-conf": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", + "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", + "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==" + }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@slorber/remark-comment": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@slorber/remark-comment/-/remark-comment-1.0.0.tgz", + "integrity": "sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.1.0", + "micromark-util-symbol": "^1.0.1" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/webpack": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/express": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz", + "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.7.tgz", + "integrity": "sha512-R+33OsgWw7rOhD1emjU7dzCDHucJrgJXMA5PYCzJxVil0dsyx5iBEPHqpPfiKNJQb7lZ1vxwoLR4Z87bBUpeGQ==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/gtag.js": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz", + "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==" + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.16", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.16.tgz", + "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdx": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==" + }, + "node_modules/@types/node": { + "version": "24.2.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.2.1.tgz", + "integrity": "sha512-DRh5K+ka5eJic8CjH7td8QpYEV6Zo10gfRkjHCO3weqZHWDtAaSTFtl4+VMqOJ4N5jcuhZ9/l+yy8rVgw7BQeQ==", + "dependencies": { + "undici-types": "~7.10.0" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.13", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.13.tgz", + "integrity": "sha512-zePQJSW5QkwSHKRApqWCVKeKoSOt4xvEnLENZPjyvm9Ezdf/EyDeJM7jqLzOwjVICQQzvLZ63T55MKdJB5H6ww==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/prismjs": { + "version": "1.26.5", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz", + "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==" + }, + "node_modules/@types/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + "node_modules/@types/react": { + "version": "19.1.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.10.tgz", + "integrity": "sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-router": { + "version": "5.1.20", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", + "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "node_modules/@types/react-router-config": { + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.11.tgz", + "integrity": "sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "^5.1.0" + } + }, + "node_modules/@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "node_modules/@types/sax": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/send": { + "version": "0.17.5", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", + "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", + "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==" + }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/algoliasearch": { + "version": "5.35.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.35.0.tgz", + "integrity": "sha512-Y+moNhsqgLmvJdgTsO4GZNgsaDWv8AOGAaPeIeHKlDn/XunoAqYbA+XNpBd1dW8GOXAUDyxC9Rxc7AV4kpFcIg==", + "dependencies": { + "@algolia/abtesting": "1.1.0", + "@algolia/client-abtesting": "5.35.0", + "@algolia/client-analytics": "5.35.0", + "@algolia/client-common": "5.35.0", + "@algolia/client-insights": "5.35.0", + "@algolia/client-personalization": "5.35.0", + "@algolia/client-query-suggestions": "5.35.0", + "@algolia/client-search": "5.35.0", + "@algolia/ingestion": "1.35.0", + "@algolia/monitoring": "1.35.0", + "@algolia/recommend": "5.35.0", + "@algolia/requester-browser-xhr": "5.35.0", + "@algolia/requester-fetch": "5.35.0", + "@algolia/requester-node-http": "5.35.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/algoliasearch-helper": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.26.0.tgz", + "integrity": "sha512-Rv2x3GXleQ3ygwhkhJubhhYGsICmShLAiqtUuJTUkr9uOCOXyF2E71LVT4XDnVffbknv8XgScP4U0Oxtgm+hIw==", + "dependencies": { + "@algolia/events": "^4.0.1" + }, + "peerDependencies": { + "algoliasearch": ">= 3.1 < 6" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/astring": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/babel-loader": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", + "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "dependencies": { + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bonjour-service": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/boxen": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", + "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^6.2.0", + "chalk": "^4.1.2", + "cli-boxes": "^3.0.0", + "string-width": "^5.0.1", + "type-fest": "^2.5.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.25.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.2.tgz", + "integrity": "sha512-0si2SJK3ooGzIawRu61ZdPCO1IncZwS8IzuX73sPZsXW6EQ/w/DAfPyKI8l1ETTCr2MnvqWitmlCUxgdul45jA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001733", + "electron-to-chromium": "^1.5.199", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "dependencies": { + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001734", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001734.tgz", + "integrity": "sha512-uhE1Ye5vgqju6OI71HTQqcBCZrvHugk0MjLak7Q+HfoBgoq5Bi+5YnwjP4fjDgrtYr/l8MVRBvzz9dPD4KyK0A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-table3/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/collapse-white-space": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, + "node_modules/combine-promises": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.2.0.tgz", + "integrity": "sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compressible/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/config-chain/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/configstore": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", + "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", + "dependencies": { + "dot-prop": "^6.0.1", + "graceful-fs": "^4.2.6", + "unique-string": "^3.0.0", + "write-file-atomic": "^3.0.3", + "xdg-basedir": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/yeoman/configstore?sponsor=1" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/copy-text-to-clipboard": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", + "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-js": { + "version": "3.45.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.0.tgz", + "integrity": "sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.45.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.45.0.tgz", + "integrity": "sha512-gRoVMBawZg0OnxaVv3zpqLLxaHmsubEGyTnqdpI/CEBvX4JadI1dMSHxagThprYRtSVbuQxvi6iUatdPxohHpA==", + "dependencies": { + "browserslist": "^4.25.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.45.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.45.0.tgz", + "integrity": "sha512-OtwjqcDpY2X/eIIg1ol/n0y/X8A9foliaNt1dSK0gV3J2/zw+89FcNG3mPK+N8YWts4ZFUPxnrAzsxs/lf8yDA==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "dependencies": { + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/css-blank-pseudo": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz", + "integrity": "sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-blank-pseudo/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.2.tgz", + "integrity": "sha512-nzol/h+E0bId46Kn2dQH5VElaknX2Sr0hFuB/1EomdC7j+OISt2ZzK7EHX9DZDY53WbIVAR7FYKSO2XnSf07MQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-has-pseudo/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", + "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "cssnano": "^6.0.1", + "jest-worker": "^29.4.3", + "postcss": "^8.4.24", + "schema-utils": "^4.0.1", + "serialize-javascript": "^6.0.1" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "lightningcss": { + "optional": true + } + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz", + "integrity": "sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssdb": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.3.1.tgz", + "integrity": "sha512-XnDRQMXucLueX92yDe0LPKupXetWoFOgawr4O4X41l5TltgK2NVbJJVDnnOywDYfW1sTJ28AcXGKOqdRKwCcmQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ] + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", + "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", + "dependencies": { + "cssnano-preset-default": "^6.1.2", + "lilconfig": "^3.1.1" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-preset-advanced": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", + "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", + "dependencies": { + "autoprefixer": "^10.4.19", + "browserslist": "^4.23.0", + "cssnano-preset-default": "^6.1.2", + "postcss-discard-unused": "^6.0.5", + "postcss-merge-idents": "^6.0.3", + "postcss-reduce-idents": "^6.0.3", + "postcss-zindex": "^6.0.2" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-preset-default": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", + "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", + "dependencies": { + "browserslist": "^4.23.0", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^4.0.2", + "postcss-calc": "^9.0.1", + "postcss-colormin": "^6.1.0", + "postcss-convert-values": "^6.1.0", + "postcss-discard-comments": "^6.0.2", + "postcss-discard-duplicates": "^6.0.3", + "postcss-discard-empty": "^6.0.3", + "postcss-discard-overridden": "^6.0.2", + "postcss-merge-longhand": "^6.0.5", + "postcss-merge-rules": "^6.1.1", + "postcss-minify-font-values": "^6.1.0", + "postcss-minify-gradients": "^6.0.3", + "postcss-minify-params": "^6.1.0", + "postcss-minify-selectors": "^6.0.4", + "postcss-normalize-charset": "^6.0.2", + "postcss-normalize-display-values": "^6.0.2", + "postcss-normalize-positions": "^6.0.2", + "postcss-normalize-repeat-style": "^6.0.2", + "postcss-normalize-string": "^6.0.2", + "postcss-normalize-timing-functions": "^6.0.2", + "postcss-normalize-unicode": "^6.1.0", + "postcss-normalize-url": "^6.0.2", + "postcss-normalize-whitespace": "^6.0.2", + "postcss-ordered-values": "^6.0.2", + "postcss-reduce-initial": "^6.1.0", + "postcss-reduce-transforms": "^6.0.2", + "postcss-svgo": "^6.0.3", + "postcss-unique-selectors": "^6.0.4" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-utils": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", + "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", + "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-port": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", + "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", + "dependencies": { + "address": "^1.0.1", + "debug": "4" + }, + "bin": { + "detect": "bin/detect-port.js", + "detect-port": "bin/detect-port.js" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dot-prop/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.200", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.200.tgz", + "integrity": "sha512-rFCxROw7aOe4uPTfIAx+rXv9cEcGx+buAF4npnhtTqCJk5KDFRnh3+KYj7rdVh6lsFt5/aPs+Irj9rZ33WMA7w==" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/emojilib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", + "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/emoticon": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.1.0.tgz", + "integrity": "sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esast-util-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", + "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esast-util-from-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", + "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "acorn": "^8.0.0", + "esast-util-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", + "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-util-attach-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", + "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-build-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", + "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-walker": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-scope": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", + "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", + "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-value-to-estree": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.4.0.tgz", + "integrity": "sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ==", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/remcohaszing" + } + }, + "node_modules/estree-util-visit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eta": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz", + "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==", + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "url": "https://github.com/eta-dev/eta?sponsor=1" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eval": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", + "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", + "dependencies": { + "@types/node": "*", + "require-like": ">= 0.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" + }, + "node_modules/express/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ] + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fault": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", + "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/feed": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", + "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", + "dependencies": { + "xml-js": "^1.6.11" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/file-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/file-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "engines": { + "node": ">= 14.17" + } + }, + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", + "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-monkey": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz", + "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/github-slugger": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/got/node_modules/@sindresorhus/is": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/gray-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/gray-matter/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-yarn": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", + "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-from-parse5": "^8.0.0", + "hast-util-to-parse5": "^8.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "parse5": "^7.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", + "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-attach-comments": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", + "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5/node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "dependencies": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "node_modules/html-minifier-terser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "~5.3.2", + "commander": "^10.0.0", + "entities": "^4.4.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.15.1" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "engines": { + "node": ">=14" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", + "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/html-webpack-plugin/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-webpack-plugin/node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==" + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", + "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-2.0.2.tgz", + "integrity": "sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==", + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/infima": { + "version": "0.2.0-alpha.45", + "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.45.tgz", + "integrity": "sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/inline-style-parser": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", + "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==" + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-npm": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", + "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-yarn-global": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", + "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/joi": { + "version": "17.13.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", + "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "dependencies": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/latest-version": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", + "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", + "dependencies": { + "package-json": "^8.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/launch-editor": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.11.1.tgz", + "integrity": "sha512-SEET7oNfgSaB6Ym0jufAdCeo3meJVeCaaDyzRygy0xsp2BFKCprcfHljTq4QkzTLUxEKkFK6OK4811YM2oSrRg==", + "dependencies": { + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/markdown-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdast-util-directive": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz", + "integrity": "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-frontmatter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", + "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "escape-string-regexp": "^5.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-directive": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz", + "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "parse-entities": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-frontmatter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", + "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", + "dependencies": { + "fault": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-mdx-expression": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", + "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-expression/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-mdx-jsx": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", + "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-mdx-md": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", + "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "dependencies": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^3.0.0", + "micromark-extension-mdx-jsx": "^3.0.0", + "micromark-extension-mdx-md": "^2.0.0", + "micromark-extension-mdxjs-esm": "^3.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", + "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-factory-mdx-expression": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", + "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-factory-space": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", + "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-space/node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-character": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-character/node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-events-to-acorn": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", + "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/estree": "^1.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-util-events-to-acorn/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-normalize-identifier/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-symbol": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", + "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.4.tgz", + "integrity": "sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ==", + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-emoji": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz", + "integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==", + "dependencies": { + "@sindresorhus/is": "^4.6.0", + "char-regex": "^1.0.2", + "emojilib": "^2.4.0", + "skin-tone": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.2.tgz", + "integrity": "sha512-Ee/R3SyN4BuynXcnTaekmaVdbDAEiNrHqjQIA37mHU8G9pf7aaAD4ZX3XjBLo6rsdcxA/gtkcNYZLt30ACgynw==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/null-loader": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz", + "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/null-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/null-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/null-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/null-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", + "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", + "dependencies": { + "got": "^12.1.0", + "registry-auth-token": "^5.0.1", + "registry-url": "^6.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-numeric-range": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", + "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz", + "integrity": "sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-calc": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.10.tgz", + "integrity": "sha512-k9qX+aXHBiLTRrWoCJuUFI6F1iF6QJQUXNVWJVSbqZgj57jDhBlOvD8gNUGl35tgqDivbGLhZeW3Ongz4feuKA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz", + "integrity": "sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz", + "integrity": "sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-colormin": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", + "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-convert-values": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", + "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-custom-media": { + "version": "11.0.6", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.6.tgz", + "integrity": "sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-properties": { + "version": "14.0.6", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.6.tgz", + "integrity": "sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.5.tgz", + "integrity": "sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz", + "integrity": "sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-comments": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", + "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", + "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-empty": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", + "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", + "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-unused": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", + "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.2.tgz", + "integrity": "sha512-7qTqnL7nfLRyJK/AHSVrrXOuvDDzettC+wGoienURV8v2svNbu6zJC52ruZtHaO6mfcagFmuTGFdzRsJKB3k5Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz", + "integrity": "sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-visible/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-focus-within": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz", + "integrity": "sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz", + "integrity": "sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-image-set-function": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz", + "integrity": "sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-lab-function": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.10.tgz", + "integrity": "sha512-tqs6TCEv9tC1Riq6fOzHuHcZyhg4k3gIAMB8GGY/zA1ssGdm6puHMVE7t75aOSoFg7UD2wyrFFhbldiCMyyFTQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-loader": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", + "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", + "dependencies": { + "cosmiconfig": "^8.3.5", + "jiti": "^1.20.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.1.0.tgz", + "integrity": "sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-merge-idents": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", + "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", + "dependencies": { + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", + "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^6.1.1" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-merge-rules": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", + "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^4.0.2", + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", + "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", + "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", + "dependencies": { + "colord": "^2.9.3", + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-params": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", + "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", + "dependencies": { + "browserslist": "^4.23.0", + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", + "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nesting": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.2.tgz", + "integrity": "sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/selector-resolve-nested": "^3.1.0", + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz", + "integrity": "sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/postcss-nesting/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/postcss-nesting/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", + "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", + "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", + "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", + "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-string": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", + "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", + "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", + "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-url": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", + "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", + "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz", + "integrity": "sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-ordered-values": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", + "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", + "dependencies": { + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz", + "integrity": "sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-10.0.0.tgz", + "integrity": "sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-preset-env": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.2.4.tgz", + "integrity": "sha512-q+lXgqmTMdB0Ty+EQ31SuodhdfZetUlwCA/F0zRcd/XdxjzI+Rl2JhZNz5US2n/7t9ePsvuhCnEN4Bmu86zXlA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/postcss-cascade-layers": "^5.0.2", + "@csstools/postcss-color-function": "^4.0.10", + "@csstools/postcss-color-mix-function": "^3.0.10", + "@csstools/postcss-color-mix-variadic-function-arguments": "^1.0.0", + "@csstools/postcss-content-alt-text": "^2.0.6", + "@csstools/postcss-exponential-functions": "^2.0.9", + "@csstools/postcss-font-format-keywords": "^4.0.0", + "@csstools/postcss-gamut-mapping": "^2.0.10", + "@csstools/postcss-gradients-interpolation-method": "^5.0.10", + "@csstools/postcss-hwb-function": "^4.0.10", + "@csstools/postcss-ic-unit": "^4.0.2", + "@csstools/postcss-initial": "^2.0.1", + "@csstools/postcss-is-pseudo-class": "^5.0.3", + "@csstools/postcss-light-dark-function": "^2.0.9", + "@csstools/postcss-logical-float-and-clear": "^3.0.0", + "@csstools/postcss-logical-overflow": "^2.0.0", + "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", + "@csstools/postcss-logical-resize": "^3.0.0", + "@csstools/postcss-logical-viewport-units": "^3.0.4", + "@csstools/postcss-media-minmax": "^2.0.9", + "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.5", + "@csstools/postcss-nested-calc": "^4.0.0", + "@csstools/postcss-normalize-display-values": "^4.0.0", + "@csstools/postcss-oklab-function": "^4.0.10", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/postcss-random-function": "^2.0.1", + "@csstools/postcss-relative-color-syntax": "^3.0.10", + "@csstools/postcss-scope-pseudo-class": "^4.0.1", + "@csstools/postcss-sign-functions": "^1.1.4", + "@csstools/postcss-stepped-value-functions": "^4.0.9", + "@csstools/postcss-text-decoration-shorthand": "^4.0.2", + "@csstools/postcss-trigonometric-functions": "^4.0.9", + "@csstools/postcss-unset-value": "^4.0.0", + "autoprefixer": "^10.4.21", + "browserslist": "^4.25.0", + "css-blank-pseudo": "^7.0.1", + "css-has-pseudo": "^7.0.2", + "css-prefers-color-scheme": "^10.0.0", + "cssdb": "^8.3.0", + "postcss-attribute-case-insensitive": "^7.0.1", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^7.0.10", + "postcss-color-hex-alpha": "^10.0.0", + "postcss-color-rebeccapurple": "^10.0.0", + "postcss-custom-media": "^11.0.6", + "postcss-custom-properties": "^14.0.6", + "postcss-custom-selectors": "^8.0.5", + "postcss-dir-pseudo-class": "^9.0.1", + "postcss-double-position-gradients": "^6.0.2", + "postcss-focus-visible": "^10.0.1", + "postcss-focus-within": "^9.0.1", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^6.0.0", + "postcss-image-set-function": "^7.0.0", + "postcss-lab-function": "^7.0.10", + "postcss-logical": "^8.1.0", + "postcss-nesting": "^13.0.2", + "postcss-opacity-percentage": "^3.0.0", + "postcss-overflow-shorthand": "^6.0.0", + "postcss-page-break": "^3.0.4", + "postcss-place": "^10.0.0", + "postcss-pseudo-class-any-link": "^10.0.1", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^8.0.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz", + "integrity": "sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-reduce-idents": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", + "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", + "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", + "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz", + "integrity": "sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-selector-not/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-sort-media-queries": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", + "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", + "dependencies": { + "sort-css-media-queries": "2.2.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.4.23" + } + }, + "node_modules/postcss-svgo": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", + "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^3.2.0" + }, + "engines": { + "node": "^14 || ^16 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", + "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/postcss-zindex": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", + "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", + "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/prism-react-renderer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz", + "integrity": "sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==", + "dependencies": { + "@types/prismjs": "^1.26.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.0.0" + } + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/property-information": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", + "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", + "dependencies": { + "escape-goat": "^4.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", + "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", + "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.1" + } + }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, + "node_modules/react-helmet-async": { + "name": "@slorber/react-helmet-async", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@slorber/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-e9/OK8VhwUSc67diWI8Rb3I0YgI9/SBQtnhe9aEuK6MhZm7ntZZimXgwXnd8W96YTmSOb9M4d8LwhRZyhWr/1A==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.2.0", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-json-view-lite": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-2.4.2.tgz", + "integrity": "sha512-m7uTsXDgPQp8R9bJO4HD/66+i218eyQPAb+7/dGQpwg8i4z2afTFqtHJPQFHvJfgDCjGQ1HSGlL3HtrZDa3Tdg==", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-loadable": { + "name": "@docusaurus/react-loadable", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", + "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", + "dependencies": { + "@types/react": "*" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-loadable-ssr-addon-v5-slorber": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", + "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", + "dependencies": { + "@babel/runtime": "^7.10.3" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "react-loadable": "*", + "webpack": ">=4.41.1 || 5.x" + } + }, + "node_modules/react-router": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router-config": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", + "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", + "dependencies": { + "@babel/runtime": "^7.1.2" + }, + "peerDependencies": { + "react": ">=15", + "react-router": ">=5" + } + }, + "node_modules/react-router-dom": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", + "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.3.4", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recma-build-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", + "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-jsx": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.1.tgz", + "integrity": "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==", + "dependencies": { + "acorn-jsx": "^5.0.0", + "estree-util-to-js": "^2.0.0", + "recma-parse": "^1.0.0", + "recma-stringify": "^1.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/recma-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", + "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", + "dependencies": { + "@types/estree": "^1.0.0", + "esast-util-from-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", + "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-to-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexpu-core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/registry-auth-token": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.0.tgz", + "integrity": "sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==", + "dependencies": { + "@pnpm/npm-conf": "^2.1.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/registry-url": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", + "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==" + }, + "node_modules/regjsparser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "dependencies": { + "jsesc": "~3.0.2" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-recma": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", + "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "hast-util-to-estree": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remark-directive": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.1.tgz", + "integrity": "sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-directive": "^3.0.0", + "micromark-extension-directive": "^3.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-emoji": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.1.tgz", + "integrity": "sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==", + "dependencies": { + "@types/mdast": "^4.0.2", + "emoticon": "^4.0.1", + "mdast-util-find-and-replace": "^3.0.1", + "node-emoji": "^2.1.0", + "unified": "^11.0.4" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/remark-frontmatter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", + "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-frontmatter": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", + "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", + "dependencies": { + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/renderkid/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/renderkid/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-like": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", + "engines": { + "node": "*" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rtlcss": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", + "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0", + "postcss": "^8.4.21", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "rtlcss": "bin/rtlcss.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==" + }, + "node_modules/schema-dts": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/schema-dts/-/schema-dts-1.1.5.tgz", + "integrity": "sha512-RJr9EaCmsLzBX2NDiO5Z3ux2BVosNZN5jo0gWgsyKvxKIUL5R3swNvoorulAeL9kLB0iTSX7V6aokhla2m7xbg==" + }, + "node_modules/schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/search-insights": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", + "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", + "peer": true + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", + "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-handler": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.6.tgz", + "integrity": "sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==", + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "3.3.0", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/path-to-regexp": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", + "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==" + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/sitemap": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz", + "integrity": "sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==", + "dependencies": { + "@types/node": "^17.0.5", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + }, + "bin": { + "sitemap": "dist/cli.js" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=5.6.0" + } + }, + "node_modules/sitemap/node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + }, + "node_modules/skin-tone": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", + "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "dependencies": { + "unicode-emoji-modifier-base": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/sort-css-media-queries": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", + "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", + "engines": { + "node": ">= 6.3.0" + } + }, + "node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/srcset": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", + "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", + "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-to-js": { + "version": "1.1.17", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.17.tgz", + "integrity": "sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==", + "dependencies": { + "style-to-object": "1.0.9" + } + }, + "node_modules/style-to-object": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.9.tgz", + "integrity": "sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==", + "dependencies": { + "inline-style-parser": "0.2.4" + } + }, + "node_modules/stylehacks": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", + "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/tapable": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.43.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.43.1.tgz", + "integrity": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.14.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz", + "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-emoji-modifier-base": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", + "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unique-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "dependencies": { + "crypto-random-string": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", + "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/update-notifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", + "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", + "dependencies": { + "boxen": "^7.0.0", + "chalk": "^5.0.1", + "configstore": "^6.0.0", + "has-yarn": "^3.0.0", + "import-lazy": "^4.0.0", + "is-ci": "^3.0.1", + "is-installed-globally": "^0.4.0", + "is-npm": "^6.0.0", + "is-yarn-global": "^0.4.0", + "latest-version": "^7.0.0", + "pupa": "^3.1.0", + "semver": "^7.3.7", + "semver-diff": "^4.0.0", + "xdg-basedir": "^5.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/boxen": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", + "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^7.0.1", + "chalk": "^5.2.0", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.5.0.tgz", + "integrity": "sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/url-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/url-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/url-loader/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/url-loader/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/url-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + }, + "node_modules/utility-types": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", + "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/watchpack": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webpack": { + "version": "5.101.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.101.0.tgz", + "integrity": "sha512-B4t+nJqytPeuZlHuIKTbalhljIFXeNRqrUGAQgTGlfOl2lXXKXw+yZu6bicycP+PUlM44CxBjCFD6aciKFT3LQ==", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.2", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.2", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.1", + "webpack-sources": "^3.3.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", + "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", + "dependencies": { + "@discoveryjs/json-ext": "0.5.7", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "commander": "^7.2.0", + "debounce": "^1.2.1", + "escape-string-regexp": "^4.0.0", + "gzip-size": "^6.0.0", + "html-escaper": "^2.0.2", + "opener": "^1.5.2", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", + "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.4", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpackbar": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-6.0.1.tgz", + "integrity": "sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==", + "dependencies": { + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "consola": "^3.2.3", + "figures": "^3.2.0", + "markdown-table": "^2.0.0", + "pretty-time": "^1.1.0", + "std-env": "^3.7.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "webpack": "3 || 4 || 5" + } + }, + "node_modules/webpackbar/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/webpackbar/node_modules/markdown-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", + "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", + "dependencies": { + "repeat-string": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webpackbar/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpackbar/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "dependencies": { + "string-width": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xdg-basedir": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", + "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xml-js": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", + "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", + "dependencies": { + "sax": "^1.2.4" + }, + "bin": { + "xml-js": "bin/cli.js" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yocto-queue": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", + "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 0000000..27c6942 --- /dev/null +++ b/docs/package.json @@ -0,0 +1,47 @@ +{ + "name": "docs", + "version": "0.0.0", + "private": true, + "scripts": { + "docusaurus": "docusaurus", + "start": "docusaurus start", + "build": "docusaurus build", + "swizzle": "docusaurus swizzle", + "deploy": "docusaurus deploy", + "clear": "docusaurus clear", + "serve": "docusaurus serve", + "write-translations": "docusaurus write-translations", + "write-heading-ids": "docusaurus write-heading-ids", + "typecheck": "tsc" + }, + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/preset-classic": "3.8.1", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "prism-react-renderer": "^2.3.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "3.8.1", + "@docusaurus/tsconfig": "3.8.1", + "@docusaurus/types": "3.8.1", + "typescript": "~5.6.2" + }, + "browserslist": { + "production": [ + ">0.5%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 3 chrome version", + "last 3 firefox version", + "last 5 safari version" + ] + }, + "engines": { + "node": ">=18.0" + } +} diff --git a/docs/sidebars.ts b/docs/sidebars.ts new file mode 100644 index 0000000..1c67c2c --- /dev/null +++ b/docs/sidebars.ts @@ -0,0 +1,89 @@ +import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; + +// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) + +/** + * Creating a sidebar enables you to: + - create an ordered group of docs + - render a sidebar for each doc of that group + - provide next/previous navigation + + The sidebars can be generated from the filesystem, or explicitly defined here. + + Create as many sidebars as you want. + */ +const sidebars: SidebarsConfig = { + tutorialSidebar: [ + { + type: 'doc', + id: 'intro', + label: 'Introduction', + }, + { + type: 'category', + label: 'Features', + link: { + type: 'doc', + id: 'features', + }, + items: [ + 'serialization', + 'position', + 'origin-and-destination', + 'parse-tree-to-ast-mapping', + 'naming', + 'cross-platform-parsers', + 'common-elements', + 'transformation-framework', + 'code-generation', + 'dual-code-model-apis', + 'documentation-generation', + 'testing', + 'ast-traversal-and-querying', + { + type: 'category', + label: 'Interoperability', + link: { + type: 'doc', + id: 'interoperability', + }, + items: [ + 'emf-interoperability', + ], + }, + 'semantic-enrichment', + 'editor-support', + 'ast-representation', + 'validation', + 'symbol-resolution', + 'type-checking', + ], + }, + { + type: 'category', + label: 'Methods', + link: { + type: 'doc', + id: 'methods', + }, + items: [ + 'chisel-method', + ], + }, + { + type: 'category', + label: 'Use Cases', + link: { + type: 'doc', + id: 'use-cases', + }, + items: [ + 'building-transpiler', + 'building-parser', + 'building-codegenerator', + ], + }, + ], +}; + +export default sidebars; diff --git a/docs/src/components/HomepageFeatures/index.tsx b/docs/src/components/HomepageFeatures/index.tsx new file mode 100644 index 0000000..27e6dde --- /dev/null +++ b/docs/src/components/HomepageFeatures/index.tsx @@ -0,0 +1,67 @@ +import React from 'react'; +import clsx from 'clsx'; +import styles from './styles.module.css'; + +type FeatureItem = { + title: string; + Svg: React.ComponentType>; + description: JSX.Element; +}; + +const FeatureList: FeatureItem[] = [ + { + title: 'Flexible Framework', + Svg: require('@site/static/img/Star.svg').default, + description: ( + <> + Build parsers, transpilers, code analyzers, interpreters, code generators, and domain-specific languages with a systematic approach. + + ), + }, + { + title: 'Cross-Platform', + Svg: require('@site/static/img/Star.svg').default, + description: ( + <> + Use Starlasu on JVM (Kolasu), Node.js (Tylasu), Python (Pylasu), and .NET (Sharplasu) with consistent APIs. + + ), + }, + { + title: 'Proven Methods', + Svg: require('@site/static/img/Star.svg').default, + description: ( + <> + Leverage the Chisel Method and other proven approaches developed from hundreds of language engineering projects. + + ), + }, +]; + +function Feature({title, Svg, description}: FeatureItem) { + return ( +
+
+ +
+
+

{title}

+

{description}

+
+
+ ); +} + +export default function HomepageFeatures(): JSX.Element { + return ( +
+
+
+ {FeatureList.map((props, idx) => ( + + ))} +
+
+
+ ); +} \ No newline at end of file diff --git a/docs/src/components/HomepageFeatures/styles.module.css b/docs/src/components/HomepageFeatures/styles.module.css new file mode 100644 index 0000000..6c042c4 --- /dev/null +++ b/docs/src/components/HomepageFeatures/styles.module.css @@ -0,0 +1,11 @@ +.features { + display: flex; + align-items: center; + padding: 2rem 0; + width: 100%; +} + +.featureSvg { + height: 200px; + width: 200px; +} \ No newline at end of file diff --git a/docs/src/css/custom.css b/docs/src/css/custom.css new file mode 100644 index 0000000..2bc6a4c --- /dev/null +++ b/docs/src/css/custom.css @@ -0,0 +1,30 @@ +/** + * Any CSS included here will be global. The classic template + * bundles Infima by default. Infima is a CSS framework designed to + * work well for content-centric websites. + */ + +/* You can override the default Infima variables here. */ +:root { + --ifm-color-primary: #2e8555; + --ifm-color-primary-dark: #29784c; + --ifm-color-primary-darker: #277148; + --ifm-color-primary-darkest: #205d3b; + --ifm-color-primary-light: #33925d; + --ifm-color-primary-lighter: #359962; + --ifm-color-primary-lightest: #3cad6e; + --ifm-code-font-size: 95%; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); +} + +/* For readability concerns, you should choose a lighter palette in dark mode. */ +[data-theme='dark'] { + --ifm-color-primary: #25c2a0; + --ifm-color-primary-dark: #21af90; + --ifm-color-primary-darker: #1fa588; + --ifm-color-primary-darkest: #1a8870; + --ifm-color-primary-light: #29d5b0; + --ifm-color-primary-lighter: #32d8b4; + --ifm-color-primary-lightest: #4fddbf; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); +} diff --git a/docs/src/pages/index.module.css b/docs/src/pages/index.module.css new file mode 100644 index 0000000..329e749 --- /dev/null +++ b/docs/src/pages/index.module.css @@ -0,0 +1,18 @@ +.heroBanner { + padding: 4rem 0; + text-align: center; + position: relative; + overflow: hidden; +} + +@media screen and (max-width: 996px) { + .heroBanner { + padding: 2rem; + } +} + +.buttons { + display: flex; + align-items: center; + justify-content: center; +} \ No newline at end of file diff --git a/docs/src/pages/index.tsx b/docs/src/pages/index.tsx new file mode 100644 index 0000000..8ccd425 --- /dev/null +++ b/docs/src/pages/index.tsx @@ -0,0 +1,41 @@ +import React from 'react'; +import clsx from 'clsx'; +import Link from '@docusaurus/Link'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import Layout from '@theme/Layout'; +import HomepageFeatures from '@site/src/components/HomepageFeatures'; + +import styles from './index.module.css'; + +function HomepageHeader() { + const {siteConfig} = useDocusaurusContext(); + return ( +
+
+

{siteConfig.title}

+

{siteConfig.tagline}

+
+ + Get Started - 5min ⏱️ + +
+
+
+ ); +} + +export default function Home(): JSX.Element { + const {siteConfig} = useDocusaurusContext(); + return ( + + +
+ +
+
+ ); +} \ No newline at end of file diff --git a/docs/static/.nojekyll b/docs/static/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/docs/static/img/Star.svg b/docs/static/img/Star.svg new file mode 100644 index 0000000..9f43718 --- /dev/null +++ b/docs/static/img/Star.svg @@ -0,0 +1,3 @@ + + + diff --git a/Writerside/images/StarlasuOverview.png b/docs/static/img/StarlasuOverview.png similarity index 100% rename from Writerside/images/StarlasuOverview.png rename to docs/static/img/StarlasuOverview.png diff --git a/Writerside/images/chiselMethod.png b/docs/static/img/chiselMethod.png similarity index 100% rename from Writerside/images/chiselMethod.png rename to docs/static/img/chiselMethod.png diff --git a/docs/static/img/docusaurus-social-card.jpg b/docs/static/img/docusaurus-social-card.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ffcb448210e1a456cb3588ae8b396a597501f187 GIT binary patch literal 55746 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 fgzs%Vr*-jYG(YMS<ttdtee# literal 0 HcmV?d00001 diff --git a/docs/static/img/docusaurus.png b/docs/static/img/docusaurus.png new file mode 100644 index 0000000000000000000000000000000000000000..f458149e3c8f53335f28fbc162ae67f55575c881 GIT binary patch literal 5142 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 F{0H{b<4^zq literal 0 HcmV?d00001 diff --git a/docs/static/img/favicon.ico b/docs/static/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c01d54bcd39a5f853428f3cd5aa0f383d963c484 GIT binary patch literal 3626 zcmb`Je@s(X6vrR`EK3%b%orErlDW({vnABqA zcfaS{d+xbU5JKp0*;0YOg+;Fl!eT)XRuapIwFLL`=imZCSon$`se`_<%@MB=M~KG+ z=EW^FL`w|Bo>*ktlaS^(fut!95`iG5u=SZ8nfDHO#GaTlH1-XG^;vsjUb^gWTVz0+ z^=WR1wv9-2oeR=_;fL0H7rNWqAzGtO(D;`~cX(RcN0w2v24Y8)6t`cS^_ghs`_ho? z{0ka~1Dgo8TfAP$r*ua?>$_V+kZ!-(TvEJ7O2f;Y#tezt$&R4 zLI}=-y@Z!grf*h3>}DUL{km4R>ya_I5Ag#{h_&?+HpKS!;$x3LC#CqUQ8&nM?X))Q zXAy2?`YL4FbC5CgJu(M&Q|>1st8XXLZ|5MgwgjP$m_2Vt0(J z&Gu7bOlkbGzGm2sh?X`){7w69Y$1#@P@7DF{ZE=4%T0NDS)iH`tiPSKpDNW)zmtn( zw;4$f>k)4$LBc>eBAaTZeCM2(iD+sHlj!qd z2GjRJ>f_Qes(+mnzdA^NH?^NB(^o-%Gmg$c8MNMq&`vm@9Ut;*&$xSD)PKH{wBCEC z4P9%NQ;n2s59ffMn8*5)5AAg4-93gBXBDX`A7S& zH-|%S3Wd%T79fk-e&l`{!?lve8_epXhE{d3Hn$Cg!t=-4D(t$cK~7f&4s?t7wr3ZP z*!SRQ-+tr|e1|hbc__J`k3S!rMy<0PHy&R`v#aJv?`Y?2{avK5sQz%=Us()jcNuZV z*$>auD4cEw>;t`+m>h?f?%VFJZj8D|Y1e_SjxG%J4{-AkFtT2+ZZS5UScS~%;dp!V>)7zi`w(xwSd*FS;Lml=f6hn#jq)2is4nkp+aTrV?)F6N z>DY#SU0IZ;*?Hu%tSj4edd~kYNHMFvS&5}#3-M;mBCOCZL3&;2obdG?qZ>rD|zC|Lu|sny76pn2xl|6sk~Hs{X9{8iBW zwiwgQt+@hi`FYMEhX2 \ No newline at end of file diff --git a/docs/static/img/undraw_docusaurus_mountain.svg b/docs/static/img/undraw_docusaurus_mountain.svg new file mode 100644 index 0000000..af961c4 --- /dev/null +++ b/docs/static/img/undraw_docusaurus_mountain.svg @@ -0,0 +1,171 @@ + + Easy to Use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/undraw_docusaurus_react.svg b/docs/static/img/undraw_docusaurus_react.svg new file mode 100644 index 0000000..94b5cf0 --- /dev/null +++ b/docs/static/img/undraw_docusaurus_react.svg @@ -0,0 +1,170 @@ + + Powered by React + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/undraw_docusaurus_tree.svg b/docs/static/img/undraw_docusaurus_tree.svg new file mode 100644 index 0000000..d9161d3 --- /dev/null +++ b/docs/static/img/undraw_docusaurus_tree.svg @@ -0,0 +1,40 @@ + + Focus on What Matters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tsconfig.json b/docs/tsconfig.json new file mode 100644 index 0000000..d221066 --- /dev/null +++ b/docs/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "lib": ["dom", "dom.iterable", "ES6"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "react-jsx", + "incremental": true, + "baseUrl": ".", + "paths": { + "@site/*": ["./*"], + "@docusaurus/*": ["node_modules/@docusaurus/*"] + } + }, + "include": ["src/**/*", "docusaurus.config.ts"], + "exclude": ["node_modules", "build", ".docusaurus"] +} From cb2d7fccbc078129d8a3e1e29a2825e90efc9b70 Mon Sep 17 00:00:00 2001 From: Federico Tomassetti Date: Tue, 12 Aug 2025 11:47:38 +0200 Subject: [PATCH 02/14] Working on the index page --- docs/docs/tutorial-basics/_category_.json | 8 - docs/docs/tutorial-basics/congratulations.md | 23 --- .../tutorial-basics/create-a-blog-post.md | 34 ---- .../docs/tutorial-basics/create-a-document.md | 57 ------- docs/docs/tutorial-basics/create-a-page.md | 43 ----- docs/docs/tutorial-basics/deploy-your-site.md | 31 ---- .../tutorial-basics/markdown-features.mdx | 152 ------------------ docs/docs/tutorial-extras/_category_.json | 7 - .../img/docsVersionDropdown.png | Bin 25427 -> 0 bytes .../tutorial-extras/img/localeDropdown.png | Bin 27841 -> 0 bytes .../tutorial-extras/manage-docs-versions.md | 55 ------- .../tutorial-extras/translate-your-site.md | 88 ---------- docs/docusaurus.config.ts | 10 +- .../src/components/HomepageFeatures/index.tsx | 7 +- docs/src/pages/index.tsx | 7 - 15 files changed, 9 insertions(+), 513 deletions(-) delete mode 100644 docs/docs/tutorial-basics/_category_.json delete mode 100644 docs/docs/tutorial-basics/congratulations.md delete mode 100644 docs/docs/tutorial-basics/create-a-blog-post.md delete mode 100644 docs/docs/tutorial-basics/create-a-document.md delete mode 100644 docs/docs/tutorial-basics/create-a-page.md delete mode 100644 docs/docs/tutorial-basics/deploy-your-site.md delete mode 100644 docs/docs/tutorial-basics/markdown-features.mdx delete mode 100644 docs/docs/tutorial-extras/_category_.json delete mode 100644 docs/docs/tutorial-extras/img/docsVersionDropdown.png delete mode 100644 docs/docs/tutorial-extras/img/localeDropdown.png delete mode 100644 docs/docs/tutorial-extras/manage-docs-versions.md delete mode 100644 docs/docs/tutorial-extras/translate-your-site.md diff --git a/docs/docs/tutorial-basics/_category_.json b/docs/docs/tutorial-basics/_category_.json deleted file mode 100644 index 2e6db55..0000000 --- a/docs/docs/tutorial-basics/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "Tutorial - Basics", - "position": 2, - "link": { - "type": "generated-index", - "description": "5 minutes to learn the most important Docusaurus concepts." - } -} diff --git a/docs/docs/tutorial-basics/congratulations.md b/docs/docs/tutorial-basics/congratulations.md deleted file mode 100644 index 04771a0..0000000 --- a/docs/docs/tutorial-basics/congratulations.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Congratulations! - -You have just learned the **basics of Docusaurus** and made some changes to the **initial template**. - -Docusaurus has **much more to offer**! - -Have **5 more minutes**? Take a look at **[versioning](../tutorial-extras/manage-docs-versions.md)** and **[i18n](../tutorial-extras/translate-your-site.md)**. - -Anything **unclear** or **buggy** in this tutorial? [Please report it!](https://github.com/facebook/docusaurus/discussions/4610) - -## What's next? - -- Read the [official documentation](https://docusaurus.io/) -- Modify your site configuration with [`docusaurus.config.js`](https://docusaurus.io/docs/api/docusaurus-config) -- Add navbar and footer items with [`themeConfig`](https://docusaurus.io/docs/api/themes/configuration) -- Add a custom [Design and Layout](https://docusaurus.io/docs/styling-layout) -- Add a [search bar](https://docusaurus.io/docs/search) -- Find inspirations in the [Docusaurus showcase](https://docusaurus.io/showcase) -- Get involved in the [Docusaurus Community](https://docusaurus.io/community/support) diff --git a/docs/docs/tutorial-basics/create-a-blog-post.md b/docs/docs/tutorial-basics/create-a-blog-post.md deleted file mode 100644 index 550ae17..0000000 --- a/docs/docs/tutorial-basics/create-a-blog-post.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Create a Blog Post - -Docusaurus creates a **page for each blog post**, but also a **blog index page**, a **tag system**, an **RSS** feed... - -## Create your first Post - -Create a file at `blog/2021-02-28-greetings.md`: - -```md title="blog/2021-02-28-greetings.md" ---- -slug: greetings -title: Greetings! -authors: - - name: Joel Marcey - title: Co-creator of Docusaurus 1 - url: https://github.com/JoelMarcey - image_url: https://github.com/JoelMarcey.png - - name: Sébastien Lorber - title: Docusaurus maintainer - url: https://sebastienlorber.com - image_url: https://github.com/slorber.png -tags: [greetings] ---- - -Congratulations, you have made your first post! - -Feel free to play around and edit this post as much as you like. -``` - -A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings). diff --git a/docs/docs/tutorial-basics/create-a-document.md b/docs/docs/tutorial-basics/create-a-document.md deleted file mode 100644 index c22fe29..0000000 --- a/docs/docs/tutorial-basics/create-a-document.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Create a Document - -Documents are **groups of pages** connected through: - -- a **sidebar** -- **previous/next navigation** -- **versioning** - -## Create your first Doc - -Create a Markdown file at `docs/hello.md`: - -```md title="docs/hello.md" -# Hello - -This is my **first Docusaurus document**! -``` - -A new document is now available at [http://localhost:3000/docs/hello](http://localhost:3000/docs/hello). - -## Configure the Sidebar - -Docusaurus automatically **creates a sidebar** from the `docs` folder. - -Add metadata to customize the sidebar label and position: - -```md title="docs/hello.md" {1-4} ---- -sidebar_label: 'Hi!' -sidebar_position: 3 ---- - -# Hello - -This is my **first Docusaurus document**! -``` - -It is also possible to create your sidebar explicitly in `sidebars.js`: - -```js title="sidebars.js" -export default { - tutorialSidebar: [ - 'intro', - // highlight-next-line - 'hello', - { - type: 'category', - label: 'Tutorial', - items: ['tutorial-basics/create-a-document'], - }, - ], -}; -``` diff --git a/docs/docs/tutorial-basics/create-a-page.md b/docs/docs/tutorial-basics/create-a-page.md deleted file mode 100644 index 20e2ac3..0000000 --- a/docs/docs/tutorial-basics/create-a-page.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Create a Page - -Add **Markdown or React** files to `src/pages` to create a **standalone page**: - -- `src/pages/index.js` → `localhost:3000/` -- `src/pages/foo.md` → `localhost:3000/foo` -- `src/pages/foo/bar.js` → `localhost:3000/foo/bar` - -## Create your first React Page - -Create a file at `src/pages/my-react-page.js`: - -```jsx title="src/pages/my-react-page.js" -import React from 'react'; -import Layout from '@theme/Layout'; - -export default function MyReactPage() { - return ( - -

My React page

-

This is a React page

-
- ); -} -``` - -A new page is now available at [http://localhost:3000/my-react-page](http://localhost:3000/my-react-page). - -## Create your first Markdown Page - -Create a file at `src/pages/my-markdown-page.md`: - -```mdx title="src/pages/my-markdown-page.md" -# My Markdown page - -This is a Markdown page -``` - -A new page is now available at [http://localhost:3000/my-markdown-page](http://localhost:3000/my-markdown-page). diff --git a/docs/docs/tutorial-basics/deploy-your-site.md b/docs/docs/tutorial-basics/deploy-your-site.md deleted file mode 100644 index 1c50ee0..0000000 --- a/docs/docs/tutorial-basics/deploy-your-site.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Deploy your site - -Docusaurus is a **static-site-generator** (also called **[Jamstack](https://jamstack.org/)**). - -It builds your site as simple **static HTML, JavaScript and CSS files**. - -## Build your site - -Build your site **for production**: - -```bash -npm run build -``` - -The static files are generated in the `build` folder. - -## Deploy your site - -Test your production build locally: - -```bash -npm run serve -``` - -The `build` folder is now served at [http://localhost:3000/](http://localhost:3000/). - -You can now deploy the `build` folder **almost anywhere** easily, **for free** or very small cost (read the **[Deployment Guide](https://docusaurus.io/docs/deployment)**). diff --git a/docs/docs/tutorial-basics/markdown-features.mdx b/docs/docs/tutorial-basics/markdown-features.mdx deleted file mode 100644 index 35e0082..0000000 --- a/docs/docs/tutorial-basics/markdown-features.mdx +++ /dev/null @@ -1,152 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Markdown Features - -Docusaurus supports **[Markdown](https://daringfireball.net/projects/markdown/syntax)** and a few **additional features**. - -## Front Matter - -Markdown documents have metadata at the top called [Front Matter](https://jekyllrb.com/docs/front-matter/): - -```text title="my-doc.md" -// highlight-start ---- -id: my-doc-id -title: My document title -description: My document description -slug: /my-custom-url ---- -// highlight-end - -## Markdown heading - -Markdown text with [links](./hello.md) -``` - -## Links - -Regular Markdown links are supported, using url paths or relative file paths. - -```md -Let's see how to [Create a page](/create-a-page). -``` - -```md -Let's see how to [Create a page](./create-a-page.md). -``` - -**Result:** Let's see how to [Create a page](./create-a-page.md). - -## Images - -Regular Markdown images are supported. - -You can use absolute paths to reference images in the static directory (`static/img/docusaurus.png`): - -```md -![Docusaurus logo](/img/docusaurus.png) -``` - -![Docusaurus logo](/img/docusaurus.png) - -You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them: - -```md -![Docusaurus logo](./img/docusaurus.png) -``` - -## Code Blocks - -Markdown code blocks are supported with Syntax highlighting. - -````md -```jsx title="src/components/HelloDocusaurus.js" -function HelloDocusaurus() { - return

Hello, Docusaurus!

; -} -``` -```` - -```jsx title="src/components/HelloDocusaurus.js" -function HelloDocusaurus() { - return

Hello, Docusaurus!

; -} -``` - -## Admonitions - -Docusaurus has a special syntax to create admonitions and callouts: - -```md -:::tip My tip - -Use this awesome feature option - -::: - -:::danger Take care - -This action is dangerous - -::: -``` - -:::tip My tip - -Use this awesome feature option - -::: - -:::danger Take care - -This action is dangerous - -::: - -## MDX and React Components - -[MDX](https://mdxjs.com/) can make your documentation more **interactive** and allows using any **React components inside Markdown**: - -```jsx -export const Highlight = ({children, color}) => ( - { - alert(`You clicked the color ${color} with label ${children}`) - }}> - {children} - -); - -This is Docusaurus green ! - -This is Facebook blue ! -``` - -export const Highlight = ({children, color}) => ( - { - alert(`You clicked the color ${color} with label ${children}`); - }}> - {children} - -); - -This is Docusaurus green ! - -This is Facebook blue ! diff --git a/docs/docs/tutorial-extras/_category_.json b/docs/docs/tutorial-extras/_category_.json deleted file mode 100644 index a8ffcc1..0000000 --- a/docs/docs/tutorial-extras/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "label": "Tutorial - Extras", - "position": 3, - "link": { - "type": "generated-index" - } -} diff --git a/docs/docs/tutorial-extras/img/docsVersionDropdown.png b/docs/docs/tutorial-extras/img/docsVersionDropdown.png deleted file mode 100644 index 97e4164618b5f8beda34cfa699720aba0ad2e342..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25427 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 diff --git a/docs/docs/tutorial-extras/img/localeDropdown.png b/docs/docs/tutorial-extras/img/localeDropdown.png deleted file mode 100644 index e257edc1f932985396bf59584c7ccfaddf955779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27841 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 JrC|B>e*nH7H{}2T diff --git a/docs/docs/tutorial-extras/manage-docs-versions.md b/docs/docs/tutorial-extras/manage-docs-versions.md deleted file mode 100644 index ccda0b9..0000000 --- a/docs/docs/tutorial-extras/manage-docs-versions.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Manage Docs Versions - -Docusaurus can manage multiple versions of your docs. - -## Create a docs version - -Release a version 1.0 of your project: - -```bash -npm run docusaurus docs:version 1.0 -``` - -The `docs` folder is copied into `versioned_docs/version-1.0` and `versions.json` is created. - -Your docs now have 2 versions: - -- `1.0` at `http://localhost:3000/docs/` for the version 1.0 docs -- `current` at `http://localhost:3000/docs/next/` for the **upcoming, unreleased docs** - -## Add a Version Dropdown - -To navigate seamlessly across versions, add a version dropdown. - -Modify the `docusaurus.config.js` file: - -```js title="docusaurus.config.js" -export default { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: 'docsVersionDropdown', - }, - // highlight-end - ], - }, - }, -}; -``` - -The docs version dropdown appears in your navbar: - -![Docs Version Dropdown](./img/docsVersionDropdown.png) - -## Update an existing version - -It is possible to edit versioned docs in their respective folder: - -- `versioned_docs/version-1.0/hello.md` updates `http://localhost:3000/docs/hello` -- `docs/hello.md` updates `http://localhost:3000/docs/next/hello` diff --git a/docs/docs/tutorial-extras/translate-your-site.md b/docs/docs/tutorial-extras/translate-your-site.md deleted file mode 100644 index b5a644a..0000000 --- a/docs/docs/tutorial-extras/translate-your-site.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Translate your site - -Let's translate `docs/intro.md` to French. - -## Configure i18n - -Modify `docusaurus.config.js` to add support for the `fr` locale: - -```js title="docusaurus.config.js" -export default { - i18n: { - defaultLocale: 'en', - locales: ['en', 'fr'], - }, -}; -``` - -## Translate a doc - -Copy the `docs/intro.md` file to the `i18n/fr` folder: - -```bash -mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/ - -cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md -``` - -Translate `i18n/fr/docusaurus-plugin-content-docs/current/intro.md` in French. - -## Start your localized site - -Start your site on the French locale: - -```bash -npm run start -- --locale fr -``` - -Your localized site is accessible at [http://localhost:3000/fr/](http://localhost:3000/fr/) and the `Getting Started` page is translated. - -:::caution - -In development, you can only use one locale at a time. - -::: - -## Add a Locale Dropdown - -To navigate seamlessly across languages, add a locale dropdown. - -Modify the `docusaurus.config.js` file: - -```js title="docusaurus.config.js" -export default { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: 'localeDropdown', - }, - // highlight-end - ], - }, - }, -}; -``` - -The locale dropdown now appears in your navbar: - -![Locale Dropdown](./img/localeDropdown.png) - -## Build your localized site - -Build your site for a specific locale: - -```bash -npm run build -- --locale fr -``` - -Or build your site to include all the locales at once: - -```bash -npm run build -``` diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts index 877bc54..245afac 100644 --- a/docs/docusaurus.config.ts +++ b/docs/docusaurus.config.ts @@ -5,8 +5,8 @@ import type * as Preset from '@docusaurus/preset-classic'; // This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) const config: Config = { - title: 'The Starlasu Approach', - tagline: 'A flexible, systematic, and extensible framework for Language Engineering', + title: 'The Starlasu Framework', + tagline: 'An opionated framework for building advanced Language Engineering systems', favicon: 'img/favicon.ico', // Future flags, see https://docusaurus.io/docs/api/docusaurus-config#future @@ -94,15 +94,15 @@ const config: Config = { }, { label: 'Features', - to: '/docs/category/features', + to: '/docs/features', }, { label: 'Methods', - to: '/docs/category/methods', + to: '/docs/methods', }, { label: 'Use Cases', - to: '/docs/category/use-cases', + to: '/docs/use-cases', }, ], }, diff --git a/docs/src/components/HomepageFeatures/index.tsx b/docs/src/components/HomepageFeatures/index.tsx index 27e6dde..c73e290 100644 --- a/docs/src/components/HomepageFeatures/index.tsx +++ b/docs/src/components/HomepageFeatures/index.tsx @@ -10,7 +10,7 @@ type FeatureItem = { const FeatureList: FeatureItem[] = [ { - title: 'Flexible Framework', + title: 'Comprehensive', Svg: require('@site/static/img/Star.svg').default, description: ( <> @@ -23,7 +23,7 @@ const FeatureList: FeatureItem[] = [ Svg: require('@site/static/img/Star.svg').default, description: ( <> - Use Starlasu on JVM (Kolasu), Node.js (Tylasu), Python (Pylasu), and .NET (Sharplasu) with consistent APIs. + Use Starlasu on JVM (Kolasu), Node.js (Tylasu), the browser (Tylasu), Python (Pylasu), and .NET (Sharplasu) with consistent APIs. ), }, @@ -32,7 +32,8 @@ const FeatureList: FeatureItem[] = [ Svg: require('@site/static/img/Star.svg').default, description: ( <> - Leverage the Chisel Method and other proven approaches developed from hundreds of language engineering projects. + Leverage the Chisel Method and other proven approaches developed from over a decade of experience working on + language engineering projects with clients from all over the world. ), }, diff --git a/docs/src/pages/index.tsx b/docs/src/pages/index.tsx index 8ccd425..e6cf205 100644 --- a/docs/src/pages/index.tsx +++ b/docs/src/pages/index.tsx @@ -14,13 +14,6 @@ function HomepageHeader() {

{siteConfig.title}

{siteConfig.tagline}

-
- - Get Started - 5min ⏱️ - -
); From 9b99f6b4020bb965a77a33942f3b1fe6f2378878 Mon Sep 17 00:00:00 2001 From: Federico Tomassetti Date: Tue, 12 Aug 2025 12:24:35 +0200 Subject: [PATCH 03/14] Improving first page --- .../src/components/HomepageFeatures/index.tsx | 88 +++++++++++-------- docs/src/css/custom.css | 33 +++++++ 2 files changed, 83 insertions(+), 38 deletions(-) diff --git a/docs/src/components/HomepageFeatures/index.tsx b/docs/src/components/HomepageFeatures/index.tsx index c73e290..4e33425 100644 --- a/docs/src/components/HomepageFeatures/index.tsx +++ b/docs/src/components/HomepageFeatures/index.tsx @@ -4,52 +4,62 @@ import styles from './styles.module.css'; type FeatureItem = { title: string; - Svg: React.ComponentType>; + icon: string; description: JSX.Element; }; const FeatureList: FeatureItem[] = [ - { - title: 'Comprehensive', - Svg: require('@site/static/img/Star.svg').default, - description: ( - <> - Build parsers, transpilers, code analyzers, interpreters, code generators, and domain-specific languages with a systematic approach. - - ), - }, - { - title: 'Cross-Platform', - Svg: require('@site/static/img/Star.svg').default, - description: ( - <> - Use Starlasu on JVM (Kolasu), Node.js (Tylasu), the browser (Tylasu), Python (Pylasu), and .NET (Sharplasu) with consistent APIs. - - ), - }, - { - title: 'Proven Methods', - Svg: require('@site/static/img/Star.svg').default, - description: ( - <> - Leverage the Chisel Method and other proven approaches developed from over a decade of experience working on - language engineering projects with clients from all over the world. - - ), - }, + { + title: 'Flexible Framework', + icon: '🔧', + description: ( + <> + Build parsers, transpilers, code analyzers, interpreters, code generators, and domain-specific languages with a systematic approach. + + ), + }, + { + title: 'Cross-Platform', + icon: '🌐', + description: ( + <> + Use Starlasu on JVM (Kolasu), Node.js (Tylasu), Python (Pylasu), and .NET (Sharplasu) with consistent APIs. + + ), + }, + { + title: 'Openness', + icon: '🔓', + description: ( + <> + Built on LionWeb standards for interoperability, with all base libraries open-source for transparency and community contributions. + + ), + }, + { + title: 'Proven Methods', + icon: '📚', + description: ( + <> + Leverage the Chisel Method and other proven approaches developed from hundreds of language engineering projects. + + ), + }, ]; -function Feature({title, Svg, description}: FeatureItem) { +function Feature({title, icon, description}: FeatureItem) { return ( -
-
- +
+
+
+ {icon} +
+
+
+

{title}

+

{description}

+
-
-

{title}

-

{description}

-
-
); } @@ -59,7 +69,9 @@ export default function HomepageFeatures(): JSX.Element {
{FeatureList.map((props, idx) => ( +
+
))}
diff --git a/docs/src/css/custom.css b/docs/src/css/custom.css index 2bc6a4c..a63eea0 100644 --- a/docs/src/css/custom.css +++ b/docs/src/css/custom.css @@ -28,3 +28,36 @@ --ifm-color-primary-lightest: #4fddbf; --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); } + +div.feature { + max-width: 27em; + padding: 3em; + border-radius: 1em; + border: 1px solid var(--ifm-color-primary); + background-color: #f9f9f9; /* light grey so it stands out from white */ + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08); + transition: transform 0.2s ease, box-shadow 0.2s ease; + margin: auto; +} + +div.feature:hover { + transform: translateY(-4px); /* small lift effect */ + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12); +} + +div.feature div.content { + /*max-width: 20em;*/ +} + +.row { + gap: 3em; /*!* adjust as needed *!*/ +} + +.row > .featureHolder { + flex: 1 1 calc(50% - 3em); /* if you have 3 per row */ + text-align: center; +} + +.feature { + +} \ No newline at end of file From 8755ec808486b8895256ee65745e2f9214b80a35 Mon Sep 17 00:00:00 2001 From: Federico Tomassetti Date: Tue, 12 Aug 2025 12:27:17 +0200 Subject: [PATCH 04/14] Modifying footer --- docs/docusaurus.config.ts | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts index 245afac..704f390 100644 --- a/docs/docusaurus.config.ts +++ b/docs/docusaurus.config.ts @@ -106,12 +106,33 @@ const config: Config = { }, ], }, + { + title: 'Libraries', + items: [ + { + label: 'Kolasu', + href: 'https://github.com/Strumenta/kolasu', + }, + { + label: 'Tylasu', + href: 'https://github.com/Strumenta/tylasu', + }, + { + label: 'Pylasu', + href: 'https://github.com/Strumenta/pylasu', + }, + { + label: 'Sharplasu', + href: 'https://github.com/Strumenta/sharplasu', + }, + ], + }, { title: 'Community', items: [ { - label: 'GitHub', - href: 'https://github.com/strumenta/starlasu', + label: 'LionWeb', + href: 'https://lionweb.io', }, { label: 'Strumenta', From 22ee1ce88ee3d48259a97aabbc7ed5414d7485e7 Mon Sep 17 00:00:00 2001 From: Federico Tomassetti Date: Tue, 12 Aug 2025 12:40:43 +0200 Subject: [PATCH 05/14] Change header --- docs/static/img/Star.svg | 3 - docs/static/img/docusaurus-social-card.jpg | Bin 55746 -> 0 bytes docs/static/img/docusaurus.png | Bin 5142 -> 0 bytes docs/static/img/starlasu-logo.png | Bin 0 -> 2234903 bytes .../static/img/undraw_docusaurus_mountain.svg | 171 ------------------ docs/static/img/undraw_docusaurus_react.svg | 170 ----------------- docs/static/img/undraw_docusaurus_tree.svg | 40 ---- 7 files changed, 384 deletions(-) delete mode 100644 docs/static/img/Star.svg delete mode 100644 docs/static/img/docusaurus-social-card.jpg delete mode 100644 docs/static/img/docusaurus.png create mode 100644 docs/static/img/starlasu-logo.png delete mode 100644 docs/static/img/undraw_docusaurus_mountain.svg delete mode 100644 docs/static/img/undraw_docusaurus_react.svg delete mode 100644 docs/static/img/undraw_docusaurus_tree.svg diff --git a/docs/static/img/Star.svg b/docs/static/img/Star.svg deleted file mode 100644 index 9f43718..0000000 --- a/docs/static/img/Star.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/static/img/docusaurus-social-card.jpg b/docs/static/img/docusaurus-social-card.jpg deleted file mode 100644 index ffcb448210e1a456cb3588ae8b396a597501f187..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55746 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
sH`pxVp$E*LSx0bY$^ho1gZ(Ce+BX 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 fgzs%Vr*-jYG(YMS<ttdtee# diff --git a/docs/static/img/docusaurus.png b/docs/static/img/docusaurus.png deleted file mode 100644 index f458149e3c8f53335f28fbc162ae67f55575c881..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5142 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 F{0H{b<4^zq diff --git a/docs/static/img/starlasu-logo.png b/docs/static/img/starlasu-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8b5e9412027482e349a7176825cdc4d65bec91c2 GIT binary patch literal 2234903 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%0AZmA96h$H+jgGS7)P3hHg6IRDU}ha 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