From f0470537a0685191df8f9fa1d3c71a9dc4ffe3e3 Mon Sep 17 00:00:00 2001
From: Thomas Poignant
Date: Tue, 1 Nov 2022 23:39:20 +0100
Subject: [PATCH 1/9] Rework doc step 1
Signed-off-by: Thomas Poignant
---
.../index.md | 4 +-
.../{data_collection => }/_category_.json | 2 +-
docs/docs/configure_flag/_category_.json | 10 +
docs/docs/{ => configure_flag}/flag_format.md | 18 +-
.../configure_flag/rollout/_category_.json | 5 +
.../{ => configure_flag}/rollout/canary.md | 0
.../rollout/experimentation.md | 2 +-
.../{ => configure_flag}/rollout/index.md | 0
.../rollout/progressive.md | 0
.../{ => configure_flag}/rollout/scheduled.md | 0
.../target_user.md} | 9 +-
docs/docs/faq.md | 4 +-
docs/docs/flag_file/_category_.json | 5 -
docs/docs/getting_started/_category_.json | 12 +
.../using-go-module.md} | 4 +-
.../docs/getting_started/using-openfeature.md | 9 +
docs/docs/go_module/_category_.json | 10 +
docs/docs/{ => go_module}/configuration.md | 27 +-
.../go_module/data_collection/_category_.json | 5 +
.../{ => go_module}/data_collection/custom.md | 4 +
.../{ => go_module}/data_collection/file.md | 4 +
.../data_collection/google_cloud_storage.md | 4 +
.../{ => go_module}/data_collection/index.md | 6 +-
.../{ => go_module}/data_collection/log.md | 4 +
.../{ => go_module}/data_collection/s3.md | 4 +
.../data_collection/webhook.md | 4 +
docs/docs/go_module/notifier/_category_.json | 5 +
docs/docs/{ => go_module}/notifier/custom.md | 4 +
docs/docs/{ => go_module}/notifier/index.md | 4 +
docs/docs/{ => go_module}/notifier/slack.md | 4 +
docs/docs/{ => go_module}/notifier/webhook.md | 4 +
docs/docs/index.md | 51 +-
docs/docs/migrate_v0_v1.md | 17 +
docs/docs/notifier/_category_.json | 5 -
docs/docs/openfeature_sdk/_category_.json | 10 +
docs/docs/openfeature_sdk/concepts.md | 33 +
.../openfeature_sdk/configure_relay_proxy.md | 177 +++
.../getting_started_relay_proxy.md | 56 +
.../openfeature_sdk/install_relay_proxy.md | 84 +
docs/docs/openfeature_sdk/openfeature_java.md | 6 +
.../openfeature_sdk/openfeature_javascript.md | 6 +
.../openfeature_sdk/openfeature_typescript.md | 6 +
.../openfeature_sdk/relay_proxy_endpoints.md | 187 +++
docs/docs/rollout/_category_.json | 5 -
docs/docs/store_file/_category_.json | 5 +
docs/docs/{flag_file => store_file}/custom.md | 4 +
docs/docs/{flag_file => store_file}/file.md | 4 +
docs/docs/{flag_file => store_file}/github.md | 4 +
.../google_cloud_storage.md | 4 +
docs/docs/{flag_file => store_file}/http.md | 4 +
docs/docs/{flag_file => store_file}/index.md | 6 +-
.../kubernetes_configmaps.md | 4 +
docs/docs/{flag_file => store_file}/s3.md | 4 +
docs/package-lock.json | 1365 ++++++-----------
docs/package.json | 6 +-
docs/static/docs/openfeature/concepts.jpg | Bin 0 -> 89608 bytes
56 files changed, 1227 insertions(+), 1003 deletions(-)
rename docs/docs/{data_collection => }/_category_.json (72%)
create mode 100644 docs/docs/configure_flag/_category_.json
rename docs/docs/{ => configure_flag}/flag_format.md (92%)
create mode 100644 docs/docs/configure_flag/rollout/_category_.json
rename docs/docs/{ => configure_flag}/rollout/canary.md (100%)
rename docs/docs/{ => configure_flag}/rollout/experimentation.md (98%)
rename docs/docs/{ => configure_flag}/rollout/index.md (100%)
rename docs/docs/{ => configure_flag}/rollout/progressive.md (100%)
rename docs/docs/{ => configure_flag}/rollout/scheduled.md (100%)
rename docs/docs/{users.md => configure_flag/target_user.md} (96%)
delete mode 100644 docs/docs/flag_file/_category_.json
create mode 100644 docs/docs/getting_started/_category_.json
rename docs/docs/{quickstart.md => getting_started/using-go-module.md} (91%)
create mode 100644 docs/docs/getting_started/using-openfeature.md
create mode 100644 docs/docs/go_module/_category_.json
rename docs/docs/{ => go_module}/configuration.md (88%)
create mode 100644 docs/docs/go_module/data_collection/_category_.json
rename docs/docs/{ => go_module}/data_collection/custom.md (96%)
rename docs/docs/{ => go_module}/data_collection/file.md (98%)
rename docs/docs/{ => go_module}/data_collection/google_cloud_storage.md (99%)
rename docs/docs/{ => go_module}/data_collection/index.md (98%)
rename docs/docs/{ => go_module}/data_collection/log.md (98%)
rename docs/docs/{ => go_module}/data_collection/s3.md (99%)
rename docs/docs/{ => go_module}/data_collection/webhook.md (98%)
create mode 100644 docs/docs/go_module/notifier/_category_.json
rename docs/docs/{ => go_module}/notifier/custom.md (95%)
rename docs/docs/{ => go_module}/notifier/index.md (94%)
rename docs/docs/{ => go_module}/notifier/slack.md (97%)
rename docs/docs/{ => go_module}/notifier/webhook.md (99%)
create mode 100644 docs/docs/migrate_v0_v1.md
delete mode 100644 docs/docs/notifier/_category_.json
create mode 100644 docs/docs/openfeature_sdk/_category_.json
create mode 100644 docs/docs/openfeature_sdk/concepts.md
create mode 100644 docs/docs/openfeature_sdk/configure_relay_proxy.md
create mode 100644 docs/docs/openfeature_sdk/getting_started_relay_proxy.md
create mode 100644 docs/docs/openfeature_sdk/install_relay_proxy.md
create mode 100644 docs/docs/openfeature_sdk/openfeature_java.md
create mode 100644 docs/docs/openfeature_sdk/openfeature_javascript.md
create mode 100644 docs/docs/openfeature_sdk/openfeature_typescript.md
create mode 100644 docs/docs/openfeature_sdk/relay_proxy_endpoints.md
delete mode 100644 docs/docs/rollout/_category_.json
create mode 100644 docs/docs/store_file/_category_.json
rename docs/docs/{flag_file => store_file}/custom.md (96%)
rename docs/docs/{flag_file => store_file}/file.md (96%)
rename docs/docs/{flag_file => store_file}/github.md (98%)
rename docs/docs/{flag_file => store_file}/google_cloud_storage.md (98%)
rename docs/docs/{flag_file => store_file}/http.md (98%)
rename docs/docs/{flag_file => store_file}/index.md (91%)
rename docs/docs/{flag_file => store_file}/kubernetes_configmaps.md (97%)
rename docs/docs/{flag_file => store_file}/s3.md (97%)
create mode 100644 docs/static/docs/openfeature/concepts.jpg
diff --git a/docs/blog/2022-07-01-feature-flags-devobs-podcast/index.md b/docs/blog/2022-07-01-feature-flags-devobs-podcast/index.md
index 17e78fc579d..4167075f68c 100644
--- a/docs/blog/2022-07-01-feature-flags-devobs-podcast/index.md
+++ b/docs/blog/2022-07-01-feature-flags-devobs-podcast/index.md
@@ -5,8 +5,8 @@ tags: [GO Feature Flag, Openfeature, Podcast]
---
![](./devobs.jpg)
-Earlier this week the super cool podcast Dev’Obs asked me to talk about feature flags, go-feature-flag and also the super nice initiative Open-feature.
+Earlier this week the super cool podcast Dev’Obs asked me to talk about feature flags, go-feature-flag and also the super nice initiative OpenFeature.
-The podcast is in French 🇫🇷 (yes I know sorry…) but you can learn a lot of cool things, when to use them, what is Open-feature about and all the cool things that the feature flags can bring to your developer experience.
+The podcast is in French 🇫🇷 (yes I know sorry…) but you can learn a lot of cool things, when to use them, what is OpenFeature about and all the cool things that the feature flags can bring to your developer experience.
Listen it here: https://www.listennotes.com/podcasts/devobs/devobs-24-feature-flags-rknRoFGL7N5/
diff --git a/docs/docs/data_collection/_category_.json b/docs/docs/_category_.json
similarity index 72%
rename from docs/docs/data_collection/_category_.json
rename to docs/docs/_category_.json
index 0811c99d70a..c640b3bdf2d 100644
--- a/docs/docs/data_collection/_category_.json
+++ b/docs/docs/_category_.json
@@ -1,5 +1,5 @@
{
- "position": 70,
+ "position": 0,
"collapsible": true,
"collapsed": false
}
diff --git a/docs/docs/configure_flag/_category_.json b/docs/docs/configure_flag/_category_.json
new file mode 100644
index 00000000000..93abd20b37d
--- /dev/null
+++ b/docs/docs/configure_flag/_category_.json
@@ -0,0 +1,10 @@
+{
+ "position": 20,
+ "collapsible": true,
+ "collapsed": true,
+ "label": "Configure your feature flags",
+ "link": {
+ "type": "generated-index",
+ "title": "Configure your feature flags"
+ }
+}
diff --git a/docs/docs/flag_format.md b/docs/docs/configure_flag/flag_format.md
similarity index 92%
rename from docs/docs/flag_format.md
rename to docs/docs/configure_flag/flag_format.md
index af745ab2757..90b7b093762 100644
--- a/docs/docs/flag_format.md
+++ b/docs/docs/configure_flag/flag_format.md
@@ -1,19 +1,23 @@
---
-sidebar_position: 30
+sidebar_position: 10
+description: What is a flag and how you can create them.
---
-# Configure a flag
+# How to configure a flag
-`go-feature-flag` core feature is to centralize all your feature flags in a source file, and to avoid hosting and maintaining a backend server to manage them.
+**GO Feature Flag** core feature is to centralize all your feature flags in a source file, and to avoid hosting and maintaining a backend server to manage them.
Your file must be a valid `YAML`, `JSON` or `TOML` file with a list of flags
*(examples: [`YAML`](https://github.com/thomaspoignant/go-feature-flag/tree/main/testdata/flag-config.yaml),
[`JSON`](https://github.com/thomaspoignant/go-feature-flag/tree/main/testdata/flag-config.json),
[`TOML`](https://github.com/thomaspoignant/go-feature-flag/tree/main/testdata/flag-config.toml))*.
+:::tip
The easiest way to create your configuration file is to used
-[**GO Feature Flag Editor** available at https://thomaspoignant.github.io/go-feature-flag-editor/](https://thomaspoignant.github.io/go-feature-flag-editor/).
+[**GO Feature Flag Editor** available at https://editor.gofeatureflag.org](https://editor.gofeatureflag.org/).
+
If you prefer to do it manually please follow instruction bellow.
+:::
## Editor
@@ -122,7 +126,7 @@ version = 12.0
| `disable` | *(optional)*
True if the flag is disabled.
**Default: `false`** |
| `trackEvents` | *(optional)*
False if you don't want to export the data in your data exporter.
**Default: `true`** |
| `version` | *(optional)*
The version is the version of your flag.
This number is used to display the information in the notifiers and data collection, you have to update it your self.
**Default: 0** |
-| `rollout` | *(optional)*
rollout
contains a specific rollout strategy you want to use.
**See [rollout section](rollout/index.md) for more details.** |
+| `rollout` | *(optional)*
rollout
contains a specific rollout strategy you want to use.
**See [rollout section](./rollout/index.md) for more details.** |
## Rule format
@@ -197,5 +201,5 @@ rule: (env != "prod") or (user_id == 1234)
You can have advanced configurations for your flag to have specific behavior for them, such as:
-- [Specific rollout strategies](rollout/index.md)
-- [Don't track a flag](data_collection/index.md#dont-track-a-flag)
+- [Specific rollout strategies](./rollout/index.md)
+- [Don't track a flag](../go_module/data_collection/index.md#dont-track-a-flag)
diff --git a/docs/docs/configure_flag/rollout/_category_.json b/docs/docs/configure_flag/rollout/_category_.json
new file mode 100644
index 00000000000..5a330427a1b
--- /dev/null
+++ b/docs/docs/configure_flag/rollout/_category_.json
@@ -0,0 +1,5 @@
+{
+ "position": 30,
+ "collapsible": true,
+ "collapsed": true
+}
diff --git a/docs/docs/rollout/canary.md b/docs/docs/configure_flag/rollout/canary.md
similarity index 100%
rename from docs/docs/rollout/canary.md
rename to docs/docs/configure_flag/rollout/canary.md
diff --git a/docs/docs/rollout/experimentation.md b/docs/docs/configure_flag/rollout/experimentation.md
similarity index 98%
rename from docs/docs/rollout/experimentation.md
rename to docs/docs/configure_flag/rollout/experimentation.md
index 19f6461bf33..596d18f650e 100644
--- a/docs/docs/rollout/experimentation.md
+++ b/docs/docs/configure_flag/rollout/experimentation.md
@@ -83,7 +83,7 @@ A/B tests are widely considered the simplest form of controlled experiment.
_**(source wikipedia)**_
:::
-To have a proper A/B testing solution with the module you should use the experimentation rollout combined with the [export of your data](../data_collection/).
+To have a proper A/B testing solution with the module you should use the experimentation rollout combined with the [export of your data](../../go_module/data_collection/).
This combination will allow to have your experimentation running for a dedicated time, and you will have the data to knows exactly which user was on which version of the flag.
diff --git a/docs/docs/rollout/index.md b/docs/docs/configure_flag/rollout/index.md
similarity index 100%
rename from docs/docs/rollout/index.md
rename to docs/docs/configure_flag/rollout/index.md
diff --git a/docs/docs/rollout/progressive.md b/docs/docs/configure_flag/rollout/progressive.md
similarity index 100%
rename from docs/docs/rollout/progressive.md
rename to docs/docs/configure_flag/rollout/progressive.md
diff --git a/docs/docs/rollout/scheduled.md b/docs/docs/configure_flag/rollout/scheduled.md
similarity index 100%
rename from docs/docs/rollout/scheduled.md
rename to docs/docs/configure_flag/rollout/scheduled.md
diff --git a/docs/docs/users.md b/docs/docs/configure_flag/target_user.md
similarity index 96%
rename from docs/docs/users.md
rename to docs/docs/configure_flag/target_user.md
index fec9ff729cf..237a93a6b3a 100644
--- a/docs/docs/users.md
+++ b/docs/docs/configure_flag/target_user.md
@@ -1,7 +1,8 @@
---
-sidebar_position: 50
+sidebar_position: 20
+description: How to select who should have the flag activated.
---
-# Targeting users with flags
+# Target a user with a flag
## Users
Feature flag targeting and rollouts are all determined by the user you pass to your Variation calls.
@@ -21,9 +22,9 @@ user2 = ffuser.NewUserBuilder("user2-key").
Build()
```
-The most common attribute is the user's key and **this is the only mandatory user attribute.**
+The most common attribute is the user's key and **this is the only mandatory user attribute.**
The key should also uniquely identify each user. You can use a primary key, an e-mail address, or a hash, as long as the same user always has the same key.
-**We recommend using a hash if possible.**
+**We recommend using a hash if possible.**
All the other attributes are optional.
:::info
diff --git a/docs/docs/faq.md b/docs/docs/faq.md
index 7206b383ab8..01c481258d7 100644
--- a/docs/docs/faq.md
+++ b/docs/docs/faq.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 90
+sidebar_position: 100
---
# Frequently Asked Questions
@@ -17,7 +17,7 @@ lifecycle of features.
The lifecycle of your flags is key if you don't want to have un-used things everywhere in your code.
1. Start by creating the flag in your configuration file *(with 0% to avoid affecting your users)*.
-2. Evaluate the flag in your code *(see [variation](users.md#variation))*.
+2. Evaluate the flag in your code *(see [variation](./configure_flag/target_user.md#variation))*.
3. Deploy your application with the variation check.
4. Start rolling out your flag.
5. When 100% of your users have access to the new feature, remove the call to the variation from your code base.
diff --git a/docs/docs/flag_file/_category_.json b/docs/docs/flag_file/_category_.json
deleted file mode 100644
index 972b288ae45..00000000000
--- a/docs/docs/flag_file/_category_.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "position": 40,
- "collapsible": true,
- "collapsed": false
-}
diff --git a/docs/docs/getting_started/_category_.json b/docs/docs/getting_started/_category_.json
new file mode 100644
index 00000000000..c813037664d
--- /dev/null
+++ b/docs/docs/getting_started/_category_.json
@@ -0,0 +1,12 @@
+{
+ "position": 10,
+ "label":"Getting Started",
+ "collapsible": true,
+ "collapsed": true,
+ "link": {
+ "type": "generated-index",
+ "title": "Getting Started",
+ "description": "GO Feature Flag can be used in 2 different ways. You can use it as a GO module directly inside your code or by using an Open-feature SDK. To use the Open-feature SDKs you will need to deploy a relay proxy inside your architecture."
+
+ }
+}
diff --git a/docs/docs/quickstart.md b/docs/docs/getting_started/using-go-module.md
similarity index 91%
rename from docs/docs/quickstart.md
rename to docs/docs/getting_started/using-go-module.md
index ce77daf6b47..941416b6d78 100644
--- a/docs/docs/quickstart.md
+++ b/docs/docs/getting_started/using-go-module.md
@@ -1,7 +1,8 @@
---
sidebar_position: 10
+description: Use the module in your GO application with nothing to install.
---
-# Getting started
+# Using the GO module
## Installation
```bash
@@ -9,7 +10,6 @@ go get github.com/thomaspoignant/go-feature-flag
```
## SDK Initialisation
-
First, you need to initialize the `ffclient` with the location of your backend file.
```go linenums="1"
err := ffclient.Init(ffclient.Config{
diff --git a/docs/docs/getting_started/using-openfeature.md b/docs/docs/getting_started/using-openfeature.md
new file mode 100644
index 00000000000..99c624d7fa0
--- /dev/null
+++ b/docs/docs/getting_started/using-openfeature.md
@@ -0,0 +1,9 @@
+---
+sidebar_position: 20
+description: Deploy the relay proxy and use the OpenFeature SDKs
+---
+# Using OpenFeature SDKs
+
+## Install
+
+Start by installing
diff --git a/docs/docs/go_module/_category_.json b/docs/docs/go_module/_category_.json
new file mode 100644
index 00000000000..215e2ea86ba
--- /dev/null
+++ b/docs/docs/go_module/_category_.json
@@ -0,0 +1,10 @@
+{
+ "position": 40,
+ "label":"Use as a GO module",
+ "collapsible": true,
+ "collapsed": true,
+ "link": {
+ "type": "generated-index",
+ "title": "Use as a GO module"
+ }
+}
diff --git a/docs/docs/configuration.md b/docs/docs/go_module/configuration.md
similarity index 88%
rename from docs/docs/configuration.md
rename to docs/docs/go_module/configuration.md
index a682977b8d1..fdabd258c50 100644
--- a/docs/docs/configuration.md
+++ b/docs/docs/go_module/configuration.md
@@ -1,5 +1,6 @@
---
-sidebar_position: 20
+sidebar_position: 10
+description: How to configure the GO module to use it directly in your code.
---
# Configuration
@@ -10,18 +11,18 @@ During the initialization you must give a [`ffclient.Config{}`](https://pkg.go.d
## Configuration fields
-| Field | Description |
-|---------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `Retriever` | The configuration retriever you want to use to get your flag file
*See [Store your flag file](flag_file/index.md) for the configuration details*. |
-| `Context` | *(optional)*
The context used by the retriever.
Default: `context.Background()` |
-| `Environment` | *(optional)*
The environment the app is running under, can be checked in feature flag rules.
Default: `""`
*Check [**"environments"** section](./flag_format/#environments) to understand how to use this parameter.* |
-| `DataExporter` | *(optional)*
DataExporter defines how to export data on how your flags are used.
*see [export data section](data_collection/index.md) for more details*. |
-| `FileFormat` | *(optional)*
Format of your configuration file. Available formats are `yaml`, `toml` and `json`, if you omit the field it will try to unmarshal the file as a `yaml` file.
Default: `YAML` |
-| `Logger` | *(optional)*
Logger used to log what `go-feature-flag` is doing.
If no logger is provided the module will not log anything.
Default: No log |
-| `Notifiers` | *(optional)*
List of notifiers to call when your flag file has been changed.
*See [notifiers section](./notifier/index.md) for more details*. |
-| `PollingInterval` | (optional) Duration to wait before refreshing the flags.
The minimum polling interval is 1 second.
Default: 60 * time.Second |
-| `StartWithRetrieverError` | *(optional)* If **true**, the SDK will start even if we did not get any flags from the retriever. It will serve only default values until the retriever returns the flags.
The init method will not return any error if the flag file is unreachable.
Default: **false** |
-| `Offline` | *(optional)* If **true**, the SDK will not try to retrieve the flag file and will not export any data. No notification will be send neither.
Default: false |
+| Field | Description |
+|---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `Retriever` | The configuration retriever you want to use to get your flag file
*See [Store your flag file](../store_file/index.md) for the configuration details*. |
+| `Context` | *(optional)*
The context used by the retriever.
Default: `context.Background()` |
+| `Environment` | *(optional)*
The environment the app is running under, can be checked in feature flag rules.
Default: `""`
*Check [**"environments"** section](../configure_flag/flag_format/#environments) to understand how to use this parameter.* |
+| `DataExporter` | *(optional)*
DataExporter defines how to export data on how your flags are used.
*see [export data section](data_collection/index.md) for more details*. |
+| `FileFormat` | *(optional)*
Format of your configuration file. Available formats are `yaml`, `toml` and `json`, if you omit the field it will try to unmarshal the file as a `yaml` file.
Default: `YAML` |
+| `Logger` | *(optional)*
Logger used to log what `go-feature-flag` is doing.
If no logger is provided the module will not log anything.
Default: No log |
+| `Notifiers` | *(optional)*
List of notifiers to call when your flag file has been changed.
*See [notifiers section](./notifier/index.md) for more details*. |
+| `PollingInterval` | (optional) Duration to wait before refreshing the flags.
The minimum polling interval is 1 second.
Default: 60 * time.Second |
+| `StartWithRetrieverError` | *(optional)* If **true**, the SDK will start even if we did not get any flags from the retriever. It will serve only default values until the retriever returns the flags.
The init method will not return any error if the flag file is unreachable.
Default: **false** |
+| `Offline` | *(optional)* If **true**, the SDK will not try to retrieve the flag file and will not export any data. No notification will be send neither.
Default: false |
## Example
```go
diff --git a/docs/docs/go_module/data_collection/_category_.json b/docs/docs/go_module/data_collection/_category_.json
new file mode 100644
index 00000000000..5a330427a1b
--- /dev/null
+++ b/docs/docs/go_module/data_collection/_category_.json
@@ -0,0 +1,5 @@
+{
+ "position": 30,
+ "collapsible": true,
+ "collapsed": true
+}
diff --git a/docs/docs/data_collection/custom.md b/docs/docs/go_module/data_collection/custom.md
similarity index 96%
rename from docs/docs/data_collection/custom.md
rename to docs/docs/go_module/data_collection/custom.md
index 8f03b775cac..13922eb8232 100644
--- a/docs/docs/data_collection/custom.md
+++ b/docs/docs/go_module/data_collection/custom.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 30
+---
+
# Custom exporter
To create a custom exporter you must have a `struct` that implements the [`exporter.Exporter`](https://pkg.go.dev/github.com/thomaspoignant/go-feature-flag/internal/exporter#Exporter) interface.
diff --git a/docs/docs/data_collection/file.md b/docs/docs/go_module/data_collection/file.md
similarity index 98%
rename from docs/docs/data_collection/file.md
rename to docs/docs/go_module/data_collection/file.md
index 86625081fc0..a606fb5a8ed 100644
--- a/docs/docs/data_collection/file.md
+++ b/docs/docs/go_module/data_collection/file.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 3
+---
+
# File Exporter
The file exporter will collect the data and create a new file in a specific folder everytime we send the data.
This file should be in the local instance.
diff --git a/docs/docs/data_collection/google_cloud_storage.md b/docs/docs/go_module/data_collection/google_cloud_storage.md
similarity index 99%
rename from docs/docs/data_collection/google_cloud_storage.md
rename to docs/docs/go_module/data_collection/google_cloud_storage.md
index 5f51f02cc99..fa394e3f1df 100644
--- a/docs/docs/data_collection/google_cloud_storage.md
+++ b/docs/docs/go_module/data_collection/google_cloud_storage.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 2
+---
+
# Google Cloud Storage Exporter
The **Google Cloud Storage exporter** will collect the data and create a new file in a specific folder everytime we send the data.
diff --git a/docs/docs/data_collection/index.md b/docs/docs/go_module/data_collection/index.md
similarity index 98%
rename from docs/docs/data_collection/index.md
rename to docs/docs/go_module/data_collection/index.md
index 9823bded0e1..d53d85fac86 100644
--- a/docs/docs/data_collection/index.md
+++ b/docs/docs/go_module/data_collection/index.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 0
+---
+
# Export data
If you want to export data about how your flag are used, you can use the **`DataExporter`**.
@@ -53,7 +57,7 @@ In your `ffclient.Config` add the `DataExporter` field and configure your export
To avoid spamming your location everytime you have a variation called, `go-feature-flag` is storing in memory all the events and send them in bulk to the exporter.
You can decide the threshold on when to send the data with the properties `FlushInterval` and `MaxEventInMemory`. The first threshold hit will export the data.
-If there are some flags you don't want to export, you can use `trackEvents` fields on these specific flags to disable the data export *(see [flag file format](../flag_format.md))*.
+If there are some flags you don't want to export, you can use `trackEvents` fields on these specific flags to disable the data export *(see [flag file format](../../configure_flag/flag_format.md))*.
### Example
diff --git a/docs/docs/data_collection/log.md b/docs/docs/go_module/data_collection/log.md
similarity index 98%
rename from docs/docs/data_collection/log.md
rename to docs/docs/go_module/data_collection/log.md
index 30c0205c9b4..f4eec1f0ff1 100644
--- a/docs/docs/data_collection/log.md
+++ b/docs/docs/go_module/data_collection/log.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 5
+---
+
# Log Exporter
The log exporter is here mostly for backward compatibility *(originally every variation were logged, but it can be a lot of data for a default configuration)*.
It will use your logger `ffclient.Config.Logger` to log every variation changes.
diff --git a/docs/docs/data_collection/s3.md b/docs/docs/go_module/data_collection/s3.md
similarity index 99%
rename from docs/docs/data_collection/s3.md
rename to docs/docs/go_module/data_collection/s3.md
index eaac21a8c99..16208070dd3 100644
--- a/docs/docs/data_collection/s3.md
+++ b/docs/docs/go_module/data_collection/s3.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 1
+---
+
# S3 Exporter
The **S3 exporter** will collect the data and create a new file in a specific folder everytime we send the data.
diff --git a/docs/docs/data_collection/webhook.md b/docs/docs/go_module/data_collection/webhook.md
similarity index 98%
rename from docs/docs/data_collection/webhook.md
rename to docs/docs/go_module/data_collection/webhook.md
index dd15819e81e..0324efd6c27 100644
--- a/docs/docs/data_collection/webhook.md
+++ b/docs/docs/go_module/data_collection/webhook.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 4
+---
+
# Webhook Exporter
The **Webhook exporter** will collect the data and send them via an HTTP POST request to the specified endpoint.
diff --git a/docs/docs/go_module/notifier/_category_.json b/docs/docs/go_module/notifier/_category_.json
new file mode 100644
index 00000000000..5a330427a1b
--- /dev/null
+++ b/docs/docs/go_module/notifier/_category_.json
@@ -0,0 +1,5 @@
+{
+ "position": 30,
+ "collapsible": true,
+ "collapsed": true
+}
diff --git a/docs/docs/notifier/custom.md b/docs/docs/go_module/notifier/custom.md
similarity index 95%
rename from docs/docs/notifier/custom.md
rename to docs/docs/go_module/notifier/custom.md
index f6ae9f51bcc..ff7a3a091bc 100644
--- a/docs/docs/notifier/custom.md
+++ b/docs/docs/go_module/notifier/custom.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 30
+---
+
# Custom Notifier
To create a custom notifier you must have a `struct` that implements the
diff --git a/docs/docs/notifier/index.md b/docs/docs/go_module/notifier/index.md
similarity index 94%
rename from docs/docs/notifier/index.md
rename to docs/docs/go_module/notifier/index.md
index af4d9568b9f..3cad29c1332 100644
--- a/docs/docs/notifier/index.md
+++ b/docs/docs/go_module/notifier/index.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 1
+---
+
# Notify flag changes
If you want to be informed when a flag has changed, you can configure a [**notifier**](https://pkg.go.dev/github.com/thomaspoignant/go-feature-flag#NotifierConfig).
diff --git a/docs/docs/notifier/slack.md b/docs/docs/go_module/notifier/slack.md
similarity index 97%
rename from docs/docs/notifier/slack.md
rename to docs/docs/go_module/notifier/slack.md
index e6e9564a0dc..8ff6b890ba8 100644
--- a/docs/docs/notifier/slack.md
+++ b/docs/docs/go_module/notifier/slack.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 1
+---
+
# Slack Notifier
The **Slack** notifier allows you to get notification on your favorite slack channel when an instance of `go-feature-flag` is detecting changes in the configuration file.
diff --git a/docs/docs/notifier/webhook.md b/docs/docs/go_module/notifier/webhook.md
similarity index 99%
rename from docs/docs/notifier/webhook.md
rename to docs/docs/go_module/notifier/webhook.md
index 71509a6982e..22a3962de28 100644
--- a/docs/docs/notifier/webhook.md
+++ b/docs/docs/go_module/notifier/webhook.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 2
+---
+
# Webhook Notifier
The **Webhook notifier** will perform an HTTP POST request to the specified endpoint everytime that a change in the flags is detected.
diff --git a/docs/docs/index.md b/docs/docs/index.md
index d8a7017082d..9931d77b949 100644
--- a/docs/docs/index.md
+++ b/docs/docs/index.md
@@ -8,43 +8,30 @@ sidebar_position: 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# go-feature-flag
-
-**Feature flags with no complex system to maintain!**
-
-## What is go-feature-flag?
+## What is GO Feature Flag?
+GO Feature Flag is a simple, complete and lightweight feature flag solution 100% opensource.
-A simple and complete feature flag solution, without any complex backend system to install, all you need is a file as your backend.
+The solution has been built to start experiencing the usage of feature flags in your code without having to contract with any vendor.
-No server is needed, just add a file to your central system and all your services will react to the changes in this file.
+**GO Feature Flag** has started to be a solution only for the GO language, but with the new standardisation of feature flags by [Openfeature](https://openfeature.dev/) project,
+now the solution is available for multiple languages _(`JAVA`, `typescript`, `javascript`, ...)_ with a simple server to host.
-If you are not familiar with feature flags, also called feature Toggles, you can read this [article from Martin Fowler](https://www.martinfowler.com/articles/feature-toggles.html)
+:::info
+If you are not familiar with feature flags, also called feature toggles, you can read this [article from Martin Fowler](https://www.martinfowler.com/articles/feature-toggles.html)
where he explains why this is a great pattern.
-I've also written an [article](https://medium.com/better-programming/feature-flags-and-how-to-iterate-quickly-7e3371b9986) that explains why feature flags can fasten your iteration cycle.
+I've also written an [article](https://medium.com/better-programming/feature-flags-and-how-to-iterate-quickly-7e3371b9986) which explains why feature flags can fasten your iteration cycle.
+:::
-**go-feature-flags supports:**
+## What can I do with GO Feature Flag?
-- Storing your configuration flags file on various locations ([`HTTP`](./flag_file/http.md), [`S3`](./flag_file/s3.md), [`GitHub`](./flag_file/github.md), [`file`](./flag_file/file.md)).
-- Configuring your flags in various [format](flag_format.md) (`JSON`, `TOML` and `YAML`).
-- Adding complex [rules](flag_format.md#rule-format) to target your users.
+- Storing your configuration flags file on various locations ([`HTTP`](./store_file/http.md), [`S3`](./store_file/s3.md), [`GitHub`](./store_file/github.md), [`file`](./store_file/file.md)).
+- Configuring your flags in various [format](configure_flag/flag_format.md) (`JSON`, `TOML` and `YAML`).
+- Adding complex [rules](configure_flag/flag_format.md#rule-format) to target your users.
- Use complex rollout strategy for your flags :
- - [Run A/B testing experimentation](rollout/experimentation.md).
- - [Progressively rollout a feature](rollout/progressive.md).
- - [Schedule your flag updates](rollout/scheduled.md).
-- Exporting your flags usage data ([`s3`](data_collection/s3.md), [`log`](data_collection/log.md) and [`file`](data_collection/file.md)).
-- Getting notified when a flag has been changed ([`webhook`](notifier/webhook.md) and [`slack`](notifier/slack.md)).
+ - [Run A/B testing experimentation](configure_flag/rollout/experimentation.md).
+ - [Progressively rollout a feature](configure_flag/rollout/progressive.md).
+ - [Schedule your flag updates](configure_flag/rollout/scheduled.md).
+- Exporting your flags usage data ([`s3`](go_module/data_collection/s3.md), [`log`](go_module/data_collection/log.md) and [`file`](go_module/data_collection/file.md)).
+- Getting notified when a flag has been changed ([`webhook`](go_module/notifier/webhook.md) and [`slack`](go_module/notifier/slack.md)).
+- Use GO Feature Flag in several languages.
diff --git a/docs/docs/migrate_v0_v1.md b/docs/docs/migrate_v0_v1.md
new file mode 100644
index 00000000000..a03125ee59d
--- /dev/null
+++ b/docs/docs/migrate_v0_v1.md
@@ -0,0 +1,17 @@
+---
+sidebar_position: 90
+description: How to migrate from v0.x.x to v1.x.x
+---
+
+# Migrate from v0.x.x to v1.x.x
+
+:::info
+Version `v1.0.0` has introduced a new flag format that push the limits of **GO Feature Flag** even further.
+**BUT** the flag format from all the versions `v0.x.x` are still compatible and supported by the `v1.0.0`.
+:::
+
+## Install the migration command line
+
+## Use the migration command line
+
+## Update your flag file
diff --git a/docs/docs/notifier/_category_.json b/docs/docs/notifier/_category_.json
deleted file mode 100644
index c856d354c3a..00000000000
--- a/docs/docs/notifier/_category_.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "position": 80,
- "collapsible": true,
- "collapsed": false
-}
diff --git a/docs/docs/openfeature_sdk/_category_.json b/docs/docs/openfeature_sdk/_category_.json
new file mode 100644
index 00000000000..0140afc37a8
--- /dev/null
+++ b/docs/docs/openfeature_sdk/_category_.json
@@ -0,0 +1,10 @@
+{
+ "position": 50,
+ "label":"Use with OpenFeature",
+ "collapsible": true,
+ "collapsed": true,
+ "link": {
+ "type": "generated-index",
+ "title": "Use with OpenFeature"
+ }
+}
diff --git a/docs/docs/openfeature_sdk/concepts.md b/docs/docs/openfeature_sdk/concepts.md
new file mode 100644
index 00000000000..0efb3fc7b26
--- /dev/null
+++ b/docs/docs/openfeature_sdk/concepts.md
@@ -0,0 +1,33 @@
+---
+sidebar_position: 10
+description: How GO Feature Flag is working with OpenFeature.
+---
+
+# Concepts
+
+## What is OpenFeature?
+:::note
+OpenFeature is an open standard for feature flag management, created to support a robust feature flag ecosystem using cloud native technologies. OpenFeature provides a unified API and SDK, and a developer-first, cloud-native implementation, with extensibility for open source and commercial offerings.
+
+https://docs.openfeature.dev/docs/category/concepts
+:::
+
+OpenFeature offer a framework-agnostic way of using feature flags, it means that if you use OpenFeature SDKs you will have minimum changes to do if you want to choose another provider.
+
+To support this initiative, **GO Feature Flag** does not have any SDKs and rely 100% on OpenFeature SDKs.
+To be compatible with our solution, we offer [`providers`](https://docs.openfeature.dev/docs/reference/concepts/provider) for GO Feature Flag in several languages.
+
+
+## How OpenFeature and GO Feature Flag are working together?
+
+To use the OpenFeature SDKs you need what we call a provider.
+A **provider** is responsible for performing flag evaluations. It provides an abstraction between **GO Feature Flag** and the OpenFeature SDK.
+
+A provider need a backend service to perform the flag evaluation. This is why we have introduced the **relay proxy**.
+This component retrieve your feature flag configuration file using the GO module and expose APIs to get your flags variations.
+
+![](/docs/openfeature/concepts.jpg)
+
+With this simple architecture you have a central component _(the relay proxy)_ that is in charge of the flag evaluation, while the SDKs and providers are responsible to communicate with the relay proxy.
+
+This supports different languages the same way and makes you able to use GO Feature Flag with all your favorite languages.
diff --git a/docs/docs/openfeature_sdk/configure_relay_proxy.md b/docs/docs/openfeature_sdk/configure_relay_proxy.md
new file mode 100644
index 00000000000..aa8ecc6b3bd
--- /dev/null
+++ b/docs/docs/openfeature_sdk/configure_relay_proxy.md
@@ -0,0 +1,177 @@
+---
+sidebar_position: 30
+description: How to configure the relay proxy to serve your feature flags.
+---
+
+# Configure the relay proxy
+
+## Global configurationuse
+The configuration of the **relay proxy** is based on a configuration file that you have to provide.
+
+| Field name | Type | Default | Description |
+|---------------------------|-------------------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `retriever` | [retriever](#retriever) | **none** | **(mandatory)** This is the configuration on how to retrieve the configuration of the files |
+| `listen` | int | `1031` | This is the port used by the relay proxy when starting the HTTP server. |
+| `pollingInterval` | int | `60000` | This is the time interval **in millisecond** when the relay proxy is reloading the configuration file.
The minimum time accepted is 1000 millisecond. |
+| `hideBanner` | boolean | `false` | Should we display the beautiful **go-feature-flag** banner when starting the relay proxy |
+| `enableSwagger` | boolean | `false` | Do you want to enable swagger to test the APIs directly. If you are enabling Swagger you will have to provide the `host` configuration and the Swagger UI will be available at `http://:/swagger/`. |
+| `host` | string | `localhost` | This is the DNS you will use to access the relay proxy. This field is used by Swagger to query the API at the right place. |
+| `restApiTimeout` | int | `5000` | Timeout in millisecond we are accepting to wait in our APIs. |
+| `debug` | boolean | `false` | If `true` you will have more logs in the output that will help you to better understand what happen. If an error happen in the API the error will be also shown in the body. |
+| `fileFormat` | string | `yaml` | This is the format of your `go-feature-flag` configuration file. Acceptable values are `yaml`, `json`, `toml`. |
+| `startWithRetrieverError` | boolean | `false` | By default the **relay proxy** will crash if he is not able to retrieve the flags from the configuration.
If you don't want your relay proxy to crash, you can set `startWithRetrieverError` to true. Until the flag is retrievable the relay proxy will only answer with default values. |
+| `exporter` | [exporter](#exporter) | **none** | Exporter is the configuration on how to export data. |
+| `notifier` | [notifier](#notifier) | **none** | Notifiers is the configuration on where to notify a flag change. |
+
+
+
+
+## type `retriver`
+
+`go-feature-flag` is supporting different kind of retriever such as S3, Google store, etc ...
+In this section we will present all the available retriever configuration available.
+
+### S3
+
+| Field name | Type | Default | Description |
+|------------|--------|----------|--------------------------------------------------------------------------------------------------------------------|
+| `kind` | string | **none** | **(mandatory)** Value should be **`s3`**.
_This field is mandatory and describe which retriever you are using._ |
+| `bucket` | string | **none** | **(mandatory)** This is the name of your S3 bucket _(ex: `my-featureflag-bucket`)_. |
+| `item` | string | **none** | **(mandatory)** Path to the file inside the bucket _(ex: `config/flag/my-flags.yaml`)_. |
+
+
+### GitHub
+
+| Field name | Type | Default | Description |
+|------------------|--------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `kind` | string | **none** | **(mandatory)** Value should be **`github`**.
_This field is mandatory and describe which retriever you are using._ |
+| `repositorySlug` | string | **none** | **(mandatory)** The repository slug of the GitHub repository where your file is located _(ex: `thomaspoignant/go-feature-flag`)_. |
+| `path` | string | **none** | **(mandatory)** Path to the file inside the repository _(ex: `config/flag/my-flags.yaml`)_. |
+| `branch` | string | `main` | The branch we should check in the repository. |
+| `githubToken` | string | **none** | Github token is used to access a private repository, you need the repo permission ([how to create a GitHub token](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token)). |
+| `timeout` | string | `10000` | Timeout in millisecond used when calling GitHub. |
+
+### File
+
+| Field name | Type | Default | Description |
+|------------|--------|----------|----------------------------------------------------------------------------------------------------------------------|
+| `kind` | string | **none** | **(mandatory)** Value should be **`file`**.
_This field is mandatory and describe which retriever you are using._ |
+| `path` | string | **none** | **(mandatory)** Path to the file in your local computer _(ex: `/goff/my-flags.yaml`)_. |
+
+
+### HTTP
+
+| Field name | Type | Default | Description |
+|------------|---------------------|----------|----------------------------------------------------------------------------------------------------------------------|
+| `kind` | string | **none** | **(mandatory)** Value should be **`http`**.
_This field is mandatory and describe which retriever you are using._ |
+| `url` | string | **none** | **(mandatory)** Location where to retrieve the file. |
+| `method` | string | `GET` | The HTTP Method you are using to call the HTTP endpoint. |
+| `body` | string | **none** | The HTTP Body you are using to call the HTTP endpoint. |
+| `headers` | map[string][]string | **none** | The HTTP headers used to call when calling the HTTP endpoint (useful for authorization). |
+| `timeout` | string | `10000` | Timeout in millisecond used when calling the HTTP endpoint. |
+
+
+### Google Storage
+
+| Field name | Type | Default | Description |
+|------------|--------|----------|-------------------------------------------------------------------------------------------------------------------------------|
+| `kind` | string | **none** | **(mandatory)** Value should be **`googleStorage`**.
_This field is mandatory and describe which retriever you are using._ |
+| `bucket` | string | **none** | **(mandatory)** This is the name of your Google Storage bucket _(ex: `my-featureflag-bucket`)_. |
+| `object` | string | **none** | **(mandatory)** Path to the file inside the bucket _(ex: `config/flag/my-flags.yaml`)_. |
+
+
+### Kubernetes ConfigMap
+
+_Note that relay proxy is only supporting this while running inside the kubernetes cluster._
+
+| Field name | Type | Default | Description |
+|-------------|--------|----------|---------------------------------------------------------------------------------------------------------------------------|
+| `kind` | string | **none** | **(mandatory)** Value should be **`configmap`**.
_This field is mandatory and describe which retriever you are using._ |
+| `namespace` | string | **none** | **(mandatory)** This is the name of the namespace where your **configmap** is located _(ex: `default`)_. |
+| `configmap` | string | **none** | **(mandatory)** Name of the **configmap** we should read _(ex: `feature-flag`)_. |
+| `key` | string | **none** | **(mandatory)** Name of the `key` in the **configmap** which contains the flag. |
+
+
+
+## type `exporter`
+
+### Webhook
+
+| Field name | Type | Default | Description |
+|--------------------|-------------------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `kind` | string | **none** | **(mandatory)** Value should be **`webhook`**.
_This field is mandatory and describe which retriever you are using._ |
+| `endpointUrl` | string | **none** | **(mandatory)** EndpointURL of your webhook. |
+| `flushInterval` | int | `60000` | The interval in millisecond between 2 calls to the webhook _(if the `maxEventInMemory` is reached before the flushInterval we will call the webhook before)_. |
+| `maxEventInMemory` | int | `100000` | If we hit that limit we will call the webhook. |
+| `secret` | string | **none** | Secret used to sign your request body and fill the `X-Hub-Signature-256` header.
See [signature section](https://thomaspoignant.github.io/go-feature-flag/latest/data_collection/webhook/#signature) for more details. |
+| `meta` | map[string]string | **none** | Add all the information you want to see in your request. |
+
+
+### File
+
+| Field name | Type | Default | Description |
+|--------------------|--------|-----------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `kind` | string | **none** | **(mandatory)** Value should be **`file`**.
_This field is mandatory and describe which retriever you are using._ |
+| `outputDir` | string | **none** | **(mandatory)** OutputDir is the location of the directory where to store the exported files. It should finish with a `/`. |
+| `flushInterval` | int | `60000` | The interval in millisecond between 2 calls to the webhook _(if the `maxEventInMemory` is reached before the flushInterval we will call the webhook before)_. |
+| `maxEventInMemory` | int | `100000` | If we hit that limit we will call the webhook. |
+| `format` | string | `JSON` | Format is the output format you want in your exported file. Available format: `JSON`, `CSV`. |
+| `filename` | string | `flag-variation-{{ .Hostname}}-{{ .Timestamp}}.{{ .Format}}` | You can use a templated config to define the name of your exported files. Available replacement are `{{ .Hostname}}`, `{{ .Timestamp}}` and `{{ .Format}` |
+| `csvTemplate` | string | `{{ .Kind}};{{ .ContextKind}};{{ .UserKey}};{{ .CreationDate}};{{ .Key}};{{ .Variation}};{{ .Value}};{{ .Default}}\n` | CsvTemplate is used if your output format is CSV.
This field will be ignored if you are using another format than CSV.
You can decide which fields you want in your CSV line with a go-template syntax, please check [`internal/exporter/feature_event.go`](https://github.com/thomaspoignant/go-feature-flag/blob/main/internal/exporter/feature_event.go) to see what are the fields available. |`
+
+
+### Log
+
+| Field name | Type | Default | Description |
+|--------------------|--------|-------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `kind` | string | **none** | **(mandatory)** Value should be **`log`**.
_This field is mandatory and describe which retriever you are using._ |
+| `flushInterval` | int | `60000` | The interval in millisecond between 2 calls to the webhook _(if the `maxEventInMemory` is reached before the flushInterval we will call the webhook before)_. |
+| `maxEventInMemory` | int | `100000` | If we hit that limit we will call the webhook. |
+| `logFormat` | string | `[{{ .FormattedDate}}] user="{{ .UserKey}}", flag="{{ .Key}}", value="{{ .Value}}"` | LogFormat is the [template](https://golang.org/pkg/text/template/) configuration of the output format of your log.
You can use all the key from the exporter.FeatureEvent + a key called FormattedDate that represent the date with the RFC 3339 Format. |
+
+### S3
+
+| Field name | Type | Default | Description |
+|--------------------|--------|-----------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `kind` | string | **none** | **(mandatory)** Value should be **`s3`**.
_This field is mandatory and describe which retriever you are using._ |
+| `bucket` | string | **none** | **(mandatory)** Name of your S3 Bucket. |
+| `flushInterval` | int | `60000` | The interval in millisecond between 2 calls to the webhook _(if the `maxEventInMemory` is reached before the flushInterval we will call the webhook before)_. |
+| `maxEventInMemory` | int | `100000` | If we hit that limit we will call the webhook. |
+| `format` | string | `JSON` | Format is the output format you want in your exported file. Available format: `JSON`, `CSV`. |
+| `filename` | string | `flag-variation-{{ .Hostname}}-{{ .Timestamp}}.{{ .Format}}` | You can use a templated config to define the name of your exported files. Available replacement are `{{ .Hostname}}`, `{{ .Timestamp}}` and `{{ .Format}` |
+| `csvTemplate` | string | `{{ .Kind}};{{ .ContextKind}};{{ .UserKey}};{{ .CreationDate}};{{ .Key}};{{ .Variation}};{{ .Value}};{{ .Default}}\n` | CsvTemplate is used if your output format is CSV.
This field will be ignored if you are using another format than CSV.
You can decide which fields you want in your CSV line with a go-template syntax, please check [`internal/exporter/feature_event.go`](https://github.com/thomaspoignant/go-feature-flag/blob/main/internal/exporter/feature_event.go) to see what are the fields available. |`
+| `path` | string | **bucket root level** | The location of the directory in S3. |
+
+### Google Storage
+
+| Field name | Type | Default | Description |
+|--------------------|--------|-----------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `kind` | string | **none** | **(mandatory)** Value should be **`s3`**.
_This field is mandatory and describe which retriever you are using._ |
+| `bucket` | string | **none** | **(mandatory)** Name of your Google Cloud Storage Bucket. |
+| `flushInterval` | int | `60000` | The interval in millisecond between 2 calls to the webhook _(if the `maxEventInMemory` is reached before the flushInterval we will call the webhook before)_. |
+| `maxEventInMemory` | int | `100000` | If we hit that limit we will call the webhook. |
+| `format` | string | `JSON` | Format is the output format you want in your exported file. Available format: `JSON`, `CSV`. |
+| `filename` | string | `flag-variation-{{ .Hostname}}-{{ .Timestamp}}.{{ .Format}}` | You can use a templated config to define the name of your exported files. Available replacement are `{{ .Hostname}}`, `{{ .Timestamp}}` and `{{ .Format}` |
+| `csvTemplate` | string | `{{ .Kind}};{{ .ContextKind}};{{ .UserKey}};{{ .CreationDate}};{{ .Key}};{{ .Variation}};{{ .Value}};{{ .Default}}\n` | CsvTemplate is used if your output format is CSV.
This field will be ignored if you are using another format than CSV.
You can decide which fields you want in your CSV line with a go-template syntax, please check [`internal/exporter/feature_event.go`](https://github.com/thomaspoignant/go-feature-flag/blob/main/internal/exporter/feature_event.go) to see what are the fields available. |`
+| `path` | string | **bucket root level** | The location of the directory in S3. |
+
+
+
+
+## type `notifier`
+
+### Slack
+
+| Field name | Type | Default | Description |
+|-------------------|--------|----------|-----------------------------------------------------------------------------------------------------------------------|
+| `kind` | string | **none** | **(mandatory)** Value should be **`slack`**.
_This field is mandatory and describe which retriever you are using._ |
+| `slackWebhookUrl` | string | **none** | **(mandatory)** The complete URL of your incoming webhook configured in Slack. |
+
+### Webhook
+
+| Field name | Type | Default | Description |
+|----------------|---------------------|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `kind` | string | **none** | **(mandatory)** Value should be **`slack`**.
_This field is mandatory and describe which retriever you are using._ |
+| `endpointUrl` | string | **none** | **(mandatory)** The complete URL of your API (we will send a POST request to this URL, see [format](https://thomaspoignant.github.io/go-feature-flag/latest/notifier/webhook/#format) |
+| `secret` | string | **none** | Secret used to sign your request body and fill the `X-Hub-Signature-256` header.
See [signature section](https://thomaspoignant.github.io/go-feature-flag/latest/data_collection/webhook/#signature) for more details. |
+| `meta` | map[string]string | **none** | Add all the information you want to see in your request. |
diff --git a/docs/docs/openfeature_sdk/getting_started_relay_proxy.md b/docs/docs/openfeature_sdk/getting_started_relay_proxy.md
new file mode 100644
index 00000000000..abf98a60d58
--- /dev/null
+++ b/docs/docs/openfeature_sdk/getting_started_relay_proxy.md
@@ -0,0 +1,56 @@
+---
+sidebar_position: 21
+description: Getting started with the relay proxy.
+---
+
+# Getting started with the relay proxy
+
+Before starting your **relay proxy** you will need to create a minimal configuration file.
+
+```yaml
+# this is a minimal config containing only where your flag file is located
+retriever:
+ kind: http
+ url: https://raw.githubusercontent.com/thomaspoignant/go-feature-flag/main/examples/file/flags.yaml
+```
+
+After that you can launch the **relay proxy** by using this command:
+```shell
+go-feature-flag-relay-proxy --config=/path/to/your/configfile
+```
+
+The **relay proxy** will read the configuration file and retrieve all the flags.
+After that you can use all the available endpoints _(see **Service endpoints** section)_ and get the variations for your users.
+
+
+## Deployment options
+
+A common way to run **go-feature-flag relay proxy** is to use the Docker Container.
+An image is available on docker Hub [`thomaspoignant/go-feature-flag-relay-proxy`](https://hub.docker.com/r/thomaspoignant/go-feature-flag-relay-proxy).
+
+You can also run it as a service in your application following the **Installation** section.
+
+## Specifying a configuration
+
+To configure the relay proxy you should provide a configuration file when launching the instance.
+
+The easiest way to provide the file is to use the option `--config=/path_to_your_file.yaml`.
+But if you don't provide this option, the relay proxy will look in these folders if a file named `goff-proxy.yaml` is available.
+
+- **current folder**
+- `/goff/`
+- `/etc/opt/goff/`
+
+To learn how to configure the relay proxy, read [Configuration](./configure_relay_proxy).
+
+## Exporting metrics and traces
+
+To export the data you can use all the capabilities of `go-feature-flag` SDK.
+To configure it please refer to the [type `exporter` section](./configure_relay_proxy#exporter) of the configuration.
+
+## Service endpoints
+The Relay Proxy defines many HTTP/HTTPS endpoints.
+Most of these are proxies for GO Feature Flag services, to be used by SDKs that connect to the Relay Proxy.
+Others are specific to the Relay Proxy, such as for monitoring its status.
+
+Please refer to [endpoints documentation](./relay_proxy_endpoints) to get the full details of what exists in our REST API.
diff --git a/docs/docs/openfeature_sdk/install_relay_proxy.md b/docs/docs/openfeature_sdk/install_relay_proxy.md
new file mode 100644
index 00000000000..0888dbddb2d
--- /dev/null
+++ b/docs/docs/openfeature_sdk/install_relay_proxy.md
@@ -0,0 +1,84 @@
+---
+sidebar_position: 20
+description: Relay proxy is the component that will challenge the flags, this page explain how to install it.
+---
+
+# Install the relay proxy
+
+## When should I use the GO Feature Flag Relay Proxy?
+- If you want to access your feature flag using an API instead of the [`thomaspoignant/go-feature-flag`](https://github.com/thomaspoignant/go-feature-flag) SDK.
+- If you are not using GOlang to build your application.
+- If you want to reduce the number of accesses to your configuration flag by centralizing them.
+
+
+## Install using Homebrew (mac and linux)
+```shell
+brew tap thomaspoignant/homebrew-tap
+brew install go-feature-flag-relay-proxy
+```
+
+## Install using Scoop (windows)
+```shell
+scoop bucket add org https://github.com/thomaspoignant/scoop.git
+scoop install go-feature-flag-relay-proxy
+```
+
+## Install using docker
+```shell
+docker pull thomaspoignant/go-feature-flag-relay-proxy:latest
+```
+:::info
+More info in the [dockerhub page](https://hub.docker.com/r/thomaspoignant/go-feature-flag-relay-proxy).
+:::
+
+## Getting started
+
+Before starting your **relay proxy** you will need to create a minimal configuration file.
+
+```yaml
+# this is a minimal config containing only where your flag file is located
+retriever:
+ kind: http
+ url: https://raw.githubusercontent.com/thomaspoignant/go-feature-flag/main/examples/file/flags.yaml
+```
+
+After that you can launch the **relay proxy** by using this command:
+```shell
+go-feature-flag-relay-proxy --config=/path/to/your/configfile
+```
+
+The **relay proxy** will read the configuration file and retrieve all the flags.
+After that you can use all the available endpoints _(see **Service endpoints** section)_ and get the variations for your users.
+
+
+## Deployment options
+
+A common way to run **go-feature-flag relay proxy** is to use the Docker Container.
+An image is available on docker Hub [`thomaspoignant/go-feature-flag-relay-proxy`](https://hub.docker.com/r/thomaspoignant/go-feature-flag-relay-proxy).
+
+You can also run it as a service in your application following the **Installation** section.
+
+## Specifying a configuration
+
+To configure the relay proxy you should provide a configuration file when launching the instance.
+
+The easiest way to provide the file is to use the option `--config=/path_to_your_file.yaml`.
+But if you don't provide this option, the relay proxy will look in these folders if a file named `goff-proxy.yaml` is available.
+
+- **current folder**
+- `/goff/`
+- `/etc/opt/goff/`
+
+To learn how to configure the relay proxy, read [Configuration](../go_module/configuration).
+
+## Exporting metrics and traces
+
+To export the data you can use all the capabilities of `go-feature-flag` SDK.
+To configure it please refer to the [type `exporter` section](../go_module/configuration#exporter) of the configuration.
+
+## Service endpoints
+The Relay Proxy defines many HTTP/HTTPS endpoints.
+Most of these are proxies for GO Feature Flag services, to be used by SDKs that connect to the Relay Proxy.
+Others are specific to the Relay Proxy, such as for monitoring its status.
+
+Please refer to [endpoints documentation](./relay_proxy_endpoints) to get the full details of what exists in our REST API.
diff --git a/docs/docs/openfeature_sdk/openfeature_java.md b/docs/docs/openfeature_sdk/openfeature_java.md
new file mode 100644
index 00000000000..e9ed90d8ac2
--- /dev/null
+++ b/docs/docs/openfeature_sdk/openfeature_java.md
@@ -0,0 +1,6 @@
+---
+sidebar_position: 40
+description: How to use the OpenFeature JAVA SDK
+---
+
+# JAVA SDK usage
diff --git a/docs/docs/openfeature_sdk/openfeature_javascript.md b/docs/docs/openfeature_sdk/openfeature_javascript.md
new file mode 100644
index 00000000000..4177feb4e61
--- /dev/null
+++ b/docs/docs/openfeature_sdk/openfeature_javascript.md
@@ -0,0 +1,6 @@
+---
+sidebar_position: 51
+description: How to use the OpenFeature Javascript SDK
+---
+
+# Javascript SDK usage
diff --git a/docs/docs/openfeature_sdk/openfeature_typescript.md b/docs/docs/openfeature_sdk/openfeature_typescript.md
new file mode 100644
index 00000000000..d8f9fd7edf4
--- /dev/null
+++ b/docs/docs/openfeature_sdk/openfeature_typescript.md
@@ -0,0 +1,6 @@
+---
+sidebar_position: 50
+description: How to use the OpenFeature Typescript SDK
+---
+
+# Typescript SDK usage
diff --git a/docs/docs/openfeature_sdk/relay_proxy_endpoints.md b/docs/docs/openfeature_sdk/relay_proxy_endpoints.md
new file mode 100644
index 00000000000..2f722758936
--- /dev/null
+++ b/docs/docs/openfeature_sdk/relay_proxy_endpoints.md
@@ -0,0 +1,187 @@
+---
+sidebar_position: 60
+description: Description of the available endpoints in the relay proxy.
+---
+
+# Relay proxy endpoints
+
+The most updated documentation about the relay proxy endpoints is the Swagger docs _(see [Swagger section](#swagger) to see how to access to the documentation)_.
+
+## Specific to Relay Proxy
+
+### Health (health check)
+Making a `GET` request to the URL path `/health` will tell you if the **relay proxy** is ready to serve traffic.
+This is useful especially for loadbalancer to know that they can send traffic to the service.
+
+```json
+{ "initialized": true }
+```
+
+### Info
+Making a `GET` request to the URL path `/info` will tell give you information about the actual state of the **relay proxy**.
+As of Today the level of information is small be we can improve this endpoint to returns more information.
+
+```json
+{
+ "cacheRefresh": "2022-06-13T11:22:55.941628+02:00"
+}
+```
+
+| Field name | Type | Description |
+|--------------------|------|-------------------------------------------------------------------------------------|
+| `cacheRefresh` | date | This is the last time when your flag file was read and store in the internal cache. |
+
+
+### Swagger
+Swagger endpoint is serving a [swagger UI](https://swagger.io/tools/swagger-ui/) to test your REST endpoints.
+By default, this endpoint is not exposed, you need to have this configuration in your **relay proxy** configuration file:
+
+```yaml
+# ...
+enableSwagger: true
+host: my-proxy-domain.com # the DNS to access the proxy
+```
+
+When enabled, you can go to the `/swagger/` endpoint with your browser, and you will have access to the Swagger UI for the relay proxy.
+
+## Proxies for GO Feature Flag services
+
+### Endpoint to get variation for a flag
+
+Making a `POST` request to the URL `/v1/feature//eval` will give you the value of the flag for this user.
+To get a variation you should provide information about the user.
+For that you should provide some user information in `JSON` in the request body.
+
+#### Request
+**Example:**
+```json
+{
+ "user": {
+ "key": "123e4567-e89b-12d3-a456-426614174000",
+ "anonymous": false,
+ "custom": {
+ "firstname": "John",
+ "lastname": "Doe",
+ "email": "john.doe@random.io"
+ }
+ },
+ "defaultValue": "default_value_provided_by_SDK"
+}
+```
+
+| Field name | Type | Description |
+|--------------------|--------------------|--------------------------------------------------------------------------------------------|
+| `user` | [user](#user_type) | **(mandatory)** The representation of a user for your feature flag system. |
+| `defaultValue` | any | **(mandatory)** The value will we use if we are not able to get the variation of the flag. |
+
+
+#### Response
+
+Based on the name of the flag and the user you will always have a response for the variation.
+The API will respond with a `200` even if the flag is not available, the goal is for your application to not crash even if
+the flag does not exist anymore.
+
+**Example:**
+```json
+{
+ "value": "welcome_new_feature",
+ "variationType": "true",
+ "version": "0",
+ "trackEvents": true,
+ "failed": false
+}
+```
+
+
+
+| Field name | Type | Description |
+|-----------------|---------|--------------------------------------------------------------------------------------------------------------------|
+| `value` | any | The flag value for this user. |
+| `variationType` | string | The variation used to give you this value. |
+| `version` | string | The version of the flag used. |
+| `trackEvents` | boolean | `true` if the event was tracked by the relay proxy. |
+| `failed` | boolean | `true` if something went wrong in the relay proxy _(flag does not exists, ...)_ and we serve the **defaultValue**. |
+
+
+
+### Endpoint to get all flags variations for a user
+
+Making a `POST` request to the URL `/v1/allflags` will give you the values of all the flags for this user.
+To get a variation you should provide information about the user.
+For that you should provide some user information in `JSON` in the request body.
+
+#### Request
+**Example:**
+```json
+{
+ "user": {
+ "key": "123e4567-e89b-12d3-a456-426614174000",
+ "anonymous": false,
+ "custom": {
+ "firstname": "John",
+ "lastname": "Doe",
+ "email": "john.doe@random.io"
+ }
+ }
+}
+```
+
+| Field name | Type | Description |
+|--------------------|--------------------|--------------------------------------------------------------------------------------------|
+| `user` | [user](#user_type) | **(mandatory)** The representation of a user for your feature flag system. |
+
+#### Response
+
+With the input user the API will loop over all flags and get values for all of them.
+
+**Example:**
+```json
+{
+ "flags": {
+ "flag-only-for-admin": {
+ "value": false,
+ "timestamp": 1655123971,
+ "variationType": "Default",
+ "trackEvents": true
+ },
+ "new-admin-access": {
+ "value": false,
+ "timestamp": 1655123971,
+ "variationType": "False",
+ "trackEvents": true
+ }
+ },
+ "valid": true
+}
+```
+
+| Field name | Type | Description |
+|---------------|----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `flags` | map[string]variationResult | All the flags with their results _(see [Endpoint to get all flags variations for a user](#variation_results_details) for the details of the format)_ |
+| `valid` | boolean | `true` if something went wrong in the relay proxy _(flag does not exists, ...)_ and we serve the **defaultValue**. |
+
+
+
+## User type
+
+This type represent in your request body the information about a user.
+This is based on these information that we will be able to filter which variation apply for this user.
+
+```json
+{
+ "key": "123e4567-e89b-12d3-a456-426614174000",
+ "anonymous": false,
+ "custom": {
+ "firstname": "John",
+ "lastname": "Doe",
+ "email": "john.doe@random.io"
+ }
+}
+```
+
+| Field name | Type | Default | Description |
+|-------------|------------------------|-----------|----------------------------------------------------------------------------------------------------------------------------------------|
+| `key` | string | **none** | **(mandatory)** Unique key of your user, it could be any string, I recommend to use UUID, email or whatever who make your user unique. |
+| `anonymous` | boolean | `false` | Is it an authenticated user or not. |
+| `custom` | map[string]interface{} | **empty** | This is an object where you can put everything you think is useful, you will be able to use rule based on these fields. |
+
diff --git a/docs/docs/rollout/_category_.json b/docs/docs/rollout/_category_.json
deleted file mode 100644
index fb7e169364c..00000000000
--- a/docs/docs/rollout/_category_.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "position": 60,
- "collapsible": true,
- "collapsed": false
-}
diff --git a/docs/docs/store_file/_category_.json b/docs/docs/store_file/_category_.json
new file mode 100644
index 00000000000..5a330427a1b
--- /dev/null
+++ b/docs/docs/store_file/_category_.json
@@ -0,0 +1,5 @@
+{
+ "position": 30,
+ "collapsible": true,
+ "collapsed": true
+}
diff --git a/docs/docs/flag_file/custom.md b/docs/docs/store_file/custom.md
similarity index 96%
rename from docs/docs/flag_file/custom.md
rename to docs/docs/store_file/custom.md
index acf43efa7b2..dd6815d575d 100644
--- a/docs/docs/flag_file/custom.md
+++ b/docs/docs/store_file/custom.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 30
+---
+
# Custom Retriever
To create a custom retriever you must have a `struct` that implements the [`Retriever`](https://pkg.go.dev/github.com/thomaspoignant/go-feature-flag/retriever/#Retriever) interface.
diff --git a/docs/docs/flag_file/file.md b/docs/docs/store_file/file.md
similarity index 96%
rename from docs/docs/flag_file/file.md
rename to docs/docs/store_file/file.md
index 1391a675717..0add1570e13 100644
--- a/docs/docs/flag_file/file.md
+++ b/docs/docs/store_file/file.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 7
+---
+
# File
The [**File Retriever**](https://pkg.go.dev/github.com/thomaspoignant/go-feature-flag/retriever/fileretriever/#Retriever) will read a local file to get your flags.
diff --git a/docs/docs/flag_file/github.md b/docs/docs/store_file/github.md
similarity index 98%
rename from docs/docs/flag_file/github.md
rename to docs/docs/store_file/github.md
index 8ef6d3a1d8a..d405d6eb982 100644
--- a/docs/docs/flag_file/github.md
+++ b/docs/docs/store_file/github.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 6
+---
+
# Github
The [**Github Retriever**](https://pkg.go.dev/github.com/thomaspoignant/go-feature-flag/retriever/githubretriever/#Retriever)
diff --git a/docs/docs/flag_file/google_cloud_storage.md b/docs/docs/store_file/google_cloud_storage.md
similarity index 98%
rename from docs/docs/flag_file/google_cloud_storage.md
rename to docs/docs/store_file/google_cloud_storage.md
index 99b3a2c3bfb..68ff4f9d171 100644
--- a/docs/docs/flag_file/google_cloud_storage.md
+++ b/docs/docs/store_file/google_cloud_storage.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 5
+---
+
# Google Cloud Storage
The [**Google Cloud Storage Retriever**](https://pkg.go.dev/github.com/thomaspoignant/go-feature-flag/retriever/gcstorageretriever/#Retriever)
diff --git a/docs/docs/flag_file/http.md b/docs/docs/store_file/http.md
similarity index 98%
rename from docs/docs/flag_file/http.md
rename to docs/docs/store_file/http.md
index e47bf1125a2..1fe7e3108d8 100644
--- a/docs/docs/flag_file/http.md
+++ b/docs/docs/store_file/http.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 2
+---
+
# HTTP endpoint
The [__HTTP Retriever__](https://pkg.go.dev/github.com/thomaspoignant/go-feature-flag/retriever/httpretriever/#Retriever)
diff --git a/docs/docs/flag_file/index.md b/docs/docs/store_file/index.md
similarity index 91%
rename from docs/docs/flag_file/index.md
rename to docs/docs/store_file/index.md
index 221a22167da..6c6e59852be 100644
--- a/docs/docs/flag_file/index.md
+++ b/docs/docs/store_file/index.md
@@ -1,4 +1,8 @@
-# Store your flag file
+---
+sidebar_position: 1
+---
+
+# Store your feature flag file
The module supports different ways of retrieving the flag file.
Available retriever are:
diff --git a/docs/docs/flag_file/kubernetes_configmaps.md b/docs/docs/store_file/kubernetes_configmaps.md
similarity index 97%
rename from docs/docs/flag_file/kubernetes_configmaps.md
rename to docs/docs/store_file/kubernetes_configmaps.md
index 30107832bbf..0f94c0f6b96 100644
--- a/docs/docs/flag_file/kubernetes_configmaps.md
+++ b/docs/docs/store_file/kubernetes_configmaps.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 4
+---
+
# Kubernetes configmaps
The [**Kubernetes Retriever**](https://pkg.go.dev/github.com/thomaspoignant/go-feature-flag/retriever/k8sretriever/#Retriever)
will access flags in a Kubernetes ConfigMap via the [Kubernetes Go client](https://github.com/kubernetes/client-go)
diff --git a/docs/docs/flag_file/s3.md b/docs/docs/store_file/s3.md
similarity index 97%
rename from docs/docs/flag_file/s3.md
rename to docs/docs/store_file/s3.md
index f8551cd073d..3f40b3a0850 100644
--- a/docs/docs/flag_file/s3.md
+++ b/docs/docs/store_file/s3.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 3
+---
+
# S3 Bucket
The [**S3Retriever**](https://pkg.go.dev/github.com/thomaspoignant/go-feature-flag/retriever/s3retriever/#Retriever) will use the [aws-sdk](https://github.com/aws/aws-sdk-go) to access your flag in an S3 bucket.
diff --git a/docs/package-lock.json b/docs/package-lock.json
index 994d42c3478..1d3e977191b 100644
--- a/docs/package-lock.json
+++ b/docs/package-lock.json
@@ -8,8 +8,8 @@
"name": "docs-v-2",
"version": "0.0.0",
"dependencies": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/preset-classic": "2.1.0",
+ "@docusaurus/core": "^2.2.0",
+ "@docusaurus/preset-classic": "^2.2.0",
"@mdx-js/react": "^1.6.22",
"clsx": "^1.2.1",
"prism-react-renderer": "^1.3.5",
@@ -18,36 +18,36 @@
"react-mailchimp-subscribe": "^2.1.3"
},
"devDependencies": {
- "@docusaurus/module-type-aliases": "2.1.0"
+ "@docusaurus/module-type-aliases": "^2.2.0"
},
"engines": {
"node": ">=16.14"
}
},
"node_modules/@algolia/autocomplete-core": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.7.1.tgz",
- "integrity": "sha512-eiZw+fxMzNQn01S8dA/hcCpoWCOCwcIIEUtHHdzN5TGB3IpzLbuhqFeTfh2OUhhgkE8Uo17+wH+QJ/wYyQmmzg==",
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.7.2.tgz",
+ "integrity": "sha512-eclwUDC6qfApNnEfu1uWcL/rudQsn59tjEoUYZYE2JSXZrHLRjBUGMxiCoknobU2Pva8ejb0eRxpIYDtVVqdsw==",
"dependencies": {
- "@algolia/autocomplete-shared": "1.7.1"
+ "@algolia/autocomplete-shared": "1.7.2"
}
},
"node_modules/@algolia/autocomplete-preset-algolia": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.1.tgz",
- "integrity": "sha512-pJwmIxeJCymU1M6cGujnaIYcY3QPOVYZOXhFkWVM7IxKzy272BwCvMFMyc5NpG/QmiObBxjo7myd060OeTNJXg==",
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.2.tgz",
+ "integrity": "sha512-+RYEG6B0QiGGfRb2G3MtPfyrl0dALF3cQNTWBzBX6p5o01vCCGTTinAm2UKG3tfc2CnOMAtnPLkzNZyJUpnVJw==",
"dependencies": {
- "@algolia/autocomplete-shared": "1.7.1"
+ "@algolia/autocomplete-shared": "1.7.2"
},
"peerDependencies": {
- "@algolia/client-search": "^4.9.1",
- "algoliasearch": "^4.9.1"
+ "@algolia/client-search": ">= 4.9.1 < 6",
+ "algoliasearch": ">= 4.9.1 < 6"
}
},
"node_modules/@algolia/autocomplete-shared": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.1.tgz",
- "integrity": "sha512-eTmGVqY3GeyBTT8IWiB2K5EuURAqhnumfktAEoHxfDY2o7vg2rSnO16ZtIG0fMgt3py28Vwgq42/bVEuaQV7pg=="
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.2.tgz",
+ "integrity": "sha512-QCckjiC7xXHIUaIL3ektBtjJ0w7tTA3iqKcAE/Hjn1lZ5omp7i3Y4e09rAr9ZybqirL7AbxCLLq0Ra5DDPKeug=="
},
"node_modules/@algolia/cache-browser-local-storage": {
"version": "4.14.2",
@@ -1964,18 +1964,18 @@
}
},
"node_modules/@docsearch/css": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.2.1.tgz",
- "integrity": "sha512-gaP6TxxwQC+K8D6TRx5WULUWKrcbzECOPA2KCVMuI+6C7dNiGUk5yXXzVhc5sld79XKYLnO9DRTI4mjXDYkh+g=="
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.3.0.tgz",
+ "integrity": "sha512-rODCdDtGyudLj+Va8b6w6Y85KE85bXRsps/R4Yjwt5vueXKXZQKYw0aA9knxLBT6a/bI/GMrAcmCR75KYOM6hg=="
},
"node_modules/@docsearch/react": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.2.1.tgz",
- "integrity": "sha512-EzTQ/y82s14IQC5XVestiK/kFFMe2aagoYFuTAIfIb/e+4FU7kSMKonRtLwsCiLQHmjvNQq+HO+33giJ5YVtaQ==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.3.0.tgz",
+ "integrity": "sha512-fhS5adZkae2SSdMYEMVg6pxI5a/cE+tW16ki1V0/ur4Fdok3hBRkmN/H8VvlXnxzggkQIIRIVvYPn00JPjen3A==",
"dependencies": {
- "@algolia/autocomplete-core": "1.7.1",
- "@algolia/autocomplete-preset-algolia": "1.7.1",
- "@docsearch/css": "3.2.1",
+ "@algolia/autocomplete-core": "1.7.2",
+ "@algolia/autocomplete-preset-algolia": "1.7.2",
+ "@docsearch/css": "3.3.0",
"algoliasearch": "^4.0.0"
},
"peerDependencies": {
@@ -1996,9 +1996,9 @@
}
},
"node_modules/@docusaurus/core": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.1.0.tgz",
- "integrity": "sha512-/ZJ6xmm+VB9Izbn0/s6h6289cbPy2k4iYFwWDhjiLsVqwa/Y0YBBcXvStfaHccudUC3OfP+26hMk7UCjc50J6Q==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.2.0.tgz",
+ "integrity": "sha512-Vd6XOluKQqzG12fEs9prJgDtyn6DPok9vmUWDR2E6/nV5Fl9SVkhEQOBxwObjk3kQh7OY7vguFaLh0jqdApWsA==",
"dependencies": {
"@babel/core": "^7.18.6",
"@babel/generator": "^7.18.7",
@@ -2010,13 +2010,13 @@
"@babel/runtime": "^7.18.6",
"@babel/runtime-corejs3": "^7.18.6",
"@babel/traverse": "^7.18.8",
- "@docusaurus/cssnano-preset": "2.1.0",
- "@docusaurus/logger": "2.1.0",
- "@docusaurus/mdx-loader": "2.1.0",
+ "@docusaurus/cssnano-preset": "2.2.0",
+ "@docusaurus/logger": "2.2.0",
+ "@docusaurus/mdx-loader": "2.2.0",
"@docusaurus/react-loadable": "5.5.2",
- "@docusaurus/utils": "2.1.0",
- "@docusaurus/utils-common": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
+ "@docusaurus/utils": "2.2.0",
+ "@docusaurus/utils-common": "2.2.0",
+ "@docusaurus/utils-validation": "2.2.0",
"@slorber/static-site-generator-webpack-plugin": "^4.0.7",
"@svgr/webpack": "^6.2.1",
"autoprefixer": "^10.4.7",
@@ -2084,9 +2084,9 @@
}
},
"node_modules/@docusaurus/cssnano-preset": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.1.0.tgz",
- "integrity": "sha512-pRLewcgGhOies6pzsUROfmPStDRdFw+FgV5sMtLr5+4Luv2rty5+b/eSIMMetqUsmg3A9r9bcxHk9bKAKvx3zQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.2.0.tgz",
+ "integrity": "sha512-mAAwCo4n66TMWBH1kXnHVZsakW9VAXJzTO4yZukuL3ro4F+JtkMwKfh42EG75K/J/YIFQG5I/Bzy0UH/hFxaTg==",
"dependencies": {
"cssnano-preset-advanced": "^5.3.8",
"postcss": "^8.4.14",
@@ -2098,9 +2098,9 @@
}
},
"node_modules/@docusaurus/logger": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.1.0.tgz",
- "integrity": "sha512-uuJx2T6hDBg82joFeyobywPjSOIfeq05GfyKGHThVoXuXsu1KAzMDYcjoDxarb9CoHCI/Dor8R2MoL6zII8x1Q==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.2.0.tgz",
+ "integrity": "sha512-DF3j1cA5y2nNsu/vk8AG7xwpZu6f5MKkPPMaaIbgXLnWGfm6+wkOeW7kNrxnM95YOhKUkJUophX69nGUnLsm0A==",
"dependencies": {
"chalk": "^4.1.2",
"tslib": "^2.4.0"
@@ -2110,14 +2110,14 @@
}
},
"node_modules/@docusaurus/mdx-loader": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.1.0.tgz",
- "integrity": "sha512-i97hi7hbQjsD3/8OSFhLy7dbKGH8ryjEzOfyhQIn2CFBYOY3ko0vMVEf3IY9nD3Ld7amYzsZ8153RPkcnXA+Lg==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.2.0.tgz",
+ "integrity": "sha512-X2bzo3T0jW0VhUU+XdQofcEeozXOTmKQMvc8tUnWRdTnCvj4XEcBVdC3g+/jftceluiwSTNRAX4VBOJdNt18jA==",
"dependencies": {
"@babel/parser": "^7.18.8",
"@babel/traverse": "^7.18.8",
- "@docusaurus/logger": "2.1.0",
- "@docusaurus/utils": "2.1.0",
+ "@docusaurus/logger": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
"@mdx-js/mdx": "^1.6.22",
"escape-html": "^1.0.3",
"file-loader": "^6.2.0",
@@ -2141,12 +2141,12 @@
}
},
"node_modules/@docusaurus/module-type-aliases": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.1.0.tgz",
- "integrity": "sha512-Z8WZaK5cis3xEtyfOT817u9xgGUauT0PuuVo85ysnFRX8n7qLN1lTPCkC+aCmFm/UcV8h/W5T4NtIsst94UntQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.2.0.tgz",
+ "integrity": "sha512-wDGW4IHKoOr9YuJgy7uYuKWrDrSpsUSDHLZnWQYM9fN7D5EpSmYHjFruUpKWVyxLpD/Wh0rW8hYZwdjJIQUQCQ==",
"dependencies": {
"@docusaurus/react-loadable": "5.5.2",
- "@docusaurus/types": "2.1.0",
+ "@docusaurus/types": "2.2.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"@types/react-router-config": "*",
@@ -2160,17 +2160,17 @@
}
},
"node_modules/@docusaurus/plugin-content-blog": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.1.0.tgz",
- "integrity": "sha512-xEp6jlu92HMNUmyRBEeJ4mCW1s77aAEQO4Keez94cUY/Ap7G/r0Awa6xSLff7HL0Fjg8KK1bEbDy7q9voIavdg==",
- "dependencies": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/logger": "2.1.0",
- "@docusaurus/mdx-loader": "2.1.0",
- "@docusaurus/types": "2.1.0",
- "@docusaurus/utils": "2.1.0",
- "@docusaurus/utils-common": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.2.0.tgz",
+ "integrity": "sha512-0mWBinEh0a5J2+8ZJXJXbrCk1tSTNf7Nm4tYAl5h2/xx+PvH/Bnu0V+7mMljYm/1QlDYALNIIaT/JcoZQFUN3w==",
+ "dependencies": {
+ "@docusaurus/core": "2.2.0",
+ "@docusaurus/logger": "2.2.0",
+ "@docusaurus/mdx-loader": "2.2.0",
+ "@docusaurus/types": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
+ "@docusaurus/utils-common": "2.2.0",
+ "@docusaurus/utils-validation": "2.2.0",
"cheerio": "^1.0.0-rc.12",
"feed": "^4.2.2",
"fs-extra": "^10.1.0",
@@ -2190,17 +2190,17 @@
}
},
"node_modules/@docusaurus/plugin-content-docs": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.1.0.tgz",
- "integrity": "sha512-Rup5pqXrXlKGIC4VgwvioIhGWF7E/NNSlxv+JAxRYpik8VKlWsk9ysrdHIlpX+KJUCO9irnY21kQh2814mlp/Q==",
- "dependencies": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/logger": "2.1.0",
- "@docusaurus/mdx-loader": "2.1.0",
- "@docusaurus/module-type-aliases": "2.1.0",
- "@docusaurus/types": "2.1.0",
- "@docusaurus/utils": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.2.0.tgz",
+ "integrity": "sha512-BOazBR0XjzsHE+2K1wpNxz5QZmrJgmm3+0Re0EVPYFGW8qndCWGNtXW/0lGKhecVPML8yyFeAmnUCIs7xM2wPw==",
+ "dependencies": {
+ "@docusaurus/core": "2.2.0",
+ "@docusaurus/logger": "2.2.0",
+ "@docusaurus/mdx-loader": "2.2.0",
+ "@docusaurus/module-type-aliases": "2.2.0",
+ "@docusaurus/types": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
+ "@docusaurus/utils-validation": "2.2.0",
"@types/react-router-config": "^5.0.6",
"combine-promises": "^1.1.0",
"fs-extra": "^10.1.0",
@@ -2220,15 +2220,15 @@
}
},
"node_modules/@docusaurus/plugin-content-pages": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.1.0.tgz",
- "integrity": "sha512-SwZdDZRlObHNKXTnFo7W2aF6U5ZqNVI55Nw2GCBryL7oKQSLeI0lsrMlMXdzn+fS7OuBTd3MJBO1T4Zpz0i/+g==",
- "dependencies": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/mdx-loader": "2.1.0",
- "@docusaurus/types": "2.1.0",
- "@docusaurus/utils": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.2.0.tgz",
+ "integrity": "sha512-+OTK3FQHk5WMvdelz8v19PbEbx+CNT6VSpx7nVOvMNs5yJCKvmqBJBQ2ZSxROxhVDYn+CZOlmyrC56NSXzHf6g==",
+ "dependencies": {
+ "@docusaurus/core": "2.2.0",
+ "@docusaurus/mdx-loader": "2.2.0",
+ "@docusaurus/types": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
+ "@docusaurus/utils-validation": "2.2.0",
"fs-extra": "^10.1.0",
"tslib": "^2.4.0",
"webpack": "^5.73.0"
@@ -2242,13 +2242,13 @@
}
},
"node_modules/@docusaurus/plugin-debug": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.1.0.tgz",
- "integrity": "sha512-8wsDq3OIfiy6440KLlp/qT5uk+WRHQXIXklNHEeZcar+Of0TZxCNe2FBpv+bzb/0qcdP45ia5i5WmR5OjN6DPw==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.2.0.tgz",
+ "integrity": "sha512-p9vOep8+7OVl6r/NREEYxf4HMAjV8JMYJ7Bos5fCFO0Wyi9AZEo0sCTliRd7R8+dlJXZEgcngSdxAUo/Q+CJow==",
"dependencies": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/types": "2.1.0",
- "@docusaurus/utils": "2.1.0",
+ "@docusaurus/core": "2.2.0",
+ "@docusaurus/types": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
"fs-extra": "^10.1.0",
"react-json-view": "^1.21.3",
"tslib": "^2.4.0"
@@ -2262,15 +2262,6 @@
}
},
"node_modules/@docusaurus/plugin-google-analytics": {
-<<<<<<< HEAD
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.1.0.tgz",
- "integrity": "sha512-4cgeqIly/wcFVbbWP03y1QJJBgH8W+Bv6AVbWnsXNOZa1yB3AO6hf3ZdeQH9x20v9T2pREogVgAH0rSoVnNsgg==",
- "dependencies": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/types": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
-=======
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.2.0.tgz",
"integrity": "sha512-+eZVVxVeEnV5nVQJdey9ZsfyEVMls6VyWTIj8SmX0k5EbqGvnIfET+J2pYEuKQnDIHxy+syRMoRM6AHXdHYGIg==",
@@ -2278,7 +2269,6 @@
"@docusaurus/core": "2.2.0",
"@docusaurus/types": "2.2.0",
"@docusaurus/utils-validation": "2.2.0",
->>>>>>> origin/main
"tslib": "^2.4.0"
},
"engines": {
@@ -2289,269 +2279,35 @@
"react-dom": "^16.8.4 || ^17.0.0"
}
},
-<<<<<<< HEAD
-=======
- "node_modules/@docusaurus/plugin-google-analytics/node_modules/@docusaurus/core": {
+ "node_modules/@docusaurus/plugin-google-gtag": {
"version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.2.0.tgz",
- "integrity": "sha512-Vd6XOluKQqzG12fEs9prJgDtyn6DPok9vmUWDR2E6/nV5Fl9SVkhEQOBxwObjk3kQh7OY7vguFaLh0jqdApWsA==",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.2.0.tgz",
+ "integrity": "sha512-6SOgczP/dYdkqUMGTRqgxAS1eTp6MnJDAQMy8VCF1QKbWZmlkx4agHDexihqmYyCujTYHqDAhm1hV26EET54NQ==",
"dependencies": {
- "@babel/core": "^7.18.6",
- "@babel/generator": "^7.18.7",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-transform-runtime": "^7.18.6",
- "@babel/preset-env": "^7.18.6",
- "@babel/preset-react": "^7.18.6",
- "@babel/preset-typescript": "^7.18.6",
- "@babel/runtime": "^7.18.6",
- "@babel/runtime-corejs3": "^7.18.6",
- "@babel/traverse": "^7.18.8",
- "@docusaurus/cssnano-preset": "2.2.0",
- "@docusaurus/logger": "2.2.0",
- "@docusaurus/mdx-loader": "2.2.0",
- "@docusaurus/react-loadable": "5.5.2",
- "@docusaurus/utils": "2.2.0",
- "@docusaurus/utils-common": "2.2.0",
+ "@docusaurus/core": "2.2.0",
+ "@docusaurus/types": "2.2.0",
"@docusaurus/utils-validation": "2.2.0",
- "@slorber/static-site-generator-webpack-plugin": "^4.0.7",
- "@svgr/webpack": "^6.2.1",
- "autoprefixer": "^10.4.7",
- "babel-loader": "^8.2.5",
- "babel-plugin-dynamic-import-node": "^2.3.3",
- "boxen": "^6.2.1",
- "chalk": "^4.1.2",
- "chokidar": "^3.5.3",
- "clean-css": "^5.3.0",
- "cli-table3": "^0.6.2",
- "combine-promises": "^1.1.0",
- "commander": "^5.1.0",
- "copy-webpack-plugin": "^11.0.0",
- "core-js": "^3.23.3",
- "css-loader": "^6.7.1",
- "css-minimizer-webpack-plugin": "^4.0.0",
- "cssnano": "^5.1.12",
- "del": "^6.1.1",
- "detect-port": "^1.3.0",
- "escape-html": "^1.0.3",
- "eta": "^1.12.3",
- "file-loader": "^6.2.0",
- "fs-extra": "^10.1.0",
- "html-minifier-terser": "^6.1.0",
- "html-tags": "^3.2.0",
- "html-webpack-plugin": "^5.5.0",
- "import-fresh": "^3.3.0",
- "leven": "^3.1.0",
- "lodash": "^4.17.21",
- "mini-css-extract-plugin": "^2.6.1",
- "postcss": "^8.4.14",
- "postcss-loader": "^7.0.0",
- "prompts": "^2.4.2",
- "react-dev-utils": "^12.0.1",
- "react-helmet-async": "^1.3.0",
- "react-loadable": "npm:@docusaurus/react-loadable@5.5.2",
- "react-loadable-ssr-addon-v5-slorber": "^1.0.1",
- "react-router": "^5.3.3",
- "react-router-config": "^5.1.1",
- "react-router-dom": "^5.3.3",
- "rtl-detect": "^1.0.4",
- "semver": "^7.3.7",
- "serve-handler": "^6.1.3",
- "shelljs": "^0.8.5",
- "terser-webpack-plugin": "^5.3.3",
- "tslib": "^2.4.0",
- "update-notifier": "^5.1.0",
- "url-loader": "^4.1.1",
- "wait-on": "^6.0.1",
- "webpack": "^5.73.0",
- "webpack-bundle-analyzer": "^4.5.0",
- "webpack-dev-server": "^4.9.3",
- "webpack-merge": "^5.8.0",
- "webpackbar": "^5.0.2"
- },
- "bin": {
- "docusaurus": "bin/docusaurus.mjs"
- },
- "engines": {
- "node": ">=16.14"
- },
- "peerDependencies": {
- "react": "^16.8.4 || ^17.0.0",
- "react-dom": "^16.8.4 || ^17.0.0"
- }
- },
- "node_modules/@docusaurus/plugin-google-analytics/node_modules/@docusaurus/cssnano-preset": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.2.0.tgz",
- "integrity": "sha512-mAAwCo4n66TMWBH1kXnHVZsakW9VAXJzTO4yZukuL3ro4F+JtkMwKfh42EG75K/J/YIFQG5I/Bzy0UH/hFxaTg==",
- "dependencies": {
- "cssnano-preset-advanced": "^5.3.8",
- "postcss": "^8.4.14",
- "postcss-sort-media-queries": "^4.2.1",
- "tslib": "^2.4.0"
- },
- "engines": {
- "node": ">=16.14"
- }
- },
- "node_modules/@docusaurus/plugin-google-analytics/node_modules/@docusaurus/logger": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.2.0.tgz",
- "integrity": "sha512-DF3j1cA5y2nNsu/vk8AG7xwpZu6f5MKkPPMaaIbgXLnWGfm6+wkOeW7kNrxnM95YOhKUkJUophX69nGUnLsm0A==",
- "dependencies": {
- "chalk": "^4.1.2",
"tslib": "^2.4.0"
},
"engines": {
"node": ">=16.14"
- }
- },
- "node_modules/@docusaurus/plugin-google-analytics/node_modules/@docusaurus/mdx-loader": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.2.0.tgz",
- "integrity": "sha512-X2bzo3T0jW0VhUU+XdQofcEeozXOTmKQMvc8tUnWRdTnCvj4XEcBVdC3g+/jftceluiwSTNRAX4VBOJdNt18jA==",
- "dependencies": {
- "@babel/parser": "^7.18.8",
- "@babel/traverse": "^7.18.8",
- "@docusaurus/logger": "2.2.0",
- "@docusaurus/utils": "2.2.0",
- "@mdx-js/mdx": "^1.6.22",
- "escape-html": "^1.0.3",
- "file-loader": "^6.2.0",
- "fs-extra": "^10.1.0",
- "image-size": "^1.0.1",
- "mdast-util-to-string": "^2.0.0",
- "remark-emoji": "^2.2.0",
- "stringify-object": "^3.3.0",
- "tslib": "^2.4.0",
- "unified": "^9.2.2",
- "unist-util-visit": "^2.0.3",
- "url-loader": "^4.1.1",
- "webpack": "^5.73.0"
- },
- "engines": {
- "node": ">=16.14"
- },
- "peerDependencies": {
- "react": "^16.8.4 || ^17.0.0",
- "react-dom": "^16.8.4 || ^17.0.0"
- }
- },
- "node_modules/@docusaurus/plugin-google-analytics/node_modules/@docusaurus/types": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.2.0.tgz",
- "integrity": "sha512-b6xxyoexfbRNRI8gjblzVOnLr4peCJhGbYGPpJ3LFqpi5nsFfoK4mmDLvWdeah0B7gmJeXabN7nQkFoqeSdmOw==",
- "dependencies": {
- "@types/history": "^4.7.11",
- "@types/react": "*",
- "commander": "^5.1.0",
- "joi": "^17.6.0",
- "react-helmet-async": "^1.3.0",
- "utility-types": "^3.10.0",
- "webpack": "^5.73.0",
- "webpack-merge": "^5.8.0"
},
"peerDependencies": {
"react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4 || ^17.0.0"
}
},
- "node_modules/@docusaurus/plugin-google-analytics/node_modules/@docusaurus/utils": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.2.0.tgz",
- "integrity": "sha512-oNk3cjvx7Tt1Lgh/aeZAmFpGV2pDr5nHKrBVx6hTkzGhrnMuQqLt6UPlQjdYQ3QHXwyF/ZtZMO1D5Pfi0lu7SA==",
- "dependencies": {
- "@docusaurus/logger": "2.2.0",
- "@svgr/webpack": "^6.2.1",
- "file-loader": "^6.2.0",
- "fs-extra": "^10.1.0",
- "github-slugger": "^1.4.0",
- "globby": "^11.1.0",
- "gray-matter": "^4.0.3",
- "js-yaml": "^4.1.0",
- "lodash": "^4.17.21",
- "micromatch": "^4.0.5",
- "resolve-pathname": "^3.0.0",
- "shelljs": "^0.8.5",
- "tslib": "^2.4.0",
- "url-loader": "^4.1.1",
- "webpack": "^5.73.0"
- },
- "engines": {
- "node": ">=16.14"
- },
- "peerDependencies": {
- "@docusaurus/types": "*"
- },
- "peerDependenciesMeta": {
- "@docusaurus/types": {
- "optional": true
- }
- }
- },
- "node_modules/@docusaurus/plugin-google-analytics/node_modules/@docusaurus/utils-common": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.2.0.tgz",
- "integrity": "sha512-qebnerHp+cyovdUseDQyYFvMW1n1nv61zGe5JJfoNQUnjKuApch3IVsz+/lZ9a38pId8kqehC1Ao2bW/s0ntDA==",
- "dependencies": {
- "tslib": "^2.4.0"
- },
- "engines": {
- "node": ">=16.14"
- },
- "peerDependencies": {
- "@docusaurus/types": "*"
- },
- "peerDependenciesMeta": {
- "@docusaurus/types": {
- "optional": true
- }
- }
- },
- "node_modules/@docusaurus/plugin-google-analytics/node_modules/@docusaurus/utils-validation": {
+ "node_modules/@docusaurus/plugin-sitemap": {
"version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.2.0.tgz",
- "integrity": "sha512-I1hcsG3yoCkasOL5qQAYAfnmVoLei7apugT6m4crQjmDGxq+UkiRrq55UqmDDyZlac/6ax/JC0p+usZ6W4nVyg==",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.2.0.tgz",
+ "integrity": "sha512-0jAmyRDN/aI265CbWZNZuQpFqiZuo+5otk2MylU9iVrz/4J7gSc+ZJ9cy4EHrEsW7PV8s1w18hIEsmcA1YgkKg==",
"dependencies": {
+ "@docusaurus/core": "2.2.0",
"@docusaurus/logger": "2.2.0",
+ "@docusaurus/types": "2.2.0",
"@docusaurus/utils": "2.2.0",
- "joi": "^17.6.0",
- "js-yaml": "^4.1.0",
- "tslib": "^2.4.0"
- },
- "engines": {
- "node": ">=16.14"
- }
- },
->>>>>>> origin/main
- "node_modules/@docusaurus/plugin-google-gtag": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.1.0.tgz",
- "integrity": "sha512-/3aDlv2dMoCeiX2e+DTGvvrdTA+v3cKQV3DbmfsF4ENhvc5nKV23nth04Z3Vq0Ci1ui6Sn80TkhGk/tiCMW2AA==",
- "dependencies": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/types": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
- "tslib": "^2.4.0"
- },
- "engines": {
- "node": ">=16.14"
- },
- "peerDependencies": {
- "react": "^16.8.4 || ^17.0.0",
- "react-dom": "^16.8.4 || ^17.0.0"
- }
- },
- "node_modules/@docusaurus/plugin-sitemap": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.1.0.tgz",
- "integrity": "sha512-2Y6Br8drlrZ/jN9MwMBl0aoi9GAjpfyfMBYpaQZXimbK+e9VjYnujXlvQ4SxtM60ASDgtHIAzfVFBkSR/MwRUw==",
- "dependencies": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/logger": "2.1.0",
- "@docusaurus/types": "2.1.0",
- "@docusaurus/utils": "2.1.0",
- "@docusaurus/utils-common": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
+ "@docusaurus/utils-common": "2.2.0",
+ "@docusaurus/utils-validation": "2.2.0",
"fs-extra": "^10.1.0",
"sitemap": "^7.1.1",
"tslib": "^2.4.0"
@@ -2565,42 +2321,22 @@
}
},
"node_modules/@docusaurus/preset-classic": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.1.0.tgz",
- "integrity": "sha512-NQMnaq974K4BcSMXFSJBQ5itniw6RSyW+VT+6i90kGZzTwiuKZmsp0r9lC6BYAvvVMQUNJQwrETmlu7y2XKW7w==",
- "dependencies": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/plugin-content-blog": "2.1.0",
- "@docusaurus/plugin-content-docs": "2.1.0",
- "@docusaurus/plugin-content-pages": "2.1.0",
- "@docusaurus/plugin-debug": "2.1.0",
- "@docusaurus/plugin-google-analytics": "2.1.0",
- "@docusaurus/plugin-google-gtag": "2.1.0",
- "@docusaurus/plugin-sitemap": "2.1.0",
- "@docusaurus/theme-classic": "2.1.0",
- "@docusaurus/theme-common": "2.1.0",
- "@docusaurus/theme-search-algolia": "2.1.0",
- "@docusaurus/types": "2.1.0"
- },
- "engines": {
- "node": ">=16.14"
- },
- "peerDependencies": {
- "react": "^16.8.4 || ^17.0.0",
- "react-dom": "^16.8.4 || ^17.0.0"
- }
- },
-<<<<<<< HEAD
-=======
- "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/plugin-google-analytics": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.1.0.tgz",
- "integrity": "sha512-4cgeqIly/wcFVbbWP03y1QJJBgH8W+Bv6AVbWnsXNOZa1yB3AO6hf3ZdeQH9x20v9T2pREogVgAH0rSoVnNsgg==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.2.0.tgz",
+ "integrity": "sha512-yKIWPGNx7BT8v2wjFIWvYrS+nvN04W+UameSFf8lEiJk6pss0kL6SG2MRvyULiI3BDxH+tj6qe02ncpSPGwumg==",
"dependencies": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/types": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
- "tslib": "^2.4.0"
+ "@docusaurus/core": "2.2.0",
+ "@docusaurus/plugin-content-blog": "2.2.0",
+ "@docusaurus/plugin-content-docs": "2.2.0",
+ "@docusaurus/plugin-content-pages": "2.2.0",
+ "@docusaurus/plugin-debug": "2.2.0",
+ "@docusaurus/plugin-google-analytics": "2.2.0",
+ "@docusaurus/plugin-google-gtag": "2.2.0",
+ "@docusaurus/plugin-sitemap": "2.2.0",
+ "@docusaurus/theme-classic": "2.2.0",
+ "@docusaurus/theme-common": "2.2.0",
+ "@docusaurus/theme-search-algolia": "2.2.0",
+ "@docusaurus/types": "2.2.0"
},
"engines": {
"node": ">=16.14"
@@ -2610,7 +2346,6 @@
"react-dom": "^16.8.4 || ^17.0.0"
}
},
->>>>>>> origin/main
"node_modules/@docusaurus/react-loadable": {
"version": "5.5.2",
"resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz",
@@ -2624,22 +2359,22 @@
}
},
"node_modules/@docusaurus/theme-classic": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.1.0.tgz",
- "integrity": "sha512-xn8ZfNMsf7gaSy9+ClFnUu71o7oKgMo5noYSS1hy3svNifRTkrBp6+MReLDsmIaj3mLf2e7+JCBYKBFbaGzQng==",
- "dependencies": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/mdx-loader": "2.1.0",
- "@docusaurus/module-type-aliases": "2.1.0",
- "@docusaurus/plugin-content-blog": "2.1.0",
- "@docusaurus/plugin-content-docs": "2.1.0",
- "@docusaurus/plugin-content-pages": "2.1.0",
- "@docusaurus/theme-common": "2.1.0",
- "@docusaurus/theme-translations": "2.1.0",
- "@docusaurus/types": "2.1.0",
- "@docusaurus/utils": "2.1.0",
- "@docusaurus/utils-common": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.2.0.tgz",
+ "integrity": "sha512-kjbg/qJPwZ6H1CU/i9d4l/LcFgnuzeiGgMQlt6yPqKo0SOJIBMPuz7Rnu3r/WWbZFPi//o8acclacOzmXdUUEg==",
+ "dependencies": {
+ "@docusaurus/core": "2.2.0",
+ "@docusaurus/mdx-loader": "2.2.0",
+ "@docusaurus/module-type-aliases": "2.2.0",
+ "@docusaurus/plugin-content-blog": "2.2.0",
+ "@docusaurus/plugin-content-docs": "2.2.0",
+ "@docusaurus/plugin-content-pages": "2.2.0",
+ "@docusaurus/theme-common": "2.2.0",
+ "@docusaurus/theme-translations": "2.2.0",
+ "@docusaurus/types": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
+ "@docusaurus/utils-common": "2.2.0",
+ "@docusaurus/utils-validation": "2.2.0",
"@mdx-js/react": "^1.6.22",
"clsx": "^1.2.1",
"copy-text-to-clipboard": "^3.0.1",
@@ -2663,16 +2398,16 @@
}
},
"node_modules/@docusaurus/theme-common": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.1.0.tgz",
- "integrity": "sha512-vT1otpVPbKux90YpZUnvknsn5zvpLf+AW1W0EDcpE9up4cDrPqfsh0QoxGHFJnobE2/qftsBFC19BneN4BH8Ag==",
- "dependencies": {
- "@docusaurus/mdx-loader": "2.1.0",
- "@docusaurus/module-type-aliases": "2.1.0",
- "@docusaurus/plugin-content-blog": "2.1.0",
- "@docusaurus/plugin-content-docs": "2.1.0",
- "@docusaurus/plugin-content-pages": "2.1.0",
- "@docusaurus/utils": "2.1.0",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.2.0.tgz",
+ "integrity": "sha512-R8BnDjYoN90DCL75gP7qYQfSjyitXuP9TdzgsKDmSFPNyrdE3twtPNa2dIN+h+p/pr+PagfxwWbd6dn722A1Dw==",
+ "dependencies": {
+ "@docusaurus/mdx-loader": "2.2.0",
+ "@docusaurus/module-type-aliases": "2.2.0",
+ "@docusaurus/plugin-content-blog": "2.2.0",
+ "@docusaurus/plugin-content-docs": "2.2.0",
+ "@docusaurus/plugin-content-pages": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"@types/react-router-config": "*",
@@ -2691,18 +2426,18 @@
}
},
"node_modules/@docusaurus/theme-search-algolia": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.1.0.tgz",
- "integrity": "sha512-rNBvi35VvENhucslEeVPOtbAzBdZY/9j55gdsweGV5bYoAXy4mHB6zTGjealcB4pJ6lJY4a5g75fXXMOlUqPfg==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.2.0.tgz",
+ "integrity": "sha512-2h38B0tqlxgR2FZ9LpAkGrpDWVdXZ7vltfmTdX+4RsDs3A7khiNsmZB+x/x6sA4+G2V2CvrsPMlsYBy5X+cY1w==",
"dependencies": {
"@docsearch/react": "^3.1.1",
- "@docusaurus/core": "2.1.0",
- "@docusaurus/logger": "2.1.0",
- "@docusaurus/plugin-content-docs": "2.1.0",
- "@docusaurus/theme-common": "2.1.0",
- "@docusaurus/theme-translations": "2.1.0",
- "@docusaurus/utils": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
+ "@docusaurus/core": "2.2.0",
+ "@docusaurus/logger": "2.2.0",
+ "@docusaurus/plugin-content-docs": "2.2.0",
+ "@docusaurus/theme-common": "2.2.0",
+ "@docusaurus/theme-translations": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
+ "@docusaurus/utils-validation": "2.2.0",
"algoliasearch": "^4.13.1",
"algoliasearch-helper": "^3.10.0",
"clsx": "^1.2.1",
@@ -2721,9 +2456,9 @@
}
},
"node_modules/@docusaurus/theme-translations": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.1.0.tgz",
- "integrity": "sha512-07n2akf2nqWvtJeMy3A+7oSGMuu5F673AovXVwY0aGAux1afzGCiqIFlYW3EP0CujvDJAEFSQi/Tetfh+95JNg==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.2.0.tgz",
+ "integrity": "sha512-3T140AG11OjJrtKlY4pMZ5BzbGRDjNs2co5hJ6uYJG1bVWlhcaFGqkaZ5lCgKflaNHD7UHBHU9Ec5f69jTdd6w==",
"dependencies": {
"fs-extra": "^10.1.0",
"tslib": "^2.4.0"
@@ -2733,9 +2468,9 @@
}
},
"node_modules/@docusaurus/types": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.1.0.tgz",
- "integrity": "sha512-BS1ebpJZnGG6esKqsjtEC9U9qSaPylPwlO7cQ1GaIE7J/kMZI3FITnNn0otXXu7c7ZTqhb6+8dOrG6fZn6fqzQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.2.0.tgz",
+ "integrity": "sha512-b6xxyoexfbRNRI8gjblzVOnLr4peCJhGbYGPpJ3LFqpi5nsFfoK4mmDLvWdeah0B7gmJeXabN7nQkFoqeSdmOw==",
"dependencies": {
"@types/history": "^4.7.11",
"@types/react": "*",
@@ -2752,11 +2487,11 @@
}
},
"node_modules/@docusaurus/utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.1.0.tgz",
- "integrity": "sha512-fPvrfmAuC54n8MjZuG4IysaMdmvN5A/qr7iFLbSGSyDrsbP4fnui6KdZZIa/YOLIPLec8vjZ8RIITJqF18mx4A==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.2.0.tgz",
+ "integrity": "sha512-oNk3cjvx7Tt1Lgh/aeZAmFpGV2pDr5nHKrBVx6hTkzGhrnMuQqLt6UPlQjdYQ3QHXwyF/ZtZMO1D5Pfi0lu7SA==",
"dependencies": {
- "@docusaurus/logger": "2.1.0",
+ "@docusaurus/logger": "2.2.0",
"@svgr/webpack": "^6.2.1",
"file-loader": "^6.2.0",
"fs-extra": "^10.1.0",
@@ -2785,9 +2520,9 @@
}
},
"node_modules/@docusaurus/utils-common": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.1.0.tgz",
- "integrity": "sha512-F2vgmt4yRFgRQR2vyEFGTWeyAdmgKbtmu3sjHObF0tjjx/pN0Iw/c6eCopaH34E6tc9nO0nvp01pwW+/86d1fg==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.2.0.tgz",
+ "integrity": "sha512-qebnerHp+cyovdUseDQyYFvMW1n1nv61zGe5JJfoNQUnjKuApch3IVsz+/lZ9a38pId8kqehC1Ao2bW/s0ntDA==",
"dependencies": {
"tslib": "^2.4.0"
},
@@ -2804,12 +2539,12 @@
}
},
"node_modules/@docusaurus/utils-validation": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.1.0.tgz",
- "integrity": "sha512-AMJzWYKL3b7FLltKtDXNLO9Y649V2BXvrnRdnW2AA+PpBnYV78zKLSCz135cuWwRj1ajNtP4onbXdlnyvCijGQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.2.0.tgz",
+ "integrity": "sha512-I1hcsG3yoCkasOL5qQAYAfnmVoLei7apugT6m4crQjmDGxq+UkiRrq55UqmDDyZlac/6ax/JC0p+usZ6W4nVyg==",
"dependencies": {
- "@docusaurus/logger": "2.1.0",
- "@docusaurus/utils": "2.1.0",
+ "@docusaurus/logger": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
"joi": "^17.6.0",
"js-yaml": "^4.1.0",
"tslib": "^2.4.0"
@@ -4192,9 +3927,9 @@
}
},
"node_modules/autoprefixer": {
- "version": "10.4.12",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz",
- "integrity": "sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==",
+ "version": "10.4.13",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz",
+ "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==",
"funding": [
{
"type": "opencollective",
@@ -4207,7 +3942,7 @@
],
"dependencies": {
"browserslist": "^4.21.4",
- "caniuse-lite": "^1.0.30001407",
+ "caniuse-lite": "^1.0.30001426",
"fraction.js": "^4.2.0",
"normalize-range": "^0.1.2",
"picocolors": "^1.0.0",
@@ -4627,9 +4362,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001419",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001419.tgz",
- "integrity": "sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw==",
+ "version": "1.0.30001429",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001429.tgz",
+ "integrity": "sha512-511ThLu1hF+5RRRt0zYCf2U2yRr9GPF6m5y90SBCWsvSoYoW7yAGlv/elyPaNfvGCkp6kj/KFZWU0BMA69Prsg==",
"funding": [
{
"type": "opencollective",
@@ -5450,12 +5185,12 @@
}
},
"node_modules/cssnano-preset-advanced": {
- "version": "5.3.8",
- "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.8.tgz",
- "integrity": "sha512-xUlLLnEB1LjpEik+zgRNlk8Y/koBPPtONZjp7JKbXigeAmCrFvq9H0pXW5jJV45bQWAlmJ0sKy+IMr0XxLYQZg==",
+ "version": "5.3.9",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.9.tgz",
+ "integrity": "sha512-njnh4pp1xCsibJcEHnWZb4EEzni0ePMqPuPNyuWT4Z+YeXmsgqNuTPIljXFEXhxGsWs9183JkXgHxc1TcsahIg==",
"dependencies": {
- "autoprefixer": "^10.3.7",
- "cssnano-preset-default": "^5.2.12",
+ "autoprefixer": "^10.4.12",
+ "cssnano-preset-default": "^5.2.13",
"postcss-discard-unused": "^5.1.0",
"postcss-merge-idents": "^5.1.1",
"postcss-reduce-idents": "^5.2.0",
@@ -5469,24 +5204,24 @@
}
},
"node_modules/cssnano-preset-default": {
- "version": "5.2.12",
- "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz",
- "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==",
+ "version": "5.2.13",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz",
+ "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==",
"dependencies": {
- "css-declaration-sorter": "^6.3.0",
+ "css-declaration-sorter": "^6.3.1",
"cssnano-utils": "^3.1.0",
"postcss-calc": "^8.2.3",
"postcss-colormin": "^5.3.0",
- "postcss-convert-values": "^5.1.2",
+ "postcss-convert-values": "^5.1.3",
"postcss-discard-comments": "^5.1.2",
"postcss-discard-duplicates": "^5.1.0",
"postcss-discard-empty": "^5.1.1",
"postcss-discard-overridden": "^5.1.0",
- "postcss-merge-longhand": "^5.1.6",
- "postcss-merge-rules": "^5.1.2",
+ "postcss-merge-longhand": "^5.1.7",
+ "postcss-merge-rules": "^5.1.3",
"postcss-minify-font-values": "^5.1.0",
"postcss-minify-gradients": "^5.1.1",
- "postcss-minify-params": "^5.1.3",
+ "postcss-minify-params": "^5.1.4",
"postcss-minify-selectors": "^5.2.1",
"postcss-normalize-charset": "^5.1.0",
"postcss-normalize-display-values": "^5.1.0",
@@ -5494,11 +5229,11 @@
"postcss-normalize-repeat-style": "^5.1.1",
"postcss-normalize-string": "^5.1.0",
"postcss-normalize-timing-functions": "^5.1.0",
- "postcss-normalize-unicode": "^5.1.0",
+ "postcss-normalize-unicode": "^5.1.1",
"postcss-normalize-url": "^5.1.0",
"postcss-normalize-whitespace": "^5.1.1",
"postcss-ordered-values": "^5.1.3",
- "postcss-reduce-initial": "^5.1.0",
+ "postcss-reduce-initial": "^5.1.1",
"postcss-reduce-transforms": "^5.1.0",
"postcss-svgo": "^5.1.0",
"postcss-unique-selectors": "^5.1.1"
@@ -6958,9 +6693,9 @@
}
},
"node_modules/github-slugger": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz",
- "integrity": "sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ=="
+ "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",
@@ -9317,11 +9052,11 @@
}
},
"node_modules/postcss-convert-values": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz",
- "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz",
+ "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==",
"dependencies": {
- "browserslist": "^4.20.3",
+ "browserslist": "^4.21.4",
"postcss-value-parser": "^4.2.0"
},
"engines": {
@@ -9426,12 +9161,12 @@
}
},
"node_modules/postcss-merge-longhand": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz",
- "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==",
+ "version": "5.1.7",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz",
+ "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==",
"dependencies": {
"postcss-value-parser": "^4.2.0",
- "stylehacks": "^5.1.0"
+ "stylehacks": "^5.1.1"
},
"engines": {
"node": "^10 || ^12 || >=14.0"
@@ -9441,11 +9176,11 @@
}
},
"node_modules/postcss-merge-rules": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz",
- "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz",
+ "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==",
"dependencies": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"caniuse-api": "^3.0.0",
"cssnano-utils": "^3.1.0",
"postcss-selector-parser": "^6.0.5"
@@ -9488,11 +9223,11 @@
}
},
"node_modules/postcss-minify-params": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz",
- "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==",
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz",
+ "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==",
"dependencies": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"cssnano-utils": "^3.1.0",
"postcss-value-parser": "^4.2.0"
},
@@ -9654,11 +9389,11 @@
}
},
"node_modules/postcss-normalize-unicode": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz",
- "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz",
+ "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==",
"dependencies": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"postcss-value-parser": "^4.2.0"
},
"engines": {
@@ -9727,11 +9462,11 @@
}
},
"node_modules/postcss-reduce-initial": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz",
- "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz",
+ "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==",
"dependencies": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"caniuse-api": "^3.0.0"
},
"engines": {
@@ -11677,11 +11412,11 @@
}
},
"node_modules/stylehacks": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz",
- "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz",
+ "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==",
"dependencies": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"postcss-selector-parser": "^6.0.4"
},
"engines": {
@@ -12094,9 +11829,9 @@
}
},
"node_modules/ua-parser-js": {
- "version": "0.7.31",
- "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz",
- "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==",
+ "version": "0.7.32",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.32.tgz",
+ "integrity": "sha512-f9BESNVhzlhEFf2CHMSj40NWOjYPl1YKYbrvIr/hFTDEmLq7SRbWvm7FcdcpCYT95zrOhC7gZSxjdnnTpBcwVw==",
"funding": [
{
"type": "opencollective",
@@ -13262,25 +12997,25 @@
},
"dependencies": {
"@algolia/autocomplete-core": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.7.1.tgz",
- "integrity": "sha512-eiZw+fxMzNQn01S8dA/hcCpoWCOCwcIIEUtHHdzN5TGB3IpzLbuhqFeTfh2OUhhgkE8Uo17+wH+QJ/wYyQmmzg==",
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.7.2.tgz",
+ "integrity": "sha512-eclwUDC6qfApNnEfu1uWcL/rudQsn59tjEoUYZYE2JSXZrHLRjBUGMxiCoknobU2Pva8ejb0eRxpIYDtVVqdsw==",
"requires": {
- "@algolia/autocomplete-shared": "1.7.1"
+ "@algolia/autocomplete-shared": "1.7.2"
}
},
"@algolia/autocomplete-preset-algolia": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.1.tgz",
- "integrity": "sha512-pJwmIxeJCymU1M6cGujnaIYcY3QPOVYZOXhFkWVM7IxKzy272BwCvMFMyc5NpG/QmiObBxjo7myd060OeTNJXg==",
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.2.tgz",
+ "integrity": "sha512-+RYEG6B0QiGGfRb2G3MtPfyrl0dALF3cQNTWBzBX6p5o01vCCGTTinAm2UKG3tfc2CnOMAtnPLkzNZyJUpnVJw==",
"requires": {
- "@algolia/autocomplete-shared": "1.7.1"
+ "@algolia/autocomplete-shared": "1.7.2"
}
},
"@algolia/autocomplete-shared": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.1.tgz",
- "integrity": "sha512-eTmGVqY3GeyBTT8IWiB2K5EuURAqhnumfktAEoHxfDY2o7vg2rSnO16ZtIG0fMgt3py28Vwgq42/bVEuaQV7pg=="
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.2.tgz",
+ "integrity": "sha512-QCckjiC7xXHIUaIL3ektBtjJ0w7tTA3iqKcAE/Hjn1lZ5omp7i3Y4e09rAr9ZybqirL7AbxCLLq0Ra5DDPKeug=="
},
"@algolia/cache-browser-local-storage": {
"version": "4.14.2",
@@ -14619,25 +14354,25 @@
"optional": true
},
"@docsearch/css": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.2.1.tgz",
- "integrity": "sha512-gaP6TxxwQC+K8D6TRx5WULUWKrcbzECOPA2KCVMuI+6C7dNiGUk5yXXzVhc5sld79XKYLnO9DRTI4mjXDYkh+g=="
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.3.0.tgz",
+ "integrity": "sha512-rODCdDtGyudLj+Va8b6w6Y85KE85bXRsps/R4Yjwt5vueXKXZQKYw0aA9knxLBT6a/bI/GMrAcmCR75KYOM6hg=="
},
"@docsearch/react": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.2.1.tgz",
- "integrity": "sha512-EzTQ/y82s14IQC5XVestiK/kFFMe2aagoYFuTAIfIb/e+4FU7kSMKonRtLwsCiLQHmjvNQq+HO+33giJ5YVtaQ==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.3.0.tgz",
+ "integrity": "sha512-fhS5adZkae2SSdMYEMVg6pxI5a/cE+tW16ki1V0/ur4Fdok3hBRkmN/H8VvlXnxzggkQIIRIVvYPn00JPjen3A==",
"requires": {
- "@algolia/autocomplete-core": "1.7.1",
- "@algolia/autocomplete-preset-algolia": "1.7.1",
- "@docsearch/css": "3.2.1",
+ "@algolia/autocomplete-core": "1.7.2",
+ "@algolia/autocomplete-preset-algolia": "1.7.2",
+ "@docsearch/css": "3.3.0",
"algoliasearch": "^4.0.0"
}
},
"@docusaurus/core": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.1.0.tgz",
- "integrity": "sha512-/ZJ6xmm+VB9Izbn0/s6h6289cbPy2k4iYFwWDhjiLsVqwa/Y0YBBcXvStfaHccudUC3OfP+26hMk7UCjc50J6Q==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.2.0.tgz",
+ "integrity": "sha512-Vd6XOluKQqzG12fEs9prJgDtyn6DPok9vmUWDR2E6/nV5Fl9SVkhEQOBxwObjk3kQh7OY7vguFaLh0jqdApWsA==",
"requires": {
"@babel/core": "^7.18.6",
"@babel/generator": "^7.18.7",
@@ -14649,13 +14384,13 @@
"@babel/runtime": "^7.18.6",
"@babel/runtime-corejs3": "^7.18.6",
"@babel/traverse": "^7.18.8",
- "@docusaurus/cssnano-preset": "2.1.0",
- "@docusaurus/logger": "2.1.0",
- "@docusaurus/mdx-loader": "2.1.0",
+ "@docusaurus/cssnano-preset": "2.2.0",
+ "@docusaurus/logger": "2.2.0",
+ "@docusaurus/mdx-loader": "2.2.0",
"@docusaurus/react-loadable": "5.5.2",
- "@docusaurus/utils": "2.1.0",
- "@docusaurus/utils-common": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
+ "@docusaurus/utils": "2.2.0",
+ "@docusaurus/utils-common": "2.2.0",
+ "@docusaurus/utils-validation": "2.2.0",
"@slorber/static-site-generator-webpack-plugin": "^4.0.7",
"@svgr/webpack": "^6.2.1",
"autoprefixer": "^10.4.7",
@@ -14713,9 +14448,9 @@
}
},
"@docusaurus/cssnano-preset": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.1.0.tgz",
- "integrity": "sha512-pRLewcgGhOies6pzsUROfmPStDRdFw+FgV5sMtLr5+4Luv2rty5+b/eSIMMetqUsmg3A9r9bcxHk9bKAKvx3zQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.2.0.tgz",
+ "integrity": "sha512-mAAwCo4n66TMWBH1kXnHVZsakW9VAXJzTO4yZukuL3ro4F+JtkMwKfh42EG75K/J/YIFQG5I/Bzy0UH/hFxaTg==",
"requires": {
"cssnano-preset-advanced": "^5.3.8",
"postcss": "^8.4.14",
@@ -14724,23 +14459,23 @@
}
},
"@docusaurus/logger": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.1.0.tgz",
- "integrity": "sha512-uuJx2T6hDBg82joFeyobywPjSOIfeq05GfyKGHThVoXuXsu1KAzMDYcjoDxarb9CoHCI/Dor8R2MoL6zII8x1Q==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.2.0.tgz",
+ "integrity": "sha512-DF3j1cA5y2nNsu/vk8AG7xwpZu6f5MKkPPMaaIbgXLnWGfm6+wkOeW7kNrxnM95YOhKUkJUophX69nGUnLsm0A==",
"requires": {
"chalk": "^4.1.2",
"tslib": "^2.4.0"
}
},
"@docusaurus/mdx-loader": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.1.0.tgz",
- "integrity": "sha512-i97hi7hbQjsD3/8OSFhLy7dbKGH8ryjEzOfyhQIn2CFBYOY3ko0vMVEf3IY9nD3Ld7amYzsZ8153RPkcnXA+Lg==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.2.0.tgz",
+ "integrity": "sha512-X2bzo3T0jW0VhUU+XdQofcEeozXOTmKQMvc8tUnWRdTnCvj4XEcBVdC3g+/jftceluiwSTNRAX4VBOJdNt18jA==",
"requires": {
"@babel/parser": "^7.18.8",
"@babel/traverse": "^7.18.8",
- "@docusaurus/logger": "2.1.0",
- "@docusaurus/utils": "2.1.0",
+ "@docusaurus/logger": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
"@mdx-js/mdx": "^1.6.22",
"escape-html": "^1.0.3",
"file-loader": "^6.2.0",
@@ -14757,12 +14492,12 @@
}
},
"@docusaurus/module-type-aliases": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.1.0.tgz",
- "integrity": "sha512-Z8WZaK5cis3xEtyfOT817u9xgGUauT0PuuVo85ysnFRX8n7qLN1lTPCkC+aCmFm/UcV8h/W5T4NtIsst94UntQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.2.0.tgz",
+ "integrity": "sha512-wDGW4IHKoOr9YuJgy7uYuKWrDrSpsUSDHLZnWQYM9fN7D5EpSmYHjFruUpKWVyxLpD/Wh0rW8hYZwdjJIQUQCQ==",
"requires": {
"@docusaurus/react-loadable": "5.5.2",
- "@docusaurus/types": "2.1.0",
+ "@docusaurus/types": "2.2.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"@types/react-router-config": "*",
@@ -14772,17 +14507,17 @@
}
},
"@docusaurus/plugin-content-blog": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.1.0.tgz",
- "integrity": "sha512-xEp6jlu92HMNUmyRBEeJ4mCW1s77aAEQO4Keez94cUY/Ap7G/r0Awa6xSLff7HL0Fjg8KK1bEbDy7q9voIavdg==",
- "requires": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/logger": "2.1.0",
- "@docusaurus/mdx-loader": "2.1.0",
- "@docusaurus/types": "2.1.0",
- "@docusaurus/utils": "2.1.0",
- "@docusaurus/utils-common": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.2.0.tgz",
+ "integrity": "sha512-0mWBinEh0a5J2+8ZJXJXbrCk1tSTNf7Nm4tYAl5h2/xx+PvH/Bnu0V+7mMljYm/1QlDYALNIIaT/JcoZQFUN3w==",
+ "requires": {
+ "@docusaurus/core": "2.2.0",
+ "@docusaurus/logger": "2.2.0",
+ "@docusaurus/mdx-loader": "2.2.0",
+ "@docusaurus/types": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
+ "@docusaurus/utils-common": "2.2.0",
+ "@docusaurus/utils-validation": "2.2.0",
"cheerio": "^1.0.0-rc.12",
"feed": "^4.2.2",
"fs-extra": "^10.1.0",
@@ -14795,17 +14530,17 @@
}
},
"@docusaurus/plugin-content-docs": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.1.0.tgz",
- "integrity": "sha512-Rup5pqXrXlKGIC4VgwvioIhGWF7E/NNSlxv+JAxRYpik8VKlWsk9ysrdHIlpX+KJUCO9irnY21kQh2814mlp/Q==",
- "requires": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/logger": "2.1.0",
- "@docusaurus/mdx-loader": "2.1.0",
- "@docusaurus/module-type-aliases": "2.1.0",
- "@docusaurus/types": "2.1.0",
- "@docusaurus/utils": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.2.0.tgz",
+ "integrity": "sha512-BOazBR0XjzsHE+2K1wpNxz5QZmrJgmm3+0Re0EVPYFGW8qndCWGNtXW/0lGKhecVPML8yyFeAmnUCIs7xM2wPw==",
+ "requires": {
+ "@docusaurus/core": "2.2.0",
+ "@docusaurus/logger": "2.2.0",
+ "@docusaurus/mdx-loader": "2.2.0",
+ "@docusaurus/module-type-aliases": "2.2.0",
+ "@docusaurus/types": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
+ "@docusaurus/utils-validation": "2.2.0",
"@types/react-router-config": "^5.0.6",
"combine-promises": "^1.1.0",
"fs-extra": "^10.1.0",
@@ -14818,44 +14553,34 @@
}
},
"@docusaurus/plugin-content-pages": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.1.0.tgz",
- "integrity": "sha512-SwZdDZRlObHNKXTnFo7W2aF6U5ZqNVI55Nw2GCBryL7oKQSLeI0lsrMlMXdzn+fS7OuBTd3MJBO1T4Zpz0i/+g==",
- "requires": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/mdx-loader": "2.1.0",
- "@docusaurus/types": "2.1.0",
- "@docusaurus/utils": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.2.0.tgz",
+ "integrity": "sha512-+OTK3FQHk5WMvdelz8v19PbEbx+CNT6VSpx7nVOvMNs5yJCKvmqBJBQ2ZSxROxhVDYn+CZOlmyrC56NSXzHf6g==",
+ "requires": {
+ "@docusaurus/core": "2.2.0",
+ "@docusaurus/mdx-loader": "2.2.0",
+ "@docusaurus/types": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
+ "@docusaurus/utils-validation": "2.2.0",
"fs-extra": "^10.1.0",
"tslib": "^2.4.0",
"webpack": "^5.73.0"
}
},
"@docusaurus/plugin-debug": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.1.0.tgz",
- "integrity": "sha512-8wsDq3OIfiy6440KLlp/qT5uk+WRHQXIXklNHEeZcar+Of0TZxCNe2FBpv+bzb/0qcdP45ia5i5WmR5OjN6DPw==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.2.0.tgz",
+ "integrity": "sha512-p9vOep8+7OVl6r/NREEYxf4HMAjV8JMYJ7Bos5fCFO0Wyi9AZEo0sCTliRd7R8+dlJXZEgcngSdxAUo/Q+CJow==",
"requires": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/types": "2.1.0",
- "@docusaurus/utils": "2.1.0",
+ "@docusaurus/core": "2.2.0",
+ "@docusaurus/types": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
"fs-extra": "^10.1.0",
"react-json-view": "^1.21.3",
"tslib": "^2.4.0"
}
},
"@docusaurus/plugin-google-analytics": {
-<<<<<<< HEAD
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.1.0.tgz",
- "integrity": "sha512-4cgeqIly/wcFVbbWP03y1QJJBgH8W+Bv6AVbWnsXNOZa1yB3AO6hf3ZdeQH9x20v9T2pREogVgAH0rSoVnNsgg==",
- "requires": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/types": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
- "tslib": "^2.4.0"
-=======
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.2.0.tgz",
"integrity": "sha512-+eZVVxVeEnV5nVQJdey9ZsfyEVMls6VyWTIj8SmX0k5EbqGvnIfET+J2pYEuKQnDIHxy+syRMoRM6AHXdHYGIg==",
@@ -14864,250 +14589,52 @@
"@docusaurus/types": "2.2.0",
"@docusaurus/utils-validation": "2.2.0",
"tslib": "^2.4.0"
- },
- "dependencies": {
- "@docusaurus/core": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.2.0.tgz",
- "integrity": "sha512-Vd6XOluKQqzG12fEs9prJgDtyn6DPok9vmUWDR2E6/nV5Fl9SVkhEQOBxwObjk3kQh7OY7vguFaLh0jqdApWsA==",
- "requires": {
- "@babel/core": "^7.18.6",
- "@babel/generator": "^7.18.7",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-transform-runtime": "^7.18.6",
- "@babel/preset-env": "^7.18.6",
- "@babel/preset-react": "^7.18.6",
- "@babel/preset-typescript": "^7.18.6",
- "@babel/runtime": "^7.18.6",
- "@babel/runtime-corejs3": "^7.18.6",
- "@babel/traverse": "^7.18.8",
- "@docusaurus/cssnano-preset": "2.2.0",
- "@docusaurus/logger": "2.2.0",
- "@docusaurus/mdx-loader": "2.2.0",
- "@docusaurus/react-loadable": "5.5.2",
- "@docusaurus/utils": "2.2.0",
- "@docusaurus/utils-common": "2.2.0",
- "@docusaurus/utils-validation": "2.2.0",
- "@slorber/static-site-generator-webpack-plugin": "^4.0.7",
- "@svgr/webpack": "^6.2.1",
- "autoprefixer": "^10.4.7",
- "babel-loader": "^8.2.5",
- "babel-plugin-dynamic-import-node": "^2.3.3",
- "boxen": "^6.2.1",
- "chalk": "^4.1.2",
- "chokidar": "^3.5.3",
- "clean-css": "^5.3.0",
- "cli-table3": "^0.6.2",
- "combine-promises": "^1.1.0",
- "commander": "^5.1.0",
- "copy-webpack-plugin": "^11.0.0",
- "core-js": "^3.23.3",
- "css-loader": "^6.7.1",
- "css-minimizer-webpack-plugin": "^4.0.0",
- "cssnano": "^5.1.12",
- "del": "^6.1.1",
- "detect-port": "^1.3.0",
- "escape-html": "^1.0.3",
- "eta": "^1.12.3",
- "file-loader": "^6.2.0",
- "fs-extra": "^10.1.0",
- "html-minifier-terser": "^6.1.0",
- "html-tags": "^3.2.0",
- "html-webpack-plugin": "^5.5.0",
- "import-fresh": "^3.3.0",
- "leven": "^3.1.0",
- "lodash": "^4.17.21",
- "mini-css-extract-plugin": "^2.6.1",
- "postcss": "^8.4.14",
- "postcss-loader": "^7.0.0",
- "prompts": "^2.4.2",
- "react-dev-utils": "^12.0.1",
- "react-helmet-async": "^1.3.0",
- "react-loadable": "npm:@docusaurus/react-loadable@5.5.2",
- "react-loadable-ssr-addon-v5-slorber": "^1.0.1",
- "react-router": "^5.3.3",
- "react-router-config": "^5.1.1",
- "react-router-dom": "^5.3.3",
- "rtl-detect": "^1.0.4",
- "semver": "^7.3.7",
- "serve-handler": "^6.1.3",
- "shelljs": "^0.8.5",
- "terser-webpack-plugin": "^5.3.3",
- "tslib": "^2.4.0",
- "update-notifier": "^5.1.0",
- "url-loader": "^4.1.1",
- "wait-on": "^6.0.1",
- "webpack": "^5.73.0",
- "webpack-bundle-analyzer": "^4.5.0",
- "webpack-dev-server": "^4.9.3",
- "webpack-merge": "^5.8.0",
- "webpackbar": "^5.0.2"
- }
- },
- "@docusaurus/cssnano-preset": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.2.0.tgz",
- "integrity": "sha512-mAAwCo4n66TMWBH1kXnHVZsakW9VAXJzTO4yZukuL3ro4F+JtkMwKfh42EG75K/J/YIFQG5I/Bzy0UH/hFxaTg==",
- "requires": {
- "cssnano-preset-advanced": "^5.3.8",
- "postcss": "^8.4.14",
- "postcss-sort-media-queries": "^4.2.1",
- "tslib": "^2.4.0"
- }
- },
- "@docusaurus/logger": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.2.0.tgz",
- "integrity": "sha512-DF3j1cA5y2nNsu/vk8AG7xwpZu6f5MKkPPMaaIbgXLnWGfm6+wkOeW7kNrxnM95YOhKUkJUophX69nGUnLsm0A==",
- "requires": {
- "chalk": "^4.1.2",
- "tslib": "^2.4.0"
- }
- },
- "@docusaurus/mdx-loader": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.2.0.tgz",
- "integrity": "sha512-X2bzo3T0jW0VhUU+XdQofcEeozXOTmKQMvc8tUnWRdTnCvj4XEcBVdC3g+/jftceluiwSTNRAX4VBOJdNt18jA==",
- "requires": {
- "@babel/parser": "^7.18.8",
- "@babel/traverse": "^7.18.8",
- "@docusaurus/logger": "2.2.0",
- "@docusaurus/utils": "2.2.0",
- "@mdx-js/mdx": "^1.6.22",
- "escape-html": "^1.0.3",
- "file-loader": "^6.2.0",
- "fs-extra": "^10.1.0",
- "image-size": "^1.0.1",
- "mdast-util-to-string": "^2.0.0",
- "remark-emoji": "^2.2.0",
- "stringify-object": "^3.3.0",
- "tslib": "^2.4.0",
- "unified": "^9.2.2",
- "unist-util-visit": "^2.0.3",
- "url-loader": "^4.1.1",
- "webpack": "^5.73.0"
- }
- },
- "@docusaurus/types": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.2.0.tgz",
- "integrity": "sha512-b6xxyoexfbRNRI8gjblzVOnLr4peCJhGbYGPpJ3LFqpi5nsFfoK4mmDLvWdeah0B7gmJeXabN7nQkFoqeSdmOw==",
- "requires": {
- "@types/history": "^4.7.11",
- "@types/react": "*",
- "commander": "^5.1.0",
- "joi": "^17.6.0",
- "react-helmet-async": "^1.3.0",
- "utility-types": "^3.10.0",
- "webpack": "^5.73.0",
- "webpack-merge": "^5.8.0"
- }
- },
- "@docusaurus/utils": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.2.0.tgz",
- "integrity": "sha512-oNk3cjvx7Tt1Lgh/aeZAmFpGV2pDr5nHKrBVx6hTkzGhrnMuQqLt6UPlQjdYQ3QHXwyF/ZtZMO1D5Pfi0lu7SA==",
- "requires": {
- "@docusaurus/logger": "2.2.0",
- "@svgr/webpack": "^6.2.1",
- "file-loader": "^6.2.0",
- "fs-extra": "^10.1.0",
- "github-slugger": "^1.4.0",
- "globby": "^11.1.0",
- "gray-matter": "^4.0.3",
- "js-yaml": "^4.1.0",
- "lodash": "^4.17.21",
- "micromatch": "^4.0.5",
- "resolve-pathname": "^3.0.0",
- "shelljs": "^0.8.5",
- "tslib": "^2.4.0",
- "url-loader": "^4.1.1",
- "webpack": "^5.73.0"
- }
- },
- "@docusaurus/utils-common": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.2.0.tgz",
- "integrity": "sha512-qebnerHp+cyovdUseDQyYFvMW1n1nv61zGe5JJfoNQUnjKuApch3IVsz+/lZ9a38pId8kqehC1Ao2bW/s0ntDA==",
- "requires": {
- "tslib": "^2.4.0"
- }
- },
- "@docusaurus/utils-validation": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.2.0.tgz",
- "integrity": "sha512-I1hcsG3yoCkasOL5qQAYAfnmVoLei7apugT6m4crQjmDGxq+UkiRrq55UqmDDyZlac/6ax/JC0p+usZ6W4nVyg==",
- "requires": {
- "@docusaurus/logger": "2.2.0",
- "@docusaurus/utils": "2.2.0",
- "joi": "^17.6.0",
- "js-yaml": "^4.1.0",
- "tslib": "^2.4.0"
- }
- }
->>>>>>> origin/main
}
},
"@docusaurus/plugin-google-gtag": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.1.0.tgz",
- "integrity": "sha512-/3aDlv2dMoCeiX2e+DTGvvrdTA+v3cKQV3DbmfsF4ENhvc5nKV23nth04Z3Vq0Ci1ui6Sn80TkhGk/tiCMW2AA==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.2.0.tgz",
+ "integrity": "sha512-6SOgczP/dYdkqUMGTRqgxAS1eTp6MnJDAQMy8VCF1QKbWZmlkx4agHDexihqmYyCujTYHqDAhm1hV26EET54NQ==",
"requires": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/types": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
+ "@docusaurus/core": "2.2.0",
+ "@docusaurus/types": "2.2.0",
+ "@docusaurus/utils-validation": "2.2.0",
"tslib": "^2.4.0"
}
},
"@docusaurus/plugin-sitemap": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.1.0.tgz",
- "integrity": "sha512-2Y6Br8drlrZ/jN9MwMBl0aoi9GAjpfyfMBYpaQZXimbK+e9VjYnujXlvQ4SxtM60ASDgtHIAzfVFBkSR/MwRUw==",
- "requires": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/logger": "2.1.0",
- "@docusaurus/types": "2.1.0",
- "@docusaurus/utils": "2.1.0",
- "@docusaurus/utils-common": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.2.0.tgz",
+ "integrity": "sha512-0jAmyRDN/aI265CbWZNZuQpFqiZuo+5otk2MylU9iVrz/4J7gSc+ZJ9cy4EHrEsW7PV8s1w18hIEsmcA1YgkKg==",
+ "requires": {
+ "@docusaurus/core": "2.2.0",
+ "@docusaurus/logger": "2.2.0",
+ "@docusaurus/types": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
+ "@docusaurus/utils-common": "2.2.0",
+ "@docusaurus/utils-validation": "2.2.0",
"fs-extra": "^10.1.0",
"sitemap": "^7.1.1",
"tslib": "^2.4.0"
}
},
"@docusaurus/preset-classic": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.1.0.tgz",
- "integrity": "sha512-NQMnaq974K4BcSMXFSJBQ5itniw6RSyW+VT+6i90kGZzTwiuKZmsp0r9lC6BYAvvVMQUNJQwrETmlu7y2XKW7w==",
- "requires": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/plugin-content-blog": "2.1.0",
- "@docusaurus/plugin-content-docs": "2.1.0",
- "@docusaurus/plugin-content-pages": "2.1.0",
- "@docusaurus/plugin-debug": "2.1.0",
- "@docusaurus/plugin-google-analytics": "2.1.0",
- "@docusaurus/plugin-google-gtag": "2.1.0",
- "@docusaurus/plugin-sitemap": "2.1.0",
- "@docusaurus/theme-classic": "2.1.0",
- "@docusaurus/theme-common": "2.1.0",
- "@docusaurus/theme-search-algolia": "2.1.0",
- "@docusaurus/types": "2.1.0"
-<<<<<<< HEAD
-=======
- },
- "dependencies": {
- "@docusaurus/plugin-google-analytics": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.1.0.tgz",
- "integrity": "sha512-4cgeqIly/wcFVbbWP03y1QJJBgH8W+Bv6AVbWnsXNOZa1yB3AO6hf3ZdeQH9x20v9T2pREogVgAH0rSoVnNsgg==",
- "requires": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/types": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
- "tslib": "^2.4.0"
- }
- }
->>>>>>> origin/main
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.2.0.tgz",
+ "integrity": "sha512-yKIWPGNx7BT8v2wjFIWvYrS+nvN04W+UameSFf8lEiJk6pss0kL6SG2MRvyULiI3BDxH+tj6qe02ncpSPGwumg==",
+ "requires": {
+ "@docusaurus/core": "2.2.0",
+ "@docusaurus/plugin-content-blog": "2.2.0",
+ "@docusaurus/plugin-content-docs": "2.2.0",
+ "@docusaurus/plugin-content-pages": "2.2.0",
+ "@docusaurus/plugin-debug": "2.2.0",
+ "@docusaurus/plugin-google-analytics": "2.2.0",
+ "@docusaurus/plugin-google-gtag": "2.2.0",
+ "@docusaurus/plugin-sitemap": "2.2.0",
+ "@docusaurus/theme-classic": "2.2.0",
+ "@docusaurus/theme-common": "2.2.0",
+ "@docusaurus/theme-search-algolia": "2.2.0",
+ "@docusaurus/types": "2.2.0"
}
},
"@docusaurus/react-loadable": {
@@ -15120,22 +14647,22 @@
}
},
"@docusaurus/theme-classic": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.1.0.tgz",
- "integrity": "sha512-xn8ZfNMsf7gaSy9+ClFnUu71o7oKgMo5noYSS1hy3svNifRTkrBp6+MReLDsmIaj3mLf2e7+JCBYKBFbaGzQng==",
- "requires": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/mdx-loader": "2.1.0",
- "@docusaurus/module-type-aliases": "2.1.0",
- "@docusaurus/plugin-content-blog": "2.1.0",
- "@docusaurus/plugin-content-docs": "2.1.0",
- "@docusaurus/plugin-content-pages": "2.1.0",
- "@docusaurus/theme-common": "2.1.0",
- "@docusaurus/theme-translations": "2.1.0",
- "@docusaurus/types": "2.1.0",
- "@docusaurus/utils": "2.1.0",
- "@docusaurus/utils-common": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.2.0.tgz",
+ "integrity": "sha512-kjbg/qJPwZ6H1CU/i9d4l/LcFgnuzeiGgMQlt6yPqKo0SOJIBMPuz7Rnu3r/WWbZFPi//o8acclacOzmXdUUEg==",
+ "requires": {
+ "@docusaurus/core": "2.2.0",
+ "@docusaurus/mdx-loader": "2.2.0",
+ "@docusaurus/module-type-aliases": "2.2.0",
+ "@docusaurus/plugin-content-blog": "2.2.0",
+ "@docusaurus/plugin-content-docs": "2.2.0",
+ "@docusaurus/plugin-content-pages": "2.2.0",
+ "@docusaurus/theme-common": "2.2.0",
+ "@docusaurus/theme-translations": "2.2.0",
+ "@docusaurus/types": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
+ "@docusaurus/utils-common": "2.2.0",
+ "@docusaurus/utils-validation": "2.2.0",
"@mdx-js/react": "^1.6.22",
"clsx": "^1.2.1",
"copy-text-to-clipboard": "^3.0.1",
@@ -15152,16 +14679,16 @@
}
},
"@docusaurus/theme-common": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.1.0.tgz",
- "integrity": "sha512-vT1otpVPbKux90YpZUnvknsn5zvpLf+AW1W0EDcpE9up4cDrPqfsh0QoxGHFJnobE2/qftsBFC19BneN4BH8Ag==",
- "requires": {
- "@docusaurus/mdx-loader": "2.1.0",
- "@docusaurus/module-type-aliases": "2.1.0",
- "@docusaurus/plugin-content-blog": "2.1.0",
- "@docusaurus/plugin-content-docs": "2.1.0",
- "@docusaurus/plugin-content-pages": "2.1.0",
- "@docusaurus/utils": "2.1.0",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.2.0.tgz",
+ "integrity": "sha512-R8BnDjYoN90DCL75gP7qYQfSjyitXuP9TdzgsKDmSFPNyrdE3twtPNa2dIN+h+p/pr+PagfxwWbd6dn722A1Dw==",
+ "requires": {
+ "@docusaurus/mdx-loader": "2.2.0",
+ "@docusaurus/module-type-aliases": "2.2.0",
+ "@docusaurus/plugin-content-blog": "2.2.0",
+ "@docusaurus/plugin-content-docs": "2.2.0",
+ "@docusaurus/plugin-content-pages": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"@types/react-router-config": "*",
@@ -15173,18 +14700,18 @@
}
},
"@docusaurus/theme-search-algolia": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.1.0.tgz",
- "integrity": "sha512-rNBvi35VvENhucslEeVPOtbAzBdZY/9j55gdsweGV5bYoAXy4mHB6zTGjealcB4pJ6lJY4a5g75fXXMOlUqPfg==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.2.0.tgz",
+ "integrity": "sha512-2h38B0tqlxgR2FZ9LpAkGrpDWVdXZ7vltfmTdX+4RsDs3A7khiNsmZB+x/x6sA4+G2V2CvrsPMlsYBy5X+cY1w==",
"requires": {
"@docsearch/react": "^3.1.1",
- "@docusaurus/core": "2.1.0",
- "@docusaurus/logger": "2.1.0",
- "@docusaurus/plugin-content-docs": "2.1.0",
- "@docusaurus/theme-common": "2.1.0",
- "@docusaurus/theme-translations": "2.1.0",
- "@docusaurus/utils": "2.1.0",
- "@docusaurus/utils-validation": "2.1.0",
+ "@docusaurus/core": "2.2.0",
+ "@docusaurus/logger": "2.2.0",
+ "@docusaurus/plugin-content-docs": "2.2.0",
+ "@docusaurus/theme-common": "2.2.0",
+ "@docusaurus/theme-translations": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
+ "@docusaurus/utils-validation": "2.2.0",
"algoliasearch": "^4.13.1",
"algoliasearch-helper": "^3.10.0",
"clsx": "^1.2.1",
@@ -15196,18 +14723,18 @@
}
},
"@docusaurus/theme-translations": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.1.0.tgz",
- "integrity": "sha512-07n2akf2nqWvtJeMy3A+7oSGMuu5F673AovXVwY0aGAux1afzGCiqIFlYW3EP0CujvDJAEFSQi/Tetfh+95JNg==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.2.0.tgz",
+ "integrity": "sha512-3T140AG11OjJrtKlY4pMZ5BzbGRDjNs2co5hJ6uYJG1bVWlhcaFGqkaZ5lCgKflaNHD7UHBHU9Ec5f69jTdd6w==",
"requires": {
"fs-extra": "^10.1.0",
"tslib": "^2.4.0"
}
},
"@docusaurus/types": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.1.0.tgz",
- "integrity": "sha512-BS1ebpJZnGG6esKqsjtEC9U9qSaPylPwlO7cQ1GaIE7J/kMZI3FITnNn0otXXu7c7ZTqhb6+8dOrG6fZn6fqzQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.2.0.tgz",
+ "integrity": "sha512-b6xxyoexfbRNRI8gjblzVOnLr4peCJhGbYGPpJ3LFqpi5nsFfoK4mmDLvWdeah0B7gmJeXabN7nQkFoqeSdmOw==",
"requires": {
"@types/history": "^4.7.11",
"@types/react": "*",
@@ -15220,11 +14747,11 @@
}
},
"@docusaurus/utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.1.0.tgz",
- "integrity": "sha512-fPvrfmAuC54n8MjZuG4IysaMdmvN5A/qr7iFLbSGSyDrsbP4fnui6KdZZIa/YOLIPLec8vjZ8RIITJqF18mx4A==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.2.0.tgz",
+ "integrity": "sha512-oNk3cjvx7Tt1Lgh/aeZAmFpGV2pDr5nHKrBVx6hTkzGhrnMuQqLt6UPlQjdYQ3QHXwyF/ZtZMO1D5Pfi0lu7SA==",
"requires": {
- "@docusaurus/logger": "2.1.0",
+ "@docusaurus/logger": "2.2.0",
"@svgr/webpack": "^6.2.1",
"file-loader": "^6.2.0",
"fs-extra": "^10.1.0",
@@ -15242,20 +14769,20 @@
}
},
"@docusaurus/utils-common": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.1.0.tgz",
- "integrity": "sha512-F2vgmt4yRFgRQR2vyEFGTWeyAdmgKbtmu3sjHObF0tjjx/pN0Iw/c6eCopaH34E6tc9nO0nvp01pwW+/86d1fg==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.2.0.tgz",
+ "integrity": "sha512-qebnerHp+cyovdUseDQyYFvMW1n1nv61zGe5JJfoNQUnjKuApch3IVsz+/lZ9a38pId8kqehC1Ao2bW/s0ntDA==",
"requires": {
"tslib": "^2.4.0"
}
},
"@docusaurus/utils-validation": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.1.0.tgz",
- "integrity": "sha512-AMJzWYKL3b7FLltKtDXNLO9Y649V2BXvrnRdnW2AA+PpBnYV78zKLSCz135cuWwRj1ajNtP4onbXdlnyvCijGQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.2.0.tgz",
+ "integrity": "sha512-I1hcsG3yoCkasOL5qQAYAfnmVoLei7apugT6m4crQjmDGxq+UkiRrq55UqmDDyZlac/6ax/JC0p+usZ6W4nVyg==",
"requires": {
- "@docusaurus/logger": "2.1.0",
- "@docusaurus/utils": "2.1.0",
+ "@docusaurus/logger": "2.2.0",
+ "@docusaurus/utils": "2.2.0",
"joi": "^17.6.0",
"js-yaml": "^4.1.0",
"tslib": "^2.4.0"
@@ -16347,12 +15874,12 @@
"integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="
},
"autoprefixer": {
- "version": "10.4.12",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz",
- "integrity": "sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==",
+ "version": "10.4.13",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz",
+ "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==",
"requires": {
"browserslist": "^4.21.4",
- "caniuse-lite": "^1.0.30001407",
+ "caniuse-lite": "^1.0.30001426",
"fraction.js": "^4.2.0",
"normalize-range": "^0.1.2",
"picocolors": "^1.0.0",
@@ -16668,9 +16195,9 @@
}
},
"caniuse-lite": {
- "version": "1.0.30001419",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001419.tgz",
- "integrity": "sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw=="
+ "version": "1.0.30001429",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001429.tgz",
+ "integrity": "sha512-511ThLu1hF+5RRRt0zYCf2U2yRr9GPF6m5y90SBCWsvSoYoW7yAGlv/elyPaNfvGCkp6kj/KFZWU0BMA69Prsg=="
},
"ccount": {
"version": "1.1.0",
@@ -17221,12 +16748,12 @@
}
},
"cssnano-preset-advanced": {
- "version": "5.3.8",
- "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.8.tgz",
- "integrity": "sha512-xUlLLnEB1LjpEik+zgRNlk8Y/koBPPtONZjp7JKbXigeAmCrFvq9H0pXW5jJV45bQWAlmJ0sKy+IMr0XxLYQZg==",
+ "version": "5.3.9",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.9.tgz",
+ "integrity": "sha512-njnh4pp1xCsibJcEHnWZb4EEzni0ePMqPuPNyuWT4Z+YeXmsgqNuTPIljXFEXhxGsWs9183JkXgHxc1TcsahIg==",
"requires": {
- "autoprefixer": "^10.3.7",
- "cssnano-preset-default": "^5.2.12",
+ "autoprefixer": "^10.4.12",
+ "cssnano-preset-default": "^5.2.13",
"postcss-discard-unused": "^5.1.0",
"postcss-merge-idents": "^5.1.1",
"postcss-reduce-idents": "^5.2.0",
@@ -17234,24 +16761,24 @@
}
},
"cssnano-preset-default": {
- "version": "5.2.12",
- "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz",
- "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==",
+ "version": "5.2.13",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz",
+ "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==",
"requires": {
- "css-declaration-sorter": "^6.3.0",
+ "css-declaration-sorter": "^6.3.1",
"cssnano-utils": "^3.1.0",
"postcss-calc": "^8.2.3",
"postcss-colormin": "^5.3.0",
- "postcss-convert-values": "^5.1.2",
+ "postcss-convert-values": "^5.1.3",
"postcss-discard-comments": "^5.1.2",
"postcss-discard-duplicates": "^5.1.0",
"postcss-discard-empty": "^5.1.1",
"postcss-discard-overridden": "^5.1.0",
- "postcss-merge-longhand": "^5.1.6",
- "postcss-merge-rules": "^5.1.2",
+ "postcss-merge-longhand": "^5.1.7",
+ "postcss-merge-rules": "^5.1.3",
"postcss-minify-font-values": "^5.1.0",
"postcss-minify-gradients": "^5.1.1",
- "postcss-minify-params": "^5.1.3",
+ "postcss-minify-params": "^5.1.4",
"postcss-minify-selectors": "^5.2.1",
"postcss-normalize-charset": "^5.1.0",
"postcss-normalize-display-values": "^5.1.0",
@@ -17259,11 +16786,11 @@
"postcss-normalize-repeat-style": "^5.1.1",
"postcss-normalize-string": "^5.1.0",
"postcss-normalize-timing-functions": "^5.1.0",
- "postcss-normalize-unicode": "^5.1.0",
+ "postcss-normalize-unicode": "^5.1.1",
"postcss-normalize-url": "^5.1.0",
"postcss-normalize-whitespace": "^5.1.1",
"postcss-ordered-values": "^5.1.3",
- "postcss-reduce-initial": "^5.1.0",
+ "postcss-reduce-initial": "^5.1.1",
"postcss-reduce-transforms": "^5.1.0",
"postcss-svgo": "^5.1.0",
"postcss-unique-selectors": "^5.1.1"
@@ -18335,9 +17862,9 @@
}
},
"github-slugger": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz",
- "integrity": "sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ=="
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz",
+ "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw=="
},
"glob": {
"version": "7.2.3",
@@ -20044,11 +19571,11 @@
}
},
"postcss-convert-values": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz",
- "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz",
+ "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==",
"requires": {
- "browserslist": "^4.20.3",
+ "browserslist": "^4.21.4",
"postcss-value-parser": "^4.2.0"
}
},
@@ -20104,20 +19631,20 @@
}
},
"postcss-merge-longhand": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz",
- "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==",
+ "version": "5.1.7",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz",
+ "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==",
"requires": {
"postcss-value-parser": "^4.2.0",
- "stylehacks": "^5.1.0"
+ "stylehacks": "^5.1.1"
}
},
"postcss-merge-rules": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz",
- "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz",
+ "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==",
"requires": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"caniuse-api": "^3.0.0",
"cssnano-utils": "^3.1.0",
"postcss-selector-parser": "^6.0.5"
@@ -20142,11 +19669,11 @@
}
},
"postcss-minify-params": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz",
- "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==",
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz",
+ "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==",
"requires": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"cssnano-utils": "^3.1.0",
"postcss-value-parser": "^4.2.0"
}
@@ -20238,11 +19765,11 @@
}
},
"postcss-normalize-unicode": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz",
- "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz",
+ "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==",
"requires": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"postcss-value-parser": "^4.2.0"
}
},
@@ -20281,11 +19808,11 @@
}
},
"postcss-reduce-initial": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz",
- "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz",
+ "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==",
"requires": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"caniuse-api": "^3.0.0"
}
},
@@ -21739,11 +21266,11 @@
}
},
"stylehacks": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz",
- "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz",
+ "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==",
"requires": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"postcss-selector-parser": "^6.0.4"
}
},
@@ -22028,9 +21555,9 @@
"peer": true
},
"ua-parser-js": {
- "version": "0.7.31",
- "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz",
- "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ=="
+ "version": "0.7.32",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.32.tgz",
+ "integrity": "sha512-f9BESNVhzlhEFf2CHMSj40NWOjYPl1YKYbrvIr/hFTDEmLq7SRbWvm7FcdcpCYT95zrOhC7gZSxjdnnTpBcwVw=="
},
"unherit": {
"version": "1.1.3",
diff --git a/docs/package.json b/docs/package.json
index 24d52859c3b..9ffe0267878 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -14,8 +14,8 @@
"write-heading-ids": "docusaurus write-heading-ids"
},
"dependencies": {
- "@docusaurus/core": "2.1.0",
- "@docusaurus/preset-classic": "2.1.0",
+ "@docusaurus/core": "^2.2.0",
+ "@docusaurus/preset-classic": "^2.2.0",
"@mdx-js/react": "^1.6.22",
"clsx": "^1.2.1",
"prism-react-renderer": "^1.3.5",
@@ -24,7 +24,7 @@
"react-mailchimp-subscribe": "^2.1.3"
},
"devDependencies": {
- "@docusaurus/module-type-aliases": "2.1.0"
+ "@docusaurus/module-type-aliases": "^2.2.0"
},
"browserslist": {
"production": [
diff --git a/docs/static/docs/openfeature/concepts.jpg b/docs/static/docs/openfeature/concepts.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..47f564cb4ebf6127a0daafddfe9985860fdec9dc
GIT binary patch
literal 89608
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