diff --git a/.github/workflows/deploy-prd.yml b/.github/workflows/deploy-prd.yml
index 92d4930468..d70ddc8d18 100644
--- a/.github/workflows/deploy-prd.yml
+++ b/.github/workflows/deploy-prd.yml
@@ -22,6 +22,17 @@ jobs:
cache: "npm"
cache-dependency-path: "**/package-lock.json"
+ - name: Render Datasheets
+ run: cd ${GITHUB_WORKSPACE}/scripts/datasheet-rendering;./render-datasheets.sh
+
+ - name: Copy Static Files
+ run: |
+ mkdir -p static/resources/datasheets static/resources/schematics static/resources/pinouts
+ find ./content/hardware -type f -name "*-schematics.pdf" -exec cp {} ./static/resources/schematics/ \;
+ find ./content/hardware -type f -name "*-datasheet.pdf" -exec cp {} ./static/resources/datasheets/ \;
+ find ./content/hardware -type f -name "*-full-pinout.pdf" -exec cp {} ./static/resources/pinouts/ \;
+ find ./content/hardware -type f -name "*-pinout.png" -exec cp {} ./static/resources/pinouts/ \;
+
- name: Gatsby main cache
uses: actions/cache@v2
id: gatsby-cache-folder
@@ -41,8 +52,7 @@ jobs:
${{ runner.os }}-public-gatsby-
- run: npm install
-
- - run: GENERATE_DATASHEETS=true npm run build
+ - run: npm run build
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
diff --git a/.github/workflows/deploy-stg.yml b/.github/workflows/deploy-stg.yml
index e3823d3a0a..793c075381 100644
--- a/.github/workflows/deploy-stg.yml
+++ b/.github/workflows/deploy-stg.yml
@@ -20,6 +20,17 @@ jobs:
node-version: 14
cache: "npm"
cache-dependency-path: "**/package-lock.json"
+
+ - name: Render Datasheets
+ run: cd ${GITHUB_WORKSPACE}/scripts/datasheet-rendering;./render-datasheets.sh
+
+ - name: Copy Static Files
+ run: |
+ mkdir -p static/resources/datasheets static/resources/schematics static/resources/pinouts
+ find ./content/hardware -type f -name "*-schematics.pdf" -exec cp {} ./static/resources/schematics/ \;
+ find ./content/hardware -type f -name "*-datasheet.pdf" -exec cp {} ./static/resources/datasheets/ \;
+ find ./content/hardware -type f -name "*-full-pinout.pdf" -exec cp {} ./static/resources/pinouts/ \;
+ find ./content/hardware -type f -name "*-pinout.png" -exec cp {} ./static/resources/pinouts/ \;
- name: Gatsby main cache
uses: actions/cache@v2
@@ -40,8 +51,7 @@ jobs:
${{ runner.os }}-public-gatsby-
- run: npm install
-
- - run: GENERATE_DATASHEETS=true npm run build
+ - run: npm run build
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 0a0a48aa2b..3fbf407d02 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -87,7 +87,7 @@
"cwd": "${workspaceFolder}${pathSeparator}scripts${pathSeparator}validation"
},
"windows": {
- "command": "node .\\fix-issues.js -p ..\\..\\content\\hardware\\"
+ "command": "node .\\fix-issues.js -p '..\\..\\content\\hardware\\'"
},
"group": "none",
"presentation": {
@@ -97,14 +97,14 @@
"problemMatcher": []
},
{
- "label": "Generate all datasheets",
+ "label": "Render all datasheets",
"type": "shell",
- "command": "./generate-datasheets.sh",
+ "command": "./render-datasheets.sh",
"options": {
- "cwd": "${workspaceFolder}${pathSeparator}scripts${pathSeparator}datasheet-generator"
+ "cwd": "${workspaceFolder}${pathSeparator}scripts${pathSeparator}datasheet-rendering"
},
"windows": {
- "command": ".\\generate-datasheets.cmd"
+ "command": ".\\render-datasheets.cmd"
},
"group": "none",
"presentation": {
@@ -114,14 +114,14 @@
"problemMatcher": []
},
{
- "label": "Generate datasheet (current document)",
+ "label": "Render datasheet (current document)",
"type": "shell",
- "command": "./generate-datasheets.sh '../../${relativeFileDirname}'",
+ "command": "./render-datasheets.sh '../../${relativeFileDirname}'",
"options": {
- "cwd": "${workspaceFolder}${pathSeparator}scripts${pathSeparator}datasheet-generator"
+ "cwd": "${workspaceFolder}${pathSeparator}scripts${pathSeparator}datasheet-rendering"
},
"windows": {
- "command": ".\\generate-datasheets.cmd '..\\..\\${relativeFileDirname}'"
+ "command": ".\\render-datasheets.cmd '..\\..\\${relativeFileDirname}'"
},
"group": "none",
"presentation": {
@@ -138,7 +138,7 @@
"cwd": "${workspaceFolder}"
},
"windows": {
- "command": ".\\scripts\\spell-check.cmd"
+ "command": ".\\scripts\\spell-check.cmd"
},
"group": "none",
"presentation": {
@@ -163,6 +163,9 @@
"options": {
"cwd": "${workspaceFolder}"
},
+ "windows": {
+ "command": ".\\scripts\\spell-check-fix.cmd"
+ },
"group": "none",
"presentation": {
"reveal": "always",
diff --git a/README.md b/README.md
index 5b6f06b05b..8ea3e47c2f 100644
--- a/README.md
+++ b/README.md
@@ -83,7 +83,9 @@ symbolic link created for AnalogInput <<===>> ..\..\..\..\..\built-in-examples\0
### Including Code Snippets
Code snippets can be included by using the triple backticks syntax e.g. ` ```arduino` followed by the code and three closing backticks. The following syntaxes are supported:
+```
arduino, bash, markup, clike, c, cpp, css, css-extras, javascript, jsx, js-extras, coffeescript, diff, git, go, graphql, handlebars, json, less, makefile, markdown, objectivec, ocaml, python, reason, sass, scss, sql, stylus, tsx, typescript, wasm, yaml
+```
## Previewing Changes
diff --git a/content/arduino-cloud/01.getting-started/01.iot-cloud-getting-started/iot-cloud-getting-started.md b/content/arduino-cloud/01.getting-started/01.iot-cloud-getting-started/iot-cloud-getting-started.md
index bb52617c69..34f1ea834e 100644
--- a/content/arduino-cloud/01.getting-started/01.iot-cloud-getting-started/iot-cloud-getting-started.md
+++ b/content/arduino-cloud/01.getting-started/01.iot-cloud-getting-started/iot-cloud-getting-started.md
@@ -59,8 +59,11 @@ The following boards connect to the Arduino IoT Cloud via Wi-Fi.
- [Nano 33 IoT](https://store.arduino.cc/arduino-nano-33-iot)
- [Portenta H7](https://store.arduino.cc/portenta-h7)
- [Portenta H7 Lite Connected](https://store.arduino.cc/products/portenta-h7-lite-connected)
+- [Portenta Machine Control](https://store.arduino.cc/products/arduino-portenta-machine-control)
- [Nicla Vision](https://store.arduino.cc/products/nicla-vision)
+- [Opta](https://docs.arduino.cc/hardware/opta).\*
+\* The Opta is scheduled to be released soon, along with documentation how to use it. Read more at the [Opta communications page](https://store.arduino.cc/pages/opta).
Connection via Wi-Fi is an easy alternative, and your credentials can safely be entered during the configuration of a project. This type of connection is most suitable for low-range projects, where you connect your board to the cloud via your home/work/school router.
@@ -98,9 +101,13 @@ The Arduino IoT Cloud supports a wide range of third party boards based on the E
### Ethernet
-The Arduino IoT Cloud supports connection via Ethernet on a number of devices.
+The Arduino IoT Cloud supports connection via Ethernet on a number of devices. The options to connect via Ethernet are the following:
+- Connect with the [Portenta H7](https://store.arduino.cc/products/portenta-h7) in combination with an Ethernet compatible carrier/shield (see below).
+- Connect with the [Opta](https://docs.arduino.cc/hardware/opta).\*
-To connect via Ethernet, you need a [Portenta H7](https://store.arduino.cc/products/portenta-h7) board, in combination with one of the following shields/carriers:
+\* The Opta is scheduled to be released soon, along with documentation how to use it. Read more at the [Opta communications page](https://store.arduino.cc/pages/opta).
+
+To connect with the **Portenta H7** board, you will need one of the following shields/carriers:
- [Portenta Vision Shield Ethernet](https://store.arduino.cc/products/arduino-portenta-vision-shield-ethernet)
- [Portenta Machine Control](https://store.arduino.cc/portenta-machine-control)
diff --git a/content/arduino-cloud/01.getting-started/02.technical-reference/iot-cloud-tech-ref.md b/content/arduino-cloud/01.getting-started/02.technical-reference/iot-cloud-tech-ref.md
index 40f4de9fa9..f07d91a0f7 100644
--- a/content/arduino-cloud/01.getting-started/02.technical-reference/iot-cloud-tech-ref.md
+++ b/content/arduino-cloud/01.getting-started/02.technical-reference/iot-cloud-tech-ref.md
@@ -358,7 +358,7 @@ We provide two Arduino Iot Cloud APIs:
The Arduino IoT Cloud REST API can be called just with any **HTTP Client**, or using one of these clients:
- [Javascript NPM package](https://www.npmjs.com/package/@arduino/arduino-iot-client).
- - [Python PYPI Package](https://pypi.org/project/arduino-iot-client/).
+ - [Python® PYPI Package](https://pypi.org/project/arduino-iot-client/).
- [Golang Module](https://github.com/arduino/iot-client-go).
**2.** The second is the **Data API (MQTT)** which allows you to send/receive Variables' data. An example of this API's use is sending IoT Cloud Variables' updates to the browser. A full [documentation of the Arduino IoT Cloud Data API (MQTT)](https://www.npmjs.com/package/arduino-iot-js) is available for advanced users.
diff --git a/content/arduino-cloud/01.getting-started/06.cloud-variables/cloud-variables.md b/content/arduino-cloud/01.getting-started/06.cloud-variables/cloud-variables.md
index 63a72e5cc3..8ea4488837 100644
--- a/content/arduino-cloud/01.getting-started/06.cloud-variables/cloud-variables.md
+++ b/content/arduino-cloud/01.getting-started/06.cloud-variables/cloud-variables.md
@@ -491,6 +491,24 @@ void onTvChange() {
```
+## Alexa Variables
+
+The integration between Alexa & Arduino IoT Cloud supports a limited amount of variables, see the list below:
+
+- [Colored Light](#coloredlight) - `bool` and `float` (complex type).
+- [Dimmed Light](#dimmedlight) - `bool` and `float` (complex type).
+- [Television](#television) - `bool` and `int` (complex type)
+- [Contact Sensor](#specialized-types) - `bool`
+- [Light](#specialized-types) - `bool`
+- [Motion Sensor](#specialized-types) - `bool`
+- [Smart Plug](#specialized-types) - `bool`
+- [Switch](#specialized-types) - `bool`
+- [Temperature Sensor](#specialized-types) - `float`
+
+Other variables used will not appear in the Amazon Alexa app.
+
+***To synchronize your Arduino Cloud with the Amazon Alexa service, you can check out the [Arduino Cloud Alexa Tutorial](/arduino-cloud/tutorials/alexa-mkr-rgb-shield).***
+
## Summary
In this article, we have covered how to use variables in the Arduino IoT Cloud, and what variables are available.
diff --git a/content/arduino-cloud/01.getting-started/08.arduino-iot-api/arduino-iot-api.md b/content/arduino-cloud/01.getting-started/08.arduino-iot-api/arduino-iot-api.md
index 6126ea242e..954c80a9eb 100644
--- a/content/arduino-cloud/01.getting-started/08.arduino-iot-api/arduino-iot-api.md
+++ b/content/arduino-cloud/01.getting-started/08.arduino-iot-api/arduino-iot-api.md
@@ -1,17 +1,17 @@
---
title: 'Arduino Cloud REST API & SDK'
difficulty: advanced
-description: 'Learn how to authenticate with the Arduino IoT Cloud REST API to make requests using HTTP Client, JavaScript and Python.'
+description: 'Learn how to authenticate with the Arduino IoT Cloud REST API to make requests using HTTP Client, JavaScript and Python®.'
tags:
- IoT Cloud REST API
- JavaScript
- - Python
+ - Python®
- node.js
- Golang
author: 'Karl Söderby'
---
-The [Arduino IoT Cloud REST API](https://www.arduino.cc/reference/en/iot/api/) can be accessed through a set of endpoints to manage **Devices, Things, Properties** and more. It can be accessed via any HTTP client, and is supported by JavaScript, Python and Golang clients.
+The [Arduino IoT Cloud REST API](https://www.arduino.cc/reference/en/iot/api/) can be accessed through a set of endpoints to manage **Devices, Things, Properties** and more. It can be accessed via any HTTP client, and is supported by JavaScript, Python® and Golang clients.
In this article you will find some useful examples to get started with the Arduino IoT Cloud API, and an understanding of what the API offers.
@@ -25,14 +25,14 @@ To see the full API, follow the link below:
To connect with the Arduino Cloud API, we will need one of the following clients:
- [Javascript NPM package](https://www.npmjs.com/package/@arduino/arduino-iot-client)
-- [Python PYPI Package](https://pypi.org/project/arduino-iot-client/)
+- [Python® PYPI Package](https://pypi.org/project/arduino-iot-client/)
- [Golang Module](https://github.com/arduino/iot-client-go)
***You can also use services such as [Postman](https://www.postman.com/) to create HTTP requests.***
## Usage
-With the Arduino Cloud API, you are able to interface with the Arduino Cloud service through JavaScript, Python and Golang.
+With the Arduino Cloud API, you are able to interface with the Arduino Cloud service through JavaScript, Python® and Golang.
You can for example write custom scripts that can:
@@ -203,12 +203,12 @@ console.log(data[0].last_value);
This is one of many examples of how to interact with the API. Now that you are setup, you can go on to explore the rest of the [Arduino IoT Cloud API](https://www.arduino.cc/reference/en/iot/api/).
-## Python
+## Python®
**Requirements:**
-- [Python 3.7+](https://www.python.org/downloads/)
-- [arduino-iot-client](https://pypi.org/project/arduino-iot-client/) (python)
+- [Python® 3.7+](https://www.python.org/downloads/)
+- [arduino-iot-client](https://pypi.org/project/arduino-iot-client/) (Python®)
To install, use the following command:
@@ -395,5 +395,5 @@ See the full example on [GitHub](https://github.com/arduino/iot-client-go/tree/m
## Summary
-This document covers the overall usage of the [Arduino IoT Cloud API](https://www.arduino.cc/reference/en/iot/api/), and how to use it with different clients (JavaScript, Python, Golang).
+This document covers the overall usage of the [Arduino IoT Cloud API](https://www.arduino.cc/reference/en/iot/api/), and how to use it with different clients (JavaScript, Python®, Golang).
diff --git a/content/arduino-cloud/02.features/04.ota-getting-started/ota-getting-started.md b/content/arduino-cloud/02.features/04.ota-getting-started/ota-getting-started.md
index e5cd0853d3..cc2ad59c1b 100644
--- a/content/arduino-cloud/02.features/04.ota-getting-started/ota-getting-started.md
+++ b/content/arduino-cloud/02.features/04.ota-getting-started/ota-getting-started.md
@@ -28,6 +28,8 @@ Below is a list of all boards that supports OTA through the Arduino Cloud.
- [Arduino Nano 33 IoT](https://store.arduino.cc/arduino-nano-33-iot)
- [Arduino Nano RP2040 Connect](https://store.arduino.cc/nano-rp2040-connect-with-headers)
- [Portenta H7](https://store.arduino.cc/portenta-h7)
+- [Portenta Machine Control](https://store.arduino.cc/products/arduino-portenta-machine-control)
+- [Nicla Vision](https://store.arduino.cc/products/nicla-vision)
## How does it work
diff --git a/content/arduino-cloud/03.tutorials/alexa-mkr-rgb-shield/alexa-mkr-rgb-shield.md b/content/arduino-cloud/03.tutorials/alexa-mkr-rgb-shield/alexa-mkr-rgb-shield.md
index 4e27726655..e5e015eb2e 100644
--- a/content/arduino-cloud/03.tutorials/alexa-mkr-rgb-shield/alexa-mkr-rgb-shield.md
+++ b/content/arduino-cloud/03.tutorials/alexa-mkr-rgb-shield/alexa-mkr-rgb-shield.md
@@ -1,5 +1,5 @@
---
-title: 'Arduino IoT Cloud, MKR RGB Shield and Alexa integration'
+title: 'Alexa & Arduino IoT Cloud Integration'
compatible-products: [mkr-wifi-1010, mkr-rgb-shield]
difficulty: intermediate
description: 'Learn how to build a smart lamp by integrating the Arduino IoT Cloud and Alexa.'
@@ -12,7 +12,15 @@ featuredImage: 'cloud'
## Introduction
-In this tutorial, we will find out how to create a smart colored light with the help of Arduino IoT Cloud and the Alexa app. We will set it up so that we can control the brightness and color of the pixels onboard the [MKR RGB Shield](https://store.arduino.cc/arduino-mkr-rgb-shield).
+
+
+In this tutorial you will learn how to integrate the [Arduino IoT Cloud](https://create.arduino.cc/iot/) with the [Amazon Alexa skill](https://www.amazon.com/Arduino-LLC/dp/B07ZT2PK2H). At the end of this tutorial, we will be able to change the color of an RGB matrix, using only voice commands in the Alexa app.
+
+This tutorial focuses on using the [MKR RGB Shield](https://store.arduino.cc/products/arduino-mkr-rgb-shield) but can easily be modified to use other matrices.
+
+***While this tutorial focuses on creating a smart lamp, it also shows the steps needed to integrate the two services, so you can essentially follow this tutorial to create other cool projects!***
+
+***You can also find all variables that can be synchronized between Arduino Cloud and Alexa in the [IoT Cloud Variables guide](/arduino-cloud/tutorials/alexa-mkr-rgb-shield#alexa-variables).***
## Goals
diff --git a/content/built-in-examples/01.basics/ReadAnalogVoltage/ReadAnalogVoltage.md b/content/built-in-examples/01.basics/ReadAnalogVoltage/ReadAnalogVoltage.md
index ae451879e2..293b4d1ab1 100644
--- a/content/built-in-examples/01.basics/ReadAnalogVoltage/ReadAnalogVoltage.md
+++ b/content/built-in-examples/01.basics/ReadAnalogVoltage/ReadAnalogVoltage.md
@@ -36,7 +36,7 @@ The microcontroller of the board has a circuit inside called an *analog-to-digit
### Code
-In the program below, the very first thing that you do will in the setup function is to begin serial communications, at 9600 bits of data per second, between your board and your computer with the line:
+In the program below, the very first thing you'll do will be in the setup function, to begin serial communication at 9600 bits of data per second, between your board and your computer with the line:
`Serial.begin(9600);`
@@ -48,7 +48,7 @@ To change the values from 0-1023 to a range that corresponds to the voltage the
`float voltage= sensorValue * (5.0 / 1023.0);`
-Finally, you need to print this information to your serial window as. You can do this with the command [Serial.println](https://www.arduino.cc/en/Serial/Println)() in your last line of code:
+Finally, you need to print this information to your serial monitor. You can do this with the command [Serial.println](https://www.arduino.cc/en/Serial/Println)() in your last line of code:
`Serial.println(voltage)`
@@ -62,4 +62,4 @@ You can find more basic tutorials in the [built-in examples](/built-in-examples)
You can also explore the [language reference](https://www.arduino.cc/reference/en/), a detailed collection of the Arduino programming language.
-*Last revision 2015/07/29 by SM*
\ No newline at end of file
+*Last revision Nov. 20, 2022 by Killaship*
diff --git a/content/built-in-examples/03.analog/AnalogInOutSerial/assets/circuit.png b/content/built-in-examples/03.analog/AnalogInOutSerial/assets/circuit.png
index d2f5354f66..a379782851 100644
Binary files a/content/built-in-examples/03.analog/AnalogInOutSerial/assets/circuit.png and b/content/built-in-examples/03.analog/AnalogInOutSerial/assets/circuit.png differ
diff --git a/content/built-in-examples/03.analog/AnalogInput/assets/circuit-pot.png b/content/built-in-examples/03.analog/AnalogInput/assets/circuit-pot.png
index 79465a8e34..604206cfab 100644
Binary files a/content/built-in-examples/03.analog/AnalogInput/assets/circuit-pot.png and b/content/built-in-examples/03.analog/AnalogInput/assets/circuit-pot.png differ
diff --git a/content/built-in-examples/04.communication/ReadASCIIString/assets/circuit.png b/content/built-in-examples/04.communication/ReadASCIIString/assets/circuit.png
index 2fd1ae2255..79c210053a 100644
Binary files a/content/built-in-examples/04.communication/ReadASCIIString/assets/circuit.png and b/content/built-in-examples/04.communication/ReadASCIIString/assets/circuit.png differ
diff --git a/content/hardware/01.mkr/01.boards/mkr-1000-wifi/downloads/schematics.pdf b/content/hardware/01.mkr/01.boards/mkr-1000-wifi/downloads/ABX00004-schematics.pdf
similarity index 100%
rename from content/hardware/01.mkr/01.boards/mkr-1000-wifi/downloads/schematics.pdf
rename to content/hardware/01.mkr/01.boards/mkr-1000-wifi/downloads/ABX00004-schematics.pdf
diff --git a/content/hardware/01.mkr/01.boards/mkr-fox-1200/downloads/schematics.pdf b/content/hardware/01.mkr/01.boards/mkr-fox-1200/downloads/ABX00014-schematics.pdf
similarity index 100%
rename from content/hardware/01.mkr/01.boards/mkr-fox-1200/downloads/schematics.pdf
rename to content/hardware/01.mkr/01.boards/mkr-fox-1200/downloads/ABX00014-schematics.pdf
diff --git a/content/hardware/01.mkr/01.boards/mkr-gsm-1400/downloads/schematics.pdf b/content/hardware/01.mkr/01.boards/mkr-gsm-1400/downloads/ABX00018-schematics.pdf
similarity index 100%
rename from content/hardware/01.mkr/01.boards/mkr-gsm-1400/downloads/schematics.pdf
rename to content/hardware/01.mkr/01.boards/mkr-gsm-1400/downloads/ABX00018-schematics.pdf
diff --git a/content/hardware/01.mkr/01.boards/mkr-nb-1500/downloads/schematics.pdf b/content/hardware/01.mkr/01.boards/mkr-nb-1500/downloads/ABX00019-schematics.pdf
similarity index 100%
rename from content/hardware/01.mkr/01.boards/mkr-nb-1500/downloads/schematics.pdf
rename to content/hardware/01.mkr/01.boards/mkr-nb-1500/downloads/ABX00019-schematics.pdf
diff --git a/content/hardware/02.hero/boards/mega-2560/datasheet/datasheet.md b/content/hardware/02.hero/boards/mega-2560/datasheet/datasheet.md
index 4b7a98c0c7..79d055202b 100644
--- a/content/hardware/02.hero/boards/mega-2560/datasheet/datasheet.md
+++ b/content/hardware/02.hero/boards/mega-2560/datasheet/datasheet.md
@@ -129,9 +129,6 @@ Sample sketches for the Arduino® MEGA 2560 can be found either in the “Exampl
### Online Resources
Now that you have gone through the basics of what you can do with the board you can explore the endless possibilities it provides by checking exciting projects on ProjectHub **[5]**, the Arduino® Library Reference **[6]** and the online store **[7]** where you will be able to complement your board with sensors, actuators and more.
-### Board Recovery
-All Arduino boards have a built-in bootloader which allows flashing the board via USB. In case a sketch locks up the processor and the board is not reachable anymore via USB it is possible to enter bootloader mode by double-tapping the reset button right after power up.
-
## Connector Pinouts

diff --git a/content/hardware/02.hero/boards/uno-mini-le/datasheet/datasheet.md b/content/hardware/02.hero/boards/uno-mini-le/datasheet/datasheet.md
index 8257f8ec19..a8a91af6cc 100644
--- a/content/hardware/02.hero/boards/uno-mini-le/datasheet/datasheet.md
+++ b/content/hardware/02.hero/boards/uno-mini-le/datasheet/datasheet.md
@@ -153,9 +153,6 @@ Sample sketches for the Arduino UNO Mini can be found either in the “Examples
### Online Resources
Now that you have gone through the basics of what you can do with the board you can explore the endless possibilities it provides by checking exciting projects on ProjectHub **[5]**, the Arduino Library Reference **[6]** and the online store **[7]** where you will be able to complement your board with sensors, actuators and more
-### Board Recovery
-All Arduino boards have a built-in bootloader which allows flashing the board via USB. In case a sketch locks up the processor and the board is not reachable anymore via USB it is possible to enter bootloader mode by double-tapping the reset button right after power up.
-
## Connector Pinouts
diff --git a/content/hardware/02.hero/boards/uno-rev3/datasheet/datasheet.md b/content/hardware/02.hero/boards/uno-rev3/datasheet/datasheet.md
index c8fd4f1acd..ecd002579b 100644
--- a/content/hardware/02.hero/boards/uno-rev3/datasheet/datasheet.md
+++ b/content/hardware/02.hero/boards/uno-rev3/datasheet/datasheet.md
@@ -126,9 +126,6 @@ Sample sketches for the Arduino XXX can be found either in the “Examples” me
### Online Resources
Now that you have gone through the basics of what you can do with the board you can explore the endless possibilities it provides by checking exciting projects on ProjectHub **[5]**, the Arduino Library Reference **[6]** and the online store **[7]** where you will be able to complement your board with sensors, actuators and more
-### Board Recovery
-All Arduino boards have a built-in bootloader which allows flashing the board via USB. In case a sketch locks up the processor and the board is not reachable anymore via USB it is possible to enter bootloader mode by double-tapping the reset button right after power up.
-
## Connector Pinouts

diff --git a/content/hardware/03.nano/boards/nano-33-ble-sense/downloads/schematics.pdf b/content/hardware/03.nano/boards/nano-33-ble-sense/downloads/ABX00031-schematics.pdf
similarity index 100%
rename from content/hardware/03.nano/boards/nano-33-ble-sense/downloads/schematics.pdf
rename to content/hardware/03.nano/boards/nano-33-ble-sense/downloads/ABX00031-schematics.pdf
diff --git a/content/hardware/03.nano/boards/nano-33-ble-sense/features.md b/content/hardware/03.nano/boards/nano-33-ble-sense/features.md
index 8564669af3..85424420b3 100644
--- a/content/hardware/03.nano/boards/nano-33-ble-sense/features.md
+++ b/content/hardware/03.nano/boards/nano-33-ble-sense/features.md
@@ -21,9 +21,9 @@ The Arduino Nano 33 BLE Sense is a great choice for any beginner, maker or profe
-
+
- This board can be programmed with the Python programming language via the OpenMV IDE.
+ This board can be programmed with the Python® programming language via the OpenMV IDE.
diff --git a/content/hardware/03.nano/boards/nano-33-ble-sense/tutorials/ble-sense-python-api/ble-sense-python-api.md b/content/hardware/03.nano/boards/nano-33-ble-sense/tutorials/ble-sense-python-api/ble-sense-python-api.md
index b4acd97d8c..99688f22e4 100644
--- a/content/hardware/03.nano/boards/nano-33-ble-sense/tutorials/ble-sense-python-api/ble-sense-python-api.md
+++ b/content/hardware/03.nano/boards/nano-33-ble-sense/tutorials/ble-sense-python-api/ble-sense-python-api.md
@@ -1,7 +1,7 @@
---
author: 'Karl Söderby'
-title: 'Nano 33 BLE Sense Python Guide'
-description: 'Discover how to access the features on the Nano 33 BLE Sense using Python scripts.'
+title: 'Nano 33 BLE Sense Python® Guide'
+description: 'Discover how to access the features on the Nano 33 BLE Sense using Python® scripts.'
compatible-products: [nano-33-ble-sense]
tags:
- MicroPython
@@ -10,9 +10,9 @@ tags:

-The [Nano 33 BLE Sense board](https://store.arduino.cc/arduino-nano-33-ble-sense) board can be programmed using the popular **Python** programming language. More specifically, it supports [OpenMV's fork of MicroPython](https://github.com/openmv/micropython), where MicroPython is an implementation of the Python language, designed to run on microcontrollers. In this article, you will find a lot of sample scripts that will work directly with your Nano 33 BLE Sense, such as general GPIO control, reading onboard sensors and Wi-Fi/BLE communication!
+The [Nano 33 BLE Sense board](https://store.arduino.cc/arduino-nano-33-ble-sense) board can be programmed using the popular **Python®** programming language. More specifically, it supports [OpenMV's fork of MicroPython](https://github.com/openmv/micropython), where MicroPython is an implementation of the Python® language, designed to run on microcontrollers. In this article, you will find a lot of sample scripts that will work directly with your Nano 33 BLE Sense, such as general GPIO control, reading onboard sensors and Wi-Fi/BLE communication!
-- If you want to read more about Arduino & Python, you can visit the [Python with Arduino](/learn/programming/arduino-and-python) article. Here you will find a lot of useful examples, such as how to use delays, interrupts, reading pins and more general functions.
+- If you want to read more about Arduino & Python®, you can visit the [Python® with Arduino](/learn/programming/arduino-and-python) article. Here you will find a lot of useful examples, such as how to use delays, interrupts, reading pins and more general functions.
## Hardware & Software Needed
@@ -25,7 +25,7 @@ The [Nano 33 BLE Sense board](https://store.arduino.cc/arduino-nano-33-ble-sense
Below you will find a lot of useful examples that can be loaded to your Nano 33 BLE Sense board. Many of these examples were extracted from the [OpenMV repository](https://github.com/openmv/openmv), where you can find many useful examples for other boards as well.
-***In this article, you will only find examples for the Nano 33 BLE Sense board. For more information on how to use delays, read and write to pins, please refer to the [Python with Arduino](/learn/programming/arduino-and-python) main article.***
+***In this article, you will only find examples for the Nano 33 BLE Sense board. For more information on how to use delays, read and write to pins, please refer to the [Python® with Arduino](/learn/programming/arduino-and-python) main article.***
## Pin Control
@@ -415,4 +415,4 @@ while (True):
## Summary
-In this article we have gone through a selection of scripts that will help you control your Nano BLE Sense board, via the OpenMV IDE. Feel free to check out our [Python with Arduino boards article](/learn/programming/arduino-and-python), where you can find guides to other boards, useful links to learn Python and more.
+In this article we have gone through a selection of scripts that will help you control your Nano BLE Sense board, via the OpenMV IDE. Feel free to check out our [Python® with Arduino boards article](/learn/programming/arduino-and-python), where you can find guides to other boards, useful links to learn Python® and more.
diff --git a/content/hardware/03.nano/boards/nano-33-ble-sense/tutorials/get-started-with-machine-learning/get-started-with-machine-learning.md b/content/hardware/03.nano/boards/nano-33-ble-sense/tutorials/get-started-with-machine-learning/get-started-with-machine-learning.md
index d65c714bf7..59af1282a1 100644
--- a/content/hardware/03.nano/boards/nano-33-ble-sense/tutorials/get-started-with-machine-learning/get-started-with-machine-learning.md
+++ b/content/hardware/03.nano/boards/nano-33-ble-sense/tutorials/get-started-with-machine-learning/get-started-with-machine-learning.md
@@ -289,7 +289,7 @@ We’re going to use [Google Colab](https://colab.research.google.com/) to train

-- Set up Python environment
+- Set up Python® environment
- Upload the punch.csv and flex.csv data
- Parse and prepare the data
- Build and train the model
diff --git a/content/hardware/03.nano/boards/nano-33-ble/downloads/schematics.pdf b/content/hardware/03.nano/boards/nano-33-ble/downloads/ABX00030-schematics.pdf
similarity index 100%
rename from content/hardware/03.nano/boards/nano-33-ble/downloads/schematics.pdf
rename to content/hardware/03.nano/boards/nano-33-ble/downloads/ABX00030-schematics.pdf
diff --git a/content/hardware/03.nano/boards/nano-33-ble/features.md b/content/hardware/03.nano/boards/nano-33-ble/features.md
index 933a498b72..245e235055 100644
--- a/content/hardware/03.nano/boards/nano-33-ble/features.md
+++ b/content/hardware/03.nano/boards/nano-33-ble/features.md
@@ -26,9 +26,9 @@ The Arduino Nano 33 BLE is a great choice for any beginner, maker or professiona
-
+
- This board can be programmed with the Python programming language via the OpenMV IDE.
+ This board can be programmed with the Python® programming language via the OpenMV IDE.
diff --git a/content/hardware/03.nano/boards/nano-33-ble/tutorials/ble-python-api/ble-python-api.md b/content/hardware/03.nano/boards/nano-33-ble/tutorials/ble-python-api/ble-python-api.md
index c85d39cab9..2b1c9cd3cb 100644
--- a/content/hardware/03.nano/boards/nano-33-ble/tutorials/ble-python-api/ble-python-api.md
+++ b/content/hardware/03.nano/boards/nano-33-ble/tutorials/ble-python-api/ble-python-api.md
@@ -1,7 +1,7 @@
---
author: 'Karl Söderby'
-title: 'Nano 33 BLE Python Guide'
-description: 'Discover how to access the features on the Nano 33 BLE using Python scripts.'
+title: 'Nano 33 BLE Python® Guide'
+description: 'Discover how to access the features on the Nano 33 BLE using Python® scripts.'
compatible-products: [nano-33-ble]
tags:
- MicroPython
@@ -11,11 +11,11 @@ featuredImage: 'board'

-The [Nano 33 BLE](https://store.arduino.cc/arduino-nano-33-ble-sense) board can be programmed using the popular **Python** programming language. More specifically, it supports [OpenMV's fork of MicroPython](https://github.com/openmv/micropython), where MicroPython is an implementation of the Python language, designed to run on microcontrollers. In this article, you will find a lot of sample scripts that will work directly with your Nano 33 BLE, such as general GPIO control, reading data from the IMU module and testing Bluetooth® Low Energy connection.
+The [Nano 33 BLE](https://store.arduino.cc/arduino-nano-33-ble-sense) board can be programmed using the popular **Python®** programming language. More specifically, it supports [OpenMV's fork of MicroPython](https://github.com/openmv/micropython), where MicroPython is an implementation of the Python® language, designed to run on microcontrollers. In this article, you will find a lot of sample scripts that will work directly with your Nano 33 BLE, such as general GPIO control, reading data from the IMU module and testing Bluetooth® Low Energy connection.
-- If you want to read more about Arduino & Python, you can visit the [Python with Arduino](/learn/programming/arduino-and-python) article. Here you will find a lot of useful examples, such as how to use delays, interrupts, reading pins and more general functions.
+- If you want to read more about Arduino & Python®, you can visit the [Python® with Arduino](/learn/programming/arduino-and-python) article. Here you will find a lot of useful examples, such as how to use delays, interrupts, reading pins and more general functions.
-***If you are looking for information related to the similar Nano 33 BLE Sense board, you can refer to the [Nano 33 BLE Sense Python Guide](/tutorials/nano-33-ble-sense/ble-sense-python-api).***
+***If you are looking for information related to the similar Nano 33 BLE Sense board, you can refer to the [Nano 33 BLE Sense Python® Guide](/tutorials/nano-33-ble-sense/ble-sense-python-api).***
## Hardware & Software Needed
@@ -28,7 +28,7 @@ The [Nano 33 BLE](https://store.arduino.cc/arduino-nano-33-ble-sense) board can
Below you will find a lot of useful examples that can be loaded to your Nano 33 BLE board. Many of these examples were extracted from the [OpenMV repository](https://github.com/openmv/openmv), where you can find many useful examples for other boards as well.
-***In this article, you will only find examples for the Nano 33 BLE board. For more information on how to use delays, read and write to pins, please refer to the [Python with Arduino](/learn/programming/arduino-and-python) main article.***
+***In this article, you will only find examples for the Nano 33 BLE board. For more information on how to use delays, read and write to pins, please refer to the [Python® with Arduino](/learn/programming/arduino-and-python) main article.***
## Pin Control
@@ -265,4 +265,4 @@ while (True):
## Summary
-In this article we have gone through a selection of scripts that will help you control your Nano BLE board, via the OpenMV IDE. Feel free to check out our [Python with Arduino boards article](/learn/programming/arduino-and-python), where you can find guides to other boards, useful links to learn Python and more.
+In this article we have gone through a selection of scripts that will help you control your Nano BLE board, via the OpenMV IDE. Feel free to check out our [Python® with Arduino boards article](/learn/programming/arduino-and-python), where you can find guides to other boards, useful links to learn Python® and more.
diff --git a/content/hardware/03.nano/boards/nano-every/datasheet/datasheet.md b/content/hardware/03.nano/boards/nano-every/datasheet/datasheet.md
index 46c28082e6..fadc947311 100644
--- a/content/hardware/03.nano/boards/nano-every/datasheet/datasheet.md
+++ b/content/hardware/03.nano/boards/nano-every/datasheet/datasheet.md
@@ -138,9 +138,6 @@ All Arduino IoT enabled products are supported on Arduino IoT Cloud which allows
### Online Resources
Now that you have gone through the basics of what you can do with the board you can explore the endless possibilities it provides by checking exciting projects on ProjectHub **[13]**, the Arduino Library Reference **[14]** and the on line store **[15]** where you will be able to complement your board with sensors, actuators and more.
-### Board Recovery
-All Arduino boards have a built-in bootloader which allows flashing the board via USB. In case a sketch locks up the processor and the board is not reachable anymore via USB it is possible to enter bootloader mode by double-tapping the reset button right after power up.
-
## Connector Pinouts

diff --git a/content/hardware/03.nano/boards/nano-rp2040-connect/essentials.md b/content/hardware/03.nano/boards/nano-rp2040-connect/essentials.md
index 2d54176f2e..73786343ae 100644
--- a/content/hardware/03.nano/boards/nano-rp2040-connect/essentials.md
+++ b/content/hardware/03.nano/boards/nano-rp2040-connect/essentials.md
@@ -5,7 +5,7 @@
Learn about the Nano RP2040 Connect's onboard sensors, supported serial & wireless protocols, pins and much more.
-
+
Learn how to install MicroPython and how to load scripts to your Nano RP2040 Connect.
diff --git a/content/hardware/03.nano/boards/nano-rp2040-connect/features.md b/content/hardware/03.nano/boards/nano-rp2040-connect/features.md
index b6350fb020..f6fb24340d 100644
--- a/content/hardware/03.nano/boards/nano-rp2040-connect/features.md
+++ b/content/hardware/03.nano/boards/nano-rp2040-connect/features.md
@@ -13,9 +13,9 @@ The feature packed **Arduino Nano RP2040 Connect** brings the new **Raspberry Pi
-
+
- This board can be programmed with the Python programming language via the OpenMV IDE.
+ This board can be programmed with the Python® programming language via the OpenMV IDE.
diff --git a/content/hardware/03.nano/boards/nano-rp2040-connect/tutorials/rp2040-data-logger/rp2040-data-logger.md b/content/hardware/03.nano/boards/nano-rp2040-connect/tutorials/rp2040-data-logger/rp2040-data-logger.md
index 8c8e03d184..4f9c14b0d9 100644
--- a/content/hardware/03.nano/boards/nano-rp2040-connect/tutorials/rp2040-data-logger/rp2040-data-logger.md
+++ b/content/hardware/03.nano/boards/nano-rp2040-connect/tutorials/rp2040-data-logger/rp2040-data-logger.md
@@ -21,7 +21,7 @@ In order to utilize this feature, we need to install the latest release of [Open
This tutorial can be completed with only the Nano RP2040 Connect board and open-source software.
-***If you are unfamiliar with Arduino & Python, you can learn more by reading the [Python with Arduino](/learn/programming/arduino-and-python) and the [Nano RP2040 Connect Python API Guide](/tutorials/nano-rp2040-connect/rp2040-python-api) articles.***
+***If you are unfamiliar with Arduino & Python®, you can learn more by reading the [Python® with Arduino](/learn/programming/arduino-and-python) and the [Nano RP2040 Connect Python® API Guide](/tutorials/nano-rp2040-connect/rp2040-python-api) articles.***
## Goals
diff --git a/content/hardware/03.nano/boards/nano-rp2040-connect/tutorials/rp2040-python-api/rp2040-python-api.md b/content/hardware/03.nano/boards/nano-rp2040-connect/tutorials/rp2040-python-api/rp2040-python-api.md
index 0cbeaf3f74..71d192f4ec 100644
--- a/content/hardware/03.nano/boards/nano-rp2040-connect/tutorials/rp2040-python-api/rp2040-python-api.md
+++ b/content/hardware/03.nano/boards/nano-rp2040-connect/tutorials/rp2040-python-api/rp2040-python-api.md
@@ -1,7 +1,7 @@
---
author: 'Karl Söderby'
-title: 'Nano RP2040 Connect Python API Guide'
-description: 'Discover how to access the features Nano RP2040 Connect using Python scripts.'
+title: 'Nano RP2040 Connect Python® API Guide'
+description: 'Discover how to access the features Nano RP2040 Connect using Python® scripts.'
compatible-products: [nano-rp2040-connect]
difficulty: intermediate
tags:
@@ -11,11 +11,11 @@ tags:

-The [Nano RP2040 Connect](https://store.arduino.cc/nano-rp2040-connect) board can be programmed using the popular **Python** programming language. The board is supported by upstream [MicroPython](https://github.com/micropython/micropython) and [OpenMV's fork of MicroPython](https://github.com/openmv/micropython), where **MicroPython** is an implementation of the Python language, designed to run on microcontrollers.
+The [Nano RP2040 Connect](https://store.arduino.cc/nano-rp2040-connect) board can be programmed using the popular **Python®** programming language. The board is supported by upstream [MicroPython](https://github.com/micropython/micropython) and [OpenMV's fork of MicroPython](https://github.com/openmv/micropython), where **MicroPython** is an implementation of the Python® language, designed to run on microcontrollers.
In this article, you will find a lot of sample scripts that will work directly with your Nano RP2040 Connect, such as general GPIO control, reading onboard sensors and Wi-Fi/BLE communication!
-- If you want to read more about Arduino & Python, you can visit the [Python with Arduino](/learn/programming/arduino-and-python) article. Here you will find a lot of useful examples, such as how to use delays, interrupts, reading pins and more general functions.
+- If you want to read more about Arduino & Python®, you can visit the [Python® with Arduino](/learn/programming/arduino-and-python) article. Here you will find a lot of useful examples, such as how to use delays, interrupts, reading pins and more general functions.
## Hardware Requirements
@@ -54,7 +54,7 @@ To install upstream MicroPython and load scripts to your board, you will need to

-**8.** Write a Python script (or select any example from the list below), and click on the **Green Play Button (F5)** to run it on your board.
+**8.** Write a Python® script (or select any example from the list below), and click on the **Green Play Button (F5)** to run it on your board.
Congratulations! You can now run MicroPython scripts on your Nano RP2040 Connect board!
@@ -64,7 +64,7 @@ Congratulations! You can now run MicroPython scripts on your Nano RP2040 Connect
Below you will find a lot of useful examples that can be loaded to your Nano RP2040 Connect board. Many of these examples were extracted from the [OpenMV repository](https://github.com/openmv/openmv), where you can find many useful examples for other boards as well.
-***In this article, you will only find examples for the Nano RP2040 Connect board. For more information on how to use delays, read and write to pins, please refer to the [Python with Arduino](/learn/programming/arduino-and-python) main article.***
+***In this article, you will only find examples for the Nano RP2040 Connect board. For more information on how to use delays, read and write to pins, please refer to the [Python® with Arduino](/learn/programming/arduino-and-python) main article.***
## GPIO Map
@@ -535,4 +535,4 @@ if __name__ == "__main__":
## Summary
-In this article we have gone through a selection of scripts that will help you control your Nano RP2040 Connect board, via the OpenMV IDE. Feel free to check out our [Python with Arduino boards article](/learn/programming/arduino-and-python), where you can find guides to other boards, useful links to learn Python and more.
+In this article we have gone through a selection of scripts that will help you control your Nano RP2040 Connect board, via the OpenMV IDE. Feel free to check out our [Python® with Arduino boards article](/learn/programming/arduino-and-python), where you can find guides to other boards, useful links to learn Python® and more.
diff --git a/content/hardware/03.nano/boards/nano-rp2040-connect/tutorials/rp2040-upgrading-nina-firmware/rp2040-upgrading-nina-firmware.md b/content/hardware/03.nano/boards/nano-rp2040-connect/tutorials/rp2040-upgrading-nina-firmware/rp2040-upgrading-nina-firmware.md
index 70ef4abc6c..1d4c860942 100644
--- a/content/hardware/03.nano/boards/nano-rp2040-connect/tutorials/rp2040-upgrading-nina-firmware/rp2040-upgrading-nina-firmware.md
+++ b/content/hardware/03.nano/boards/nano-rp2040-connect/tutorials/rp2040-upgrading-nina-firmware/rp2040-upgrading-nina-firmware.md
@@ -19,7 +19,7 @@ software:
## Introduction
-In some cases you might need to upgrade your NINA-W102 module's firmware. There is for example a need to upgrade your firmware if you wish to [use the NINA-W102 module via Python](https://docs.arduino.cc/tutorials/nano-rp2040-connect/rp2040-python-api#wireless).
+In some cases you might need to upgrade your NINA-W102 module's firmware. There is for example a need to upgrade your firmware if you wish to [use the NINA-W102 module via Python®](https://docs.arduino.cc/tutorials/nano-rp2040-connect/rp2040-python-api#wireless).
***If you are using the [Arduino Cloud IoT](https://create.arduino.cc/iot/things), manual firmware upgrades are not necessary, as it is done automatically while configuring your board.***
diff --git a/content/hardware/03.nano/boards/nano/datasheet/datasheet.md b/content/hardware/03.nano/boards/nano/datasheet/datasheet.md
index d676dd7090..48212580f7 100644
--- a/content/hardware/03.nano/boards/nano/datasheet/datasheet.md
+++ b/content/hardware/03.nano/boards/nano/datasheet/datasheet.md
@@ -104,9 +104,6 @@ Sample sketches for the Arduino® can be found either in the “Examples” menu
### Online Resources
Now that you have gone through the basics of what you can do with the board you can explore the endless possibilities it provides by checking exciting projects on ProjectHub **[5]**, the Arduino® Library Reference **[6]** and the online store **[7]** where you will be able to complement your board with sensors, actuators and more.
-### Board Recovery
-All Arduino boards have a built-in bootloader which allows flashing the board via USB. In case a sketch locks up the processor and the board is not reachable anymore via USB it is possible to enter bootloader mode by double-tapping the reset button right after power up.
-
## Connector Pinouts

diff --git a/content/hardware/03.nano/boards/nano/downloads/schematics.pdf b/content/hardware/03.nano/boards/nano/downloads/A000005-schematics.pdf
similarity index 100%
rename from content/hardware/03.nano/boards/nano/downloads/schematics.pdf
rename to content/hardware/03.nano/boards/nano/downloads/A000005-schematics.pdf
diff --git a/content/hardware/04.pro/boards/portenta-h7-lite-connected/features.md b/content/hardware/04.pro/boards/portenta-h7-lite-connected/features.md
index a2613d4661..7f5daaaa1d 100644
--- a/content/hardware/04.pro/boards/portenta-h7-lite-connected/features.md
+++ b/content/hardware/04.pro/boards/portenta-h7-lite-connected/features.md
@@ -27,10 +27,4 @@ The **Portenta H7 Lite Connected** simultaneously runs high level code along wit
-
-
- The Portenta H7 Lite Connected is a highly configurable design, it is possible to order boards with different configurations of memory, crypto chip, antenna, etc. These request will be channeled through Arduino's sales team and will require a minimum amount order. We recommend you try the default H7 configuration and if you need specific features for your solution, then contact us to discuss the terms.
-
-
-
diff --git a/content/hardware/04.pro/boards/portenta-h7/datasheets/datasheet.md b/content/hardware/04.pro/boards/portenta-h7/datasheets/datasheet.md
index b260860b2e..c0510e684e 100644
--- a/content/hardware/04.pro/boards/portenta-h7/datasheets/datasheet.md
+++ b/content/hardware/04.pro/boards/portenta-h7/datasheets/datasheet.md
@@ -60,9 +60,9 @@ Laboratory equipment, Computer vision
diff --git a/content/hardware/04.pro/boards/portenta-h7/features.md b/content/hardware/04.pro/boards/portenta-h7/features.md
index 6d670ca7a1..7b7b14e6f7 100644
--- a/content/hardware/04.pro/boards/portenta-h7/features.md
+++ b/content/hardware/04.pro/boards/portenta-h7/features.md
@@ -30,12 +30,6 @@ The **Portenta H7** simultaneously runs high level code along with real time tas
Probably one of the most exciting features of the Portenta H7 is the possibility of connecting an external monitor to build your own dedicated embedded computer with a user interface. This is possible thanks to the STM32H747 processor's on-chip GPU, the Chrom-ART Accelerator™. Besides the GPU, the chip includes a dedicated JPEG encoder and decoder.
-
-
-
-
-
- The Portenta H7 is a highly configurable design, it is possible to order boards with different configurations of memory, crypto chip, antenna, etc. These request will be channeled through Arduino's sales team and will require a minimum amount order. We recommend you to try the default H7 configuration and, if you need specific features for your solution, then contact us to discuss the terms.
diff --git a/content/hardware/04.pro/boards/portenta-h7/tutorials/getting-started-openmv-micropython/content.md b/content/hardware/04.pro/boards/portenta-h7/tutorials/getting-started-openmv-micropython/content.md
index 5221b48e70..6dc9188c86 100644
--- a/content/hardware/04.pro/boards/portenta-h7/tutorials/getting-started-openmv-micropython/content.md
+++ b/content/hardware/04.pro/boards/portenta-h7/tutorials/getting-started-openmv-micropython/content.md
@@ -85,7 +85,7 @@ Create a new script by clicking the "New File" button in the toolbar on the left
import pyb # Import module for board related functions
```
-A module in Python is a confined bundle of functionality. By importing it into the script, it gets made available. For this example, you only need `pyb`, which is a module that contains board related functionality such as PIN handling. You can read more about its functions [here](https://docs.micropython.org/en/latest/library/pyb.html).
+A module in Python® is a confined bundle of functionality. By importing it into the script, it gets made available. For this example, you only need `pyb`, which is a module that contains board related functionality such as PIN handling. You can read more about its functions [here](https://docs.micropython.org/en/latest/library/pyb.html).
Now you can create the variables that will control our built-in RGB LED. With `pyb` you can easily control each color.
diff --git a/content/hardware/04.pro/boards/portenta-h7/tutorials/setting-up-portenta/content.md b/content/hardware/04.pro/boards/portenta-h7/tutorials/setting-up-portenta/content.md
index 738c4d683a..d1f10641cd 100644
--- a/content/hardware/04.pro/boards/portenta-h7/tutorials/setting-up-portenta/content.md
+++ b/content/hardware/04.pro/boards/portenta-h7/tutorials/setting-up-portenta/content.md
@@ -24,7 +24,7 @@ Congratulations on your purchase of one of our most powerful microcontroller boa
One of the benefits of the Portenta H7 is that it supports different types of software cores. A core is the software API for a particular set of processors. It is the API that provides functions such as digitalRead(), analogWrite(), millis() etc. which directly operate on the hardware.
-At the moment of writing the tutorial, there is an Arduino core and a MicroPython core available for working with Portenta. The latter one allows you to write sketches in the popular programming language Python rather than C or C++ and run them on the Portenta H7.
+At the moment of writing the tutorial, there is an Arduino core and a MicroPython core available for working with Portenta. The latter one allows you to write sketches in the popular programming language Python® rather than C or C++ and run them on the Portenta H7.
This tutorial focuses on the Arduino core which allows you to benefit from the thousands of existing Arduino libraries and code examples written in C and C++ which are compatible with the Arduino core. A tutorial about setting the Portenta H7 up for development with the MicroPython core will be released soon.
diff --git a/content/hardware/04.pro/boards/portenta-x8/datasheet/datasheet.md b/content/hardware/04.pro/boards/portenta-x8/datasheet/datasheet.md
index 228f5a40cc..5b88749a44 100644
--- a/content/hardware/04.pro/boards/portenta-x8/datasheet/datasheet.md
+++ b/content/hardware/04.pro/boards/portenta-x8/datasheet/datasheet.md
@@ -466,7 +466,14 @@ This device complies with part 15 of the FCC Rules. Operation is subject to the
3. This equipment should be installed and operated with minimum distance 20cm between the radiator & your body.
-English:
+Note: This equipment has been tested and found to comply with the limits for a Class B digital device, pursuant to part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential installation. This equipment generates, uses and can radiate radio frequency energy and, if not installed and used in accordance with the instructions, may cause harmful interference to radio communications. However, there is no guarantee that interference will not occur in a particular installation. If this equipment does cause harmful interference to radio or television reception, which can be determined by turning the equipment off and on, the user is encouraged to try to correct the interference by one or more of the following measures:
+* Reorient or relocate the receiving antenna.
+* Increase the separation between the equipment and receiver.
+* Connect the equipment into an outlet on a circuit different from that to which the
+receiver is connected.
+* Consult the dealer or an experienced radio/TV technician for help
+
+English:
User manuals for licence-exempt radio apparatus shall contain the following or equivalent notice in a conspicuous location in the user manual or alternatively on the device or both. This device complies with Industry Canada licence-exempt RSS standard(s). Operation is subject to the following two conditions:
(1) this device may not cause interference
@@ -488,20 +495,33 @@ This equipment should be installed and operated with minimum distance 20 cm betw
French:
Lors de l’ installation et de l’ exploitation de ce dispositif, la distance entre le radiateur et le corps est d ’au moins 20 cm.
+Radio apparatus containing digital circuitry which can function separately from the operation of a transmitter or an associated transmitter, shall comply with ICES-003. In such cases, the labelling requirements of the applicable RSS apply, rather than the labelling requirements in ICES-003. This Class B digital apparatus complies with Canadian ICES-003.
+
+Cet appareil numérique de la classe B est conforme à la norme NMB-003 du Canada.
+
+This radio transmitter [IC:26792-ABX00049] has been approved by Innovation, Science and Economic Development Canada to operate with the antenna types listed below, with the maximum permissible gain indicated. Antenna types not included in this list that have a gain greater than the maximum gain indicated for any type listed are strictly prohibited for use with this device.
+
+| Antenna Manufacturer | |
+| ---------------------| --------------------------------------- |
+| Antenna Model | |
+| Antenna type | External omnidirectional dipole antenna |
+| Antenna gain: | 3.6dBi |
+
**Important:** The operating temperature of the EUT can’t exceed 85℃ and shouldn’t be lower than -40℃.
Hereby, Arduino S.r.l. declares that this product is in compliance with essential requirements and other relevant provisions of Directive 201453/EU. This product is allowed to be used in all EU member states.
-| Frequency bands | Maximum output power (ERP) |
-| -------------------- | -------------------------- |
-| 2.4 GHz, 40 channels | +6dBm |
-
+| Frequency bands | Maximum output power (EIRP) |
+| ------------------------ | --------------------------- |
+| 2402-2480 MHz(EDR) | 12.18 dBm |
+| 2402-2480 MHz(BLE) | 7.82 dBm |
+| 2412-2472 MHz(2.4G Wifi) | 15.99 dBm |
## Company Information
| Company name | Arduino SRL |
| --------------- | --------------------------------------------- |
-| Company Address | Via Andrea Appiani 25, 20900, MONZA MB, Italy |
+| Company Address | Via Andrea Appiani, 25 - 20900 MONZA(Italy) |
## Reference Documentation
@@ -517,6 +537,7 @@ Hereby, Arduino S.r.l. declares that this product is in compliance with essentia
## Change Log
-| **Date** | **Changes** |
-| ---------- | ----------- |
-| 24/03/2022 | Release |
+| **Date** | **Changes** |
+| ---------- | -------------------------- |
+| 30/11/2022 | Additional information |
+| 24/03/2022 | Release |
diff --git a/content/hardware/04.pro/boards/portenta-x8/downloads/ABX00049-datasheet.pdf b/content/hardware/04.pro/boards/portenta-x8/downloads/ABX00049-datasheet.pdf
new file mode 100644
index 0000000000..9e80499e03
Binary files /dev/null and b/content/hardware/04.pro/boards/portenta-x8/downloads/ABX00049-datasheet.pdf differ
diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/custom-container/content.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/custom-container/content.md
index 72fa4a509e..e5d74c00a3 100644
--- a/content/hardware/04.pro/boards/portenta-x8/tutorials/custom-container/content.md
+++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/custom-container/content.md
@@ -1,7 +1,7 @@
---
title: Create and Upload a Custom Container to the Portenta X8
difficulty: intermediate
-tags: [Linux, Python, Containers, ADB]
+tags: [Linux, Python®, Containers, ADB]
description: This tutorial will show you how to create and upload your custom container to your Portenta X8
author: Benjamin Dannegård
hardware:
diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/multi-protocol-gateway/content.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/multi-protocol-gateway/content.md
index 96f6b5d24e..5f1381dee7 100644
--- a/content/hardware/04.pro/boards/portenta-x8/tutorials/multi-protocol-gateway/content.md
+++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/multi-protocol-gateway/content.md
@@ -64,7 +64,7 @@ Foremost, you will get to know how the multi-protocol gateway will be implemente
The Arduino layer is extended within the M4 Core and it is the layer dedicated to the development of real time operations. Thus, you can use the Arduino layer to perform PID tasks and make the RPC calls to exchange data with the Linux layer.
-***To learn about how to exchange data using RPC between Arduino and Linux layer, please read ["Data Exchange Between Python on Linux and an Arduino Sketch"](https://docs.arduino.cc/tutorials/portenta-x8/python-arduino-data-exchange)***
+***To learn about how to exchange data using RPC between Arduino and Linux layer, please read ["Data Exchange Between Python® on Linux and an Arduino Sketch"](https://docs.arduino.cc/tutorials/portenta-x8/python-arduino-data-exchange)***
We will go through how to use RPC to expose data received from the Arduino layer to the Linux layer, if further development requires you to feed data to devices interfaced communicating with the M4 core. We will leave the tasks running and open to be interfaced with for expanding the capability of the Portenta X8 and Max Carrier. It will let you develop a gateway system where:
@@ -79,7 +79,7 @@ It is important to understand that **all networking processes are made within th
The Portenta X8 provides Wi-Fi connectivity and the Portenta Max Carrier provides a LoRaWAN® module that can help us communicate with The Things Network. We will use the MQTT protocol to receive sensor data transmitted by an end device.
-We will use a Python script that will configure and handle the connectivity modules and its sensor data. The RPC calls will be used to expose the received sensor data to the Arduino layer, setting up data exchange configuration to further expand the capability of the Portenta X8 and Max Carrier. The process can also be done vice-versa and makes use of the Arduino layer to transmit the data to the Linux layer from the local end-device.
+We will use a Python® script that will configure and handle the connectivity modules and its sensor data. The RPC calls will be used to expose the received sensor data to the Arduino layer, setting up data exchange configuration to further expand the capability of the Portenta X8 and Max Carrier. The process can also be done vice-versa and makes use of the Arduino layer to transmit the data to the Linux layer from the local end-device.
Now that we know the roles of Arduino and Linux layer, we will need a clear picture on how the multi-protocol gateway should look. The next diagram illustrates the in-depth multi-protocol gateway architecture, showing how each layer and module will cooperate.
@@ -132,7 +132,7 @@ To access the logs of `py-serialrpc` service, while maintaining the same directo
sudo docker-compose logs -f --tail 20
```
-***For more details about how data exchange between Arduino and Linux layer works and to understand how to debug, please read [Data Exchange Between Python on Linux and an Arduino Sketch](https://docs.arduino.cc/tutorials/portenta-x8/python-arduino-data-exchange)***
+***For more details about how data exchange between Arduino and Linux layer works and to understand how to debug, please read [Data Exchange Between Python® on Linux and an Arduino Sketch](https://docs.arduino.cc/tutorials/portenta-x8/python-arduino-data-exchange)***
In case you have not configured internal Wi-Fi connectivity within the system, please use following command line.
@@ -190,9 +190,9 @@ pycayennelpp
paho-mqtt
```
-### Multi-Protocol Python Application
+### Multi-Protocol Python® Application
-This is the main Python script that will handle overall networking process. We will highlight important fragments of the code to help you understand how these codes pieces work together to build a gateway based on multiple protocols. For full Python script please refer to the files [here](assets/Multi_Protocol_Gateway_X8.zip).
+This is the main Python® script that will handle overall networking process. We will highlight important fragments of the code to help you understand how these codes pieces work together to build a gateway based on multiple protocols. For full Python® script please refer to the files [here](assets/Multi_Protocol_Gateway_X8.zip).
First up, the configuration for the M4 Proxy Server, which are the parameters that handles communication with the M4 core that extends the Arduino layer. The `m4_proxy_port` is configured to `5001`, as it is the port used by clients to send the data to the M4.
@@ -207,7 +207,7 @@ m4_proxy_address = 'm4-proxy'
m4_proxy_port = 5001
```
-The next function is dedicated to retrieve data from the M4 (Arduino layer). It will help you set the variables, such as sensor data, to then be pulled and be exposed to the Linux layer. With this, you will have the information available to be used within the Python script.
+The next function is dedicated to retrieve data from the M4 (Arduino layer). It will help you set the variables, such as sensor data, to then be pulled and be exposed to the Linux layer. With this, you will have the information available to be used within the Python® script.
```python
def get_data_from_m4():
@@ -486,7 +486,7 @@ You will be able to see following results when the image is built successfully.
***If you have created the Docker container previously and want to re-create it with new changes made outside the shell, please check that the container and its build directory is stopped and removed. This is for the convenience of having a clean working environment***
-After a successful container build, you will have to make the image run. To do that, you can use the following command. This command will immediately give an output in your terminal, telling you how the Python script is running. If you wish to have it running in the background, please add `-d` flag at the end of the command.
+After a successful container build, you will have to make the image run. To do that, you can use the following command. This command will immediately give an output in your terminal, telling you how the Python® script is running. If you wish to have it running in the background, please add `-d` flag at the end of the command.
```
#Multi_Protocol_Gateway_X8 sudo docker-compose up
diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md
index 327954cd26..a64e2573c9 100644
--- a/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md
+++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/out-of-the-box/content.md
@@ -36,7 +36,7 @@ Once the Portenta X8 is plugged in via USB, you can open your browser and go to
* [Configure Wi-Fi](#connecting-to-your-wi-fi)
* [Add your device to FoundriesFactory (OTA)](#add-a-new-device-to-your-factory)
* Board details
-* Shell (alpine python)
+* Shell (alpine Python®)
## Connecting to Your Wi-Fi
diff --git a/content/hardware/04.pro/boards/portenta-x8/tutorials/python-arduino-data-exchange/content.md b/content/hardware/04.pro/boards/portenta-x8/tutorials/python-arduino-data-exchange/content.md
index 2b6d2c37dd..d4733f15a3 100644
--- a/content/hardware/04.pro/boards/portenta-x8/tutorials/python-arduino-data-exchange/content.md
+++ b/content/hardware/04.pro/boards/portenta-x8/tutorials/python-arduino-data-exchange/content.md
@@ -1,9 +1,9 @@
---
-title: 'Data Exchange Between Python on Linux and an Arduino Sketch'
-description: 'This tutorial will show you how to run a python application that exchanges data with an Arduino Sketch.'
+title: 'Data Exchange Between Python® on Linux and an Arduino Sketch'
+description: 'This tutorial will show you how to run a Python® application that exchanges data with an Arduino Sketch.'
tags:
- RPC
- - Python
+ - Python®
author: 'Sebastian Romero'
hardware:
- hardware/04.pro/boards/portenta-x8
@@ -11,7 +11,7 @@ hardware:
## Overview
-The container infrastructure provided by Arduino contains a pre-built Python image that you can use to run python applications on the Portenta X8. In this tutorial we're going to build a container based on a provided one. While all the peripherals can be accessed from the iMX8 processor running the Linux environment, it can be useful to let the onboard microcontroller take care of certain peripheral handling and just exchange the required data between the microcontroller and the Python application. In this tutorial you will learn how to do that. If you haven't done so, read through the [foundations article](/tutorials/portenta-x8/x8-fundamentals) to understand the fundamental concepts of the X8 and the provided infrastructure.
+The container infrastructure provided by Arduino contains a pre-built Python® image that you can use to run Python® applications on the Portenta X8. In this tutorial we're going to build a container based on a provided one. While all the peripherals can be accessed from the iMX8 processor running the Linux environment, it can be useful to let the onboard microcontroller take care of certain peripheral handling and just exchange the required data between the microcontroller and the Python® application. In this tutorial you will learn how to do that. If you haven't done so, read through the [foundations article](/tutorials/portenta-x8/x8-fundamentals) to understand the fundamental concepts of the X8 and the provided infrastructure.
## Goals
@@ -26,13 +26,13 @@ The container infrastructure provided by Arduino contains a pre-built Python ima
- [Portenta breakout](https://docs.arduino.cc/hardware/portenta-breakout) board
- Any sensor (in this example we'll use an [BME680](https://www.bosch-sensortec.com/products/environmental-sensors/gas-sensors/bme680/) I2C module)
-## Python on the X8
+## Python® on the X8
-Python is a modern and powerful scripting language that can be used for all sorts of use cases. In this tutorial we only read sensor data from an Arduino sketch without doing anything interesting with it, but you could extend the example and process the data further.
+Python® is a modern and powerful scripting language that can be used for all sorts of use cases. In this tutorial we only read sensor data from an Arduino sketch without doing anything interesting with it, but you could extend the example and process the data further.
### Communication Between Linux and Arduino Sketches
-The python script will run on the Linux side and therefore on the iMX8 processor. The Arduino sketch on the other hand will run on the STM32H747 microcontroller. That allows for real-time processing on the Arduino side while running a fully fledged operating system on iMX8. However the two processors need a communication mechanism to exchange data with one another. The communication mechanism that is being used is referred to as RPC (Remote Procedure Call). To facilitate the communication the M7 core on the STM32H747 microcontroller is used which hands over any data / request to the M4 core. That means your Arduino sketch will solely run on the M4 core. Dual core processing on the Arduino side is currently not supported.
+The Python® script will run on the Linux side and therefore on the iMX8 processor. The Arduino sketch on the other hand will run on the STM32H747 microcontroller. That allows for real-time processing on the Arduino side while running a fully fledged operating system on iMX8. However the two processors need a communication mechanism to exchange data with one another. The communication mechanism that is being used is referred to as RPC (Remote Procedure Call). To facilitate the communication the M7 core on the STM32H747 microcontroller is used which hands over any data / request to the M4 core. That means your Arduino sketch will solely run on the M4 core. Dual core processing on the Arduino side is currently not supported.
On the Linux side there is a service that takes care of sending data between the two worlds. It's called `m4-proxy`. You can check if the service is running by logging into the X8 via `adb shell` and then executing `sudo journalctl -fu m4-proxy`. If, for whatever reason, the service has stopped, you can restart it with `sudo systemctl restart m4-proxy`
@@ -73,9 +73,9 @@ Log into the X8 shell with `adb shell` and navigate into the `serialrpc` folder.
Check if the container is running by executing `sudo docker ps`. You can then access the log of this service at any time by executing `sudo docker-compose logs -f --tail 20` from the **same directory**. If you don't run the container in the background (skip the `-d` flag), you will get the console output directly in the executing shell. Once the container is running you will see the messages that are being sent from the M4.
-## The Python Application
+## The Python® Application
-The Python application requests the sensor data from the M4 over RPC and unpacks the message. Data can be requested by calling the function exposed over RPC on the M4 e.g.:
+The Python® application requests the sensor data from the M4 over RPC and unpacks the message. Data can be requested by calling the function exposed over RPC on the M4 e.g.:
```python
m4_proxy_address = 'm4-proxy'
@@ -85,7 +85,7 @@ rpc_client = RpcClient(rpc_address)
temperature = rpc_client.call('temperature')
```
-The files for the complete Python application can be found in the same package as the Arduino sketch (see above). Upload the `python-sensor-rpc` folder to the X8 via `adb push python-sensor-rpc /home/fio`. Log into the X8 via `adb shell`. Then navigate into the `python-sensor-rpc` folder and execute `sudo docker build . -t python-sensor-rpc`. When it's done you can run the container with `sudo docker-compose up`. After a few seconds you should see the output from the Python application featuring the sensor readings on the M4 that were piped through the RPC mechanism. The output should look similar to the following:
+The files for the complete Python® application can be found in the same package as the Arduino sketch (see above). Upload the `python-sensor-rpc` folder to the X8 via `adb push python-sensor-rpc /home/fio`. Log into the X8 via `adb shell`. Then navigate into the `python-sensor-rpc` folder and execute `sudo docker build . -t python-sensor-rpc`. When it's done you can run the container with `sudo docker-compose up`. After a few seconds you should see the output from the Python® application featuring the sensor readings on the M4 that were piped through the RPC mechanism. The output should look similar to the following:
```
python-sensor-rpc_1 | ============================================
@@ -99,7 +99,7 @@ python-sensor-rpc_1 | Gas: 136.496
python-sensor-rpc_1 | Altitude: 311.0769348144531
```
- Keep in mind that, whenever you change anything in the Python script on your computer you will have to sync it back to the X8 and re-build the container:
+ Keep in mind that, whenever you change anything in the Python® script on your computer you will have to sync it back to the X8 and re-build the container:
```
# On your computer
@@ -111,11 +111,11 @@ sudo docker build . -t python-sensor-rpc
sudo docker-compose up
```
-Alternatively you could modify the files directly on the X8 using an editor such as VIM so you don't need to upload the files all the time. Re-building the container will be necessary in any case though. In case you wonder how to specify the python script that is executed when running a container, have a look at the `Dockerfile` file. There you'll find the `ENTRYPOINT` command that takes multiple arguments. In our example: `ENTRYPOINT [ "python3", "m4_to_python.py"]`
+Alternatively you could modify the files directly on the X8 using an editor such as VIM so you don't need to upload the files all the time. Re-building the container will be necessary in any case though. In case you wonder how to specify the Python® script that is executed when running a container, have a look at the `Dockerfile` file. There you'll find the `ENTRYPOINT` command that takes multiple arguments. In our example: `ENTRYPOINT [ "python3", "m4_to_python.py"]`
## Conclusion
-In this tutorial you learned how to use the docker infrastructure to build a container that runs a python application. You have also learned how to use the RPC mechanism to exchange data between the microcontroller and the iMX8 which runs the Linux operating system.
+In this tutorial you learned how to use the docker infrastructure to build a container that runs a Python® application. You have also learned how to use the RPC mechanism to exchange data between the microcontroller and the iMX8 which runs the Linux operating system.
### Next Steps
diff --git a/content/hardware/04.pro/carriers/portenta-max-carrier/tutorials/x8-getting-started/content.md b/content/hardware/04.pro/carriers/portenta-max-carrier/tutorials/x8-getting-started/content.md
index d8edea6848..9f5bdbcb57 100644
--- a/content/hardware/04.pro/carriers/portenta-max-carrier/tutorials/x8-getting-started/content.md
+++ b/content/hardware/04.pro/carriers/portenta-max-carrier/tutorials/x8-getting-started/content.md
@@ -17,7 +17,7 @@ software:
## Introduction
-Using the Portenta X8 with the Portenta Max Carrier enables a large suite of peripherals and features. With the Portenta X8 it is possible to use Linux containers and python scripts, it is also possible to use the M4 core on the board to interface with the Portenta Max Carrier. In this tutorial we will focus on the peripherals and features that are available to us.
+Using the Portenta X8 with the Portenta Max Carrier enables a large suite of peripherals and features. With the Portenta X8 it is possible to use Linux containers and Python® scripts, it is also possible to use the M4 core on the board to interface with the Portenta Max Carrier. In this tutorial we will focus on the peripherals and features that are available to us.
## Goals
@@ -85,7 +85,7 @@ The Portenta Max Carrier carries a cellular modem SARA-R412M-02B to carry out ta

-If you want to use this feature with python scripts, have a look at the [Modem Manager api](https://github.com/freedesktop/ModemManager).
+If you want to use this feature with Python® scripts, have a look at the [Modem Manager api](https://github.com/freedesktop/ModemManager).
### LoRa®
@@ -116,7 +116,7 @@ The Portenta Max Carrier and the Portenta X8 are connected with High Density con
If you wish to use the Portenta X8 and Max Carrier with the Arduino IDE, please follow our [Uploading sketches to Arduino Portenta X8 tutorial](./tutorials/uploading-sketches-m4). Also, make sure that you have the latest version of the Portenta Core installed. Go to **Tools > Boards > board manager...** and search for **Arduino Mbed OS Portenta boards**. When this is installed and your Portenta X8 board is connected to the computer, the board should be assigned a port in the Arduino IDE.
-If you want to use the Portenta X8 and Max Carrier with a FoundriesFactory, python scripts and Linux containers, Please take a look at our [Portenta X8 Getting started tutorial](./tutorials/portenta-x8/out-of-the-box). You may also find our tutorial on how to [manage dockers on the Portenta X8](https://docs.arduino.cc/tutorials/portenta-x8/docker-container) useful.
+If you want to use the Portenta X8 and Max Carrier with a FoundriesFactory, Python® scripts and Linux containers, Please take a look at our [Portenta X8 Getting started tutorial](./tutorials/portenta-x8/out-of-the-box). You may also find our tutorial on how to [manage dockers on the Portenta X8](https://docs.arduino.cc/tutorials/portenta-x8/docker-container) useful.
## Quick Reference Tables for the Portenta Max Carrier
diff --git a/content/hardware/04.pro/shields/portenta-vision-shield/tutorials/blob-detection/content.md b/content/hardware/04.pro/shields/portenta-vision-shield/tutorials/blob-detection/content.md
index b2f8b69834..f5ae63ee1e 100644
--- a/content/hardware/04.pro/shields/portenta-vision-shield/tutorials/blob-detection/content.md
+++ b/content/hardware/04.pro/shields/portenta-vision-shield/tutorials/blob-detection/content.md
@@ -104,7 +104,7 @@ import image # Import module containing machine vision algorithms
import time # Import module for tracking elapsed time
```
-A module in Python is a confined bundle of functionality. By importing it into the script, it gets made available.
+A module in Python® is a confined bundle of functionality. By importing it into the script, it gets made available.
### 2. Preparing the Sensor
diff --git a/content/hardware/04.pro/shields/portenta-vision-shield/tutorials/ethernet-with-ide/content.md b/content/hardware/04.pro/shields/portenta-vision-shield/tutorials/ethernet-with-ide/content.md
index a42a6dbd9f..4893c93f91 100644
--- a/content/hardware/04.pro/shields/portenta-vision-shield/tutorials/ethernet-with-ide/content.md
+++ b/content/hardware/04.pro/shields/portenta-vision-shield/tutorials/ethernet-with-ide/content.md
@@ -123,7 +123,7 @@ First, some connection tests are made and printed in the Serial Monitor. After t
## Conclusion
-This tutorial showed how to connect the Portenta H7 with a Vision Shield Ethernet to the Internet, with an example sketch in the Arduino IDE. The sketch allowed the board to connect to a website and print its content in the Serial Monitor. The Portenta H7 and Vision Shield can also be used with OpenMV, have a look at the [OpenMV Ethernet tutorial](https://docs.arduino.cc/tutorials/portenta-vision-shield/ethernet-with-openmv) if you want to see a similar example with python.
+This tutorial showed how to connect the Portenta H7 with a Vision Shield Ethernet to the Internet, with an example sketch in the Arduino IDE. The sketch allowed the board to connect to a website and print its content in the Serial Monitor. The Portenta H7 and Vision Shield can also be used with OpenMV, have a look at the [OpenMV Ethernet tutorial](https://docs.arduino.cc/tutorials/portenta-vision-shield/ethernet-with-openmv) if you want to see a similar example with Python®.
### Next Steps
diff --git a/content/hardware/06.nicla/boards/nicla-sense-me/downloads/ABX00050-schematics.pdf b/content/hardware/06.nicla/boards/nicla-sense-me/downloads/ABX00050-schematics.pdf
index 1b221a888d..979a66e940 100644
Binary files a/content/hardware/06.nicla/boards/nicla-sense-me/downloads/ABX00050-schematics.pdf and b/content/hardware/06.nicla/boards/nicla-sense-me/downloads/ABX00050-schematics.pdf differ
diff --git a/content/hardware/06.nicla/boards/nicla-sense-me/tutorials/web-ble-dashboard/content.md b/content/hardware/06.nicla/boards/nicla-sense-me/tutorials/web-ble-dashboard/content.md
index 28d1a980a0..cdc0ea7add 100644
--- a/content/hardware/06.nicla/boards/nicla-sense-me/tutorials/web-ble-dashboard/content.md
+++ b/content/hardware/06.nicla/boards/nicla-sense-me/tutorials/web-ble-dashboard/content.md
@@ -1,5 +1,5 @@
---
-title: 'Displaying on-Board Sensor Values on a WebBLE Dashboard.'
+title: 'Displaying on-Board Sensor Values on a WebBLE Dashboard'
coverImage: hero-banner.svg
tags:
- Bluetooth®
@@ -23,7 +23,7 @@ software:
---
## Overview
-The Arduino Nicla Sense ME can give you information about the environment such as pressure, temperature and gas readings. Sometimes, you may have to place the sensor in a hard-to-reach area and therefore want to access the data wirelessly.
+The Arduino® Nicla Sense ME can give you information about the environment such as pressure, temperature and gas readings. Sometimes, you may have to place the sensor in a hard-to-reach area due to certain environmental requirement. Therefore, it will be much convenient and helpful to access the data wirelessly.
Thanks to the ANNA B112 Bluetooth® chip and the libraries developed for the Nicla Sense ME, you can easily stream data over Bluetooth® to a device of your choice. By using WebBLE, no additional software other than a compatible browser (Google Chrome is recommended) is required.
@@ -31,7 +31,7 @@ To demonstrate this, we prepared a simple sketch and hosted a dashboard so you c
A [previous version](https://arduino.github.io/ArduinoAI/BLESense-test-dashboard/) of this dashboard was developed to be used with the Arduino® Nano 33 BLE. You can see a video that shows how it looks [here](https://www.facebook.com/official.arduino/videos/ble-sense-test-dashboard/336762167617547/).
-In this tutorial we will focus on the Arduino® Nicla Sense ME.
+In this tutorial, we will focus on the Arduino® Nicla Sense ME.
## Goals
@@ -41,15 +41,17 @@ In this tutorial we will focus on the Arduino® Nicla Sense ME.
### Required Hardware and Software
- [Nicla Sense ME](https://store.arduino.cc/products/nicla-sense-me)
-- Micro USB-A cable (USB-A to Micro USB-A)
+- Micro USB-A cable (USB-A to Micro USB-AB)
- Arduino IDE 1.8.10+, Arduino IDE 2 or Arduino Web Editor
-- If you choose the Arduino IDE, you will need to install 2 libraries: `Arduino_BHY2`and `ArduinoBLE`
+- If you choose the Arduino IDE, you will need to install 2 libraries: [**Arduino_BHY2**](https://github.com/arduino-libraries/Arduino_BHY2) and [**ArduinoBLE**](https://github.com/arduino-libraries/ArduinoBLE)
## Instructions
### Set up the Board
-If you use the Web Editor to upload the [sketch](https://create.arduino.cc/editor/FT-CONTENT/333e2e07-ecc4-414c-bf08-005b611ddd75/preview) you don't need to install any library. They are all included automatically. If you use the Arduino IDE or the CLI, you need to download the **Arduino_BHY2** and the **ArduinoBLE** libraries.
+If you use the Web Editor to upload the [sketch](https://create.arduino.cc/editor/FT-CONTENT/333e2e07-ecc4-414c-bf08-005b611ddd75/preview) you don't need to install any library. They are all included automatically. If you use the Arduino IDE or the CLI, you need to download the **Arduino_BHY2** and the **ArduinoBLE** libraries.
+
+These libraries can be found within the Library Manager in the Arduino IDE, or it can be downloaded separately following the links attached within required hardware and software section.
If you use a local IDE, you can copy & paste the following sketch:
```arduino
@@ -264,6 +266,8 @@ If you use a local IDE, you can copy & paste the following sketch:
}
```
+Once you have these tools, you can select the Nicla Sense ME as target board and its corresponding port. Now you are ready to upload the sketch.
+
### Connect to the Dashboard
Once you uploaded the sketch to your board you can open the [Nicla Sense ME Dashboard](https://arduino.github.io/ArduinoAI/NiclaSenseME-dashboard/). If you're interested in the source code, you can have a look at the [repository](https://github.com/arduino/ArduinoAI).
@@ -276,15 +280,14 @@ To connect your board to the dashboard, you will need to click on the top left b
***For this feature to work, make sure that WebBLE is both supported and enabled! In Google Chrome go to and enable "Experimental Web Platform features". Check the website [compatibility list](https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API#browser_compatibility) to confirm that your browser supports this feature***
-Once it is connected, the button will change its color to green, and the graphs will start to show data in real time.
-
-Try to rotate the board and see the 3D model of the board spin.
+Once it is connected, the button will change its color to green, and the graphs will start to show data in real time. You will be able to verify its operation by trying out the following actions:
-You can also select a different LED color from the bottom left widget.
+- Try to rotate the board and see the 3D model of the board spin.
-Breathe onto the board and see the humidity and temperature values changing.
+- You can also select a different LED color from the bottom left widget.
+- Breathe onto the board and see the humidity and temperature values changing.
## Conclusion
-The Nicla Sense ME supports a lot of use cases through its on-board sensors and the Bluetooth® Low Energy functionality. By leveraging the WebBLE API you do not need to install or run any application from your computer as shown in this tutorial. You can read more about WebBLE technology [here](https://web.dev/bluetooth/).
+The Nicla Sense ME supports a lot of use cases through its on-board sensors and the Bluetooth® Low Energy functionality. By leveraging the WebBLE API, you do not need to install or run any application from your computer as shown in this tutorial. You can read more about WebBLE technology [here](https://web.dev/bluetooth/).
diff --git a/content/hardware/06.nicla/boards/nicla-sense-me/tutorials/web-ble-dashboard/hero-banner.svg b/content/hardware/06.nicla/boards/nicla-sense-me/tutorials/web-ble-dashboard/hero-banner.svg
index 3acd74a1f3..b5fc4a0bdd 100644
--- a/content/hardware/06.nicla/boards/nicla-sense-me/tutorials/web-ble-dashboard/hero-banner.svg
+++ b/content/hardware/06.nicla/boards/nicla-sense-me/tutorials/web-ble-dashboard/hero-banner.svg
@@ -1 +1 @@
-../cheat-sheet/hero-banner.svg
\ No newline at end of file
+
\ No newline at end of file
diff --git a/content/hardware/06.nicla/boards/nicla-vision/downloads/ABX00051-schematics.pdf b/content/hardware/06.nicla/boards/nicla-vision/downloads/ABX00051-schematics.pdf
index 6ce6421ce9..765f982b9a 100644
Binary files a/content/hardware/06.nicla/boards/nicla-vision/downloads/ABX00051-schematics.pdf and b/content/hardware/06.nicla/boards/nicla-vision/downloads/ABX00051-schematics.pdf differ
diff --git a/content/hardware/06.nicla/boards/nicla-vision/tutorials/blob-detection/content.md b/content/hardware/06.nicla/boards/nicla-vision/tutorials/blob-detection/content.md
index 77b2e2686c..54e5d327c9 100644
--- a/content/hardware/06.nicla/boards/nicla-vision/tutorials/blob-detection/content.md
+++ b/content/hardware/06.nicla/boards/nicla-vision/tutorials/blob-detection/content.md
@@ -78,7 +78,7 @@ import image # Import module containing machine vision algorithms
import time # Import module for tracking elapsed time
```
-A module in Python is a confined bundle of functionality. By importing it into the script it gets made available.
+A module in Python® is a confined bundle of functionality. By importing it into the script it gets made available.
### 2. Preparing the Sensor
diff --git a/content/hardware/06.nicla/boards/nicla-vision/tutorials/getting-started/content.md b/content/hardware/06.nicla/boards/nicla-vision/tutorials/getting-started/content.md
index f902b1a80e..ebe9c7dc91 100644
--- a/content/hardware/06.nicla/boards/nicla-vision/tutorials/getting-started/content.md
+++ b/content/hardware/06.nicla/boards/nicla-vision/tutorials/getting-started/content.md
@@ -73,7 +73,7 @@ Create a new script by clicking the "New File" button in the toolbar on the left
import pyb # Import module for board related functions
```
-A module in Python is a confined bundle of functionality. By importing it into the script, it becomes available. For this example you will only need `pyb`, which is a module that contains board related functionality such as PIN handling. You can read more about its functions [here](https://docs.micropython.org/en/latest/library/pyb.html).
+A module in Python® is a confined bundle of functionality. By importing it into the script, it becomes available. For this example you will only need `pyb`, which is a module that contains board related functionality such as PIN handling. You can read more about its functions [here](https://docs.micropython.org/en/latest/library/pyb.html).
Now you can create the variables that will control our built-in RGB LED. With `pyb` you can easily control each color.
diff --git a/content/hardware/08.kits/maker/make-your-uno-kit/datasheet/datasheet.md b/content/hardware/08.kits/maker/make-your-uno-kit/datasheet/datasheet.md
index 9bd9eb68e9..499571bfa5 100644
--- a/content/hardware/08.kits/maker/make-your-uno-kit/datasheet/datasheet.md
+++ b/content/hardware/08.kits/maker/make-your-uno-kit/datasheet/datasheet.md
@@ -238,9 +238,6 @@ Sample sketches for the **UNO** can be found either in the “Examples” menu i
#### Online Resources
Now that you have gone through the basics of what you can do with the board you can explore the endless possibilities it provides by checking exciting projects on ProjectHub [4], the Arduino Library Reference [5] and the online store [6] where you will be able to complement your board with sensors, actuators and more.
-#### Board Recovery
-All Arduino boards have a built-in bootloader which allows flashing the board via USB. In case a sketch locks up the processor and the board is not reachable anymore via USB it is possible to enter bootloader mode by double-tapping the reset button right after a power-up.
-
### Connector Pinouts

diff --git a/content/hardware/_unlisted/old-datasheets/portenta-h7-full/datasheet.md b/content/hardware/_unlisted/old-datasheets/portenta-h7-full/datasheet.md
index b93658613a..bd0a2841c8 100644
--- a/content/hardware/_unlisted/old-datasheets/portenta-h7-full/datasheet.md
+++ b/content/hardware/_unlisted/old-datasheets/portenta-h7-full/datasheet.md
@@ -248,7 +248,7 @@ Both processors can share all the peripherals and resources and both can run the
* MicroPython/Javascript interpreter
* TensorFlow Lite
-In all combinations of applications it is possible to invoke synchronous or asynchronous API calls. For example it is possible to extend Python language with functions implemented as Arduino sketches that are executed in parallel to other python functions by the opposite core.
+In all combinations of applications it is possible to invoke synchronous or asynchronous API calls. For example it is possible to extend Python® language with functions implemented as Arduino sketches that are executed in parallel to other Python® functions by the opposite core.
Processor’s various power modes allow quickly switching between high performance and very low power configurations, optimizing power consumption whenever cores are idle.
diff --git a/content/hardware/_unlisted/old-datasheets/portenta-h7-lite-connected/datasheet.md b/content/hardware/_unlisted/old-datasheets/portenta-h7-lite-connected/datasheet.md
index 682b9023b2..42300bad03 100644
--- a/content/hardware/_unlisted/old-datasheets/portenta-h7-lite-connected/datasheet.md
+++ b/content/hardware/_unlisted/old-datasheets/portenta-h7-lite-connected/datasheet.md
@@ -235,7 +235,7 @@ Both processors can share all the peripherals and resources and both can run the
* MicroPython/Javascript interpreter
* TensorFlow Lite
-In all combinations of applications it is possible to invoke synchronous or asynchronous API calls. For example it is possible to extend Python language with functions implemented as Arduino sketches that are executed in parallel to other python functions by the opposite core.
+In all combinations of applications it is possible to invoke synchronous or asynchronous API calls. For example it is possible to extend Python® language with functions implemented as Arduino sketches that are executed in parallel to other Python® functions by the opposite core.
Processor’s various power modes allow quickly switching between high performance and very low power configurations, optimizing power consumption whenever cores are idle.
diff --git a/content/hardware/_unlisted/old-datasheets/portenta-h7-lite/datasheet.md b/content/hardware/_unlisted/old-datasheets/portenta-h7-lite/datasheet.md
index 1f8d1eaa23..c43668cda6 100644
--- a/content/hardware/_unlisted/old-datasheets/portenta-h7-lite/datasheet.md
+++ b/content/hardware/_unlisted/old-datasheets/portenta-h7-lite/datasheet.md
@@ -199,7 +199,7 @@ Both processors can share all the peripherals and resources and both can run the
* MicroPython/Javascript interpreter
* TensorFlow Lite
-In all combinations of applications it is possible to invoke synchronous or asynchronous API calls. For example it is possible to extend Python language with functions implemented as Arduino sketches that are executed in parallel to other python functions by the opposite core.
+In all combinations of applications it is possible to invoke synchronous or asynchronous API calls. For example it is possible to extend Python® language with functions implemented as Arduino sketches that are executed in parallel to other Python® functions by the opposite core.
Processor’s various power modes allow quickly switching between high performance and very low power configurations, optimizing power consumption whenever cores are idle.
diff --git a/content/learn/01.starting-guide/08.arduino-comic/arduino-comic.md b/content/learn/01.starting-guide/08.arduino-comic/arduino-comic.md
index 4c077cdac3..8867f02c3e 100644
--- a/content/learn/01.starting-guide/08.arduino-comic/arduino-comic.md
+++ b/content/learn/01.starting-guide/08.arduino-comic/arduino-comic.md
@@ -20,19 +20,15 @@ The Arduino Comic was created by Jody Culkin and published during 2011. You can
## Translations
-**PORTUGUESE / PORTUGUÊS**
+**ARABIC /عربي**
-- **Translated by:** Rodrigo Caitano
-- **Email/url:** rodrigocaett@gmail.com
-- [Comic em Português](https://content.arduino.cc/assets/arduino_comic_pt.pdf)
-- [Translated text in .doc format](https://content.arduino.cc/assets/arduino_comic_pt.doc)
-
-**SPANISH / ESPAÑOL**
+- **Translated by:** Ahmad Y. Saleh
+- **Email/url:** ahmad.y.saleh@gmail.com
+- [Arabic PDF Version ملف اللغة العربية](https://content.arduino.cc/assets/arduino_comic_arabic.pdf)
-- **Translated by:** Josemanu (Ardumania.es)
-- **Email/url:** josemescuder@gmail.com
-- [Comic en Español](https://content.arduino.cc/assets/arduino_comic_ESPA%C3%91OL.pdf)
-- [Translated text in .doc format](https://content.arduino.cc/assets/arduino_comic_espanol_text_doc.doc)
+Work files:
+- [Right-to-left SVGs](https://content.arduino.cc/assets/RtL_blank.rar)
+- [Arabic work files](https://content.arduino.cc/assets/arabic_svgs.rar)
**CATALAN / CATALÀ**
@@ -40,6 +36,12 @@ The Arduino Comic was created by Jody Culkin and published during 2011. You can
- **Email/url:** antoni DOT ubieto@gmail.om
- [BETA Catalan PDF version](https://content.arduino.cc/assets/arduino_comic_v004_cat_BETA.pdf)
+**Chinese / 中文**
+
+- **Translated by:** Lukas Riad
+- **Email/url:** luksury@gmail.com
+- [Simplified Mandarin PDF version](https://content.arduino.cc/assets/Comic_CN.pdf)
+
**DUTCH / NEDERLANDS**
- **Translated by:** Johan Korten / [i&i](https://www.ieni.org/)
@@ -62,37 +64,43 @@ Work files: [Inkscape SVGs in zip File](https://content.arduino.cc/assets/Arduin
- **Email/url:** rottyfish@yahoo.com
- [Greek PDF version](https://content.arduino.cc/assets/arduino_comic_v0004_GREEK.pdf)
-**KOREAN/한국어**
+**INDONESIAN / BAHASA INDONESIA**
+
+- **Translated by:** Moriano Mordekhai
+- **Email/url:** 'mor.d.khai013@gmail.com'
+- [Indinesian PDF version](https://content.arduino.cc/assets/arduino_comic_id.pdf)
+
+
+**KOREAN / 한국어**
- **Translated by:** [kocoafab](https://www.kocoafab.cc/)
- **Email/url:** webmaster@kocoafab.cc
- [Arduino comic 한국어 버전](https://content.arduino.cc/assets/Introduction%20to%20Arduino_%ED%95%9C%EA%B8%80.pdf)
- [translated text file: Arduino comic 한국어 텍스트 .docx](https://content.arduino.cc/assets/Introduction%20to%20Arduino_%ED%95%9C%EA%B8%80.docx)
-**ARABIC/عربي**
+**Nepali / नेपाली**
-- **Translated by:** Ahmad Y. Saleh
-- **Email/url:** ahmad.y.saleh@gmail.com
-- [Arabic PDF Version ملف اللغة العربية](https://content.arduino.cc/assets/arduino_comic_arabic.pdf)
+- **Translated by:** Niraj Pradhan
+- **Email/url:** nirajpradhan299@gmail.com
+- [Nepali PDF version](https://content.arduino.cc/assets/COMIC%20%E0%A4%A8%E0%A5%87%E0%A4%AA%E0%A4%BE%E0%A4%B2%E0%A5%80%E0%A4%AE%E0%A4%BE.pdf)
-Work files:
-- [Right-to-left SVGs](https://content.arduino.cc/assets/RtL_blank.rar)
-- [Arabic work files](https://content.arduino.cc/assets/arabic_svgs.rar)
+**Persian / فارسی**
-**INDONESIAN/BAHASA INDONESIA**
+- **Translated by:** Hossein Ahmadi (حسین احمدی)
+- **Email/url:** 4hmadi.ho55ein@gmail.com
+- [Persian PDF version](/resources/arduino-comics/Arduino-comic-Persian.pdf)
-- **Translated by:** Moriano Mordekhai
-- **Email/url:** 'mor.d.khai013@gmail.com'
-- [Indinesian PDF version](https://content.arduino.cc/assets/arduino_comic_id.pdf)
+**PORTUGUESE / PORTUGUÊS**
-**Chinese/中文**
+- **Translated by:** Rodrigo Caitano
+- **Email/url:** rodrigocaett@gmail.com
+- [Comic em Português](https://content.arduino.cc/assets/arduino_comic_pt.pdf)
+- [Translated text in .doc format](https://content.arduino.cc/assets/arduino_comic_pt.doc)
-- **Translated by:** Lukas Riad
-- **Email/url:** luksury@gmail.com
-- [Simplified Mandarin PDF version](https://content.arduino.cc/assets/Comic_CN.pdf)
+**SPANISH / ESPAÑOL**
-**Nepali**
+- **Translated by:** Josemanu (Ardumania.es)
+- **Email/url:** josemescuder@gmail.com
+- [Comic en Español](https://content.arduino.cc/assets/arduino_comic_ESPA%C3%91OL.pdf)
+- [Translated text in .doc format](https://content.arduino.cc/assets/arduino_comic_espanol_text_doc.doc)
-- **Translated by:** Niraj Pradhan
-- **Email/url:** nirajpradhan299@gmail.com
-- [Nepali PDF version](https://content.arduino.cc/assets/COMIC%20%E0%A4%A8%E0%A5%87%E0%A4%AA%E0%A4%BE%E0%A4%B2%E0%A5%80%E0%A4%AE%E0%A4%BE.pdf)
diff --git a/content/learn/03.programming/01.variables/variables.md b/content/learn/03.programming/01.variables/variables.md
index 3bab640a29..2ac6392610 100644
--- a/content/learn/03.programming/01.variables/variables.md
+++ b/content/learn/03.programming/01.variables/variables.md
@@ -93,4 +93,4 @@ Why, you might be wondering, wouldn't you make all your variables global? After
[block scope]
[size of variables]
-[1] In some languages, like Python, types are associated with values, not variable names, and you can assign values of any type to a variable. This is referred to as *dynamic typing*.
\ No newline at end of file
+[1] In some languages, like Python®, types are associated with values, not variable names, and you can assign values of any type to a variable. This is referred to as *dynamic typing*.
\ No newline at end of file
diff --git a/content/learn/03.programming/04.vidor/vidor.md b/content/learn/03.programming/04.vidor/vidor.md
index a569ae5bc7..cad566e491 100644
--- a/content/learn/03.programming/04.vidor/vidor.md
+++ b/content/learn/03.programming/04.vidor/vidor.md
@@ -3,6 +3,11 @@ title: 'FPGA HDL Basics'
description: 'Learn the basics of Field Programmable Gate Arrays (FPGA) and HDL.'
---
+## Hardware Required
+
+- [MKR Vidor 4000](https://store.arduino.cc/products/arduino-mkr-vidor-4000)
+
+## Field Programmable Gate Arrays
Field Programmable Gate Arrays, in short [FPGAs](https://en.wikipedia.org/wiki/Field-programmable_gate_array) are a relatively old way of creating custom hardware eliminating the costs associated with silicon foundries. Unfortunately most of the complexity of chip design are still there and this is the reason why most people prefers to use off the shelf chips, often accepting their limitations, rather than take the challenge to have an optimized, efficient design with exactly the hardware they need.
diff --git a/content/learn/03.programming/05.arduino-and-python/arduino-and-python.md b/content/learn/03.programming/05.arduino-and-python/arduino-and-python.md
index e717ae5c4d..67091d6af4 100644
--- a/content/learn/03.programming/05.arduino-and-python/arduino-and-python.md
+++ b/content/learn/03.programming/05.arduino-and-python/arduino-and-python.md
@@ -11,7 +11,7 @@ hero_position: 1
***To download the firmware required to run MicroPython on your Arduino board, visit the [Arduino MicroPython downloads page](/micropython).***
-[MicroPython](https://micropython.org/) is an implementation of the [Python programming language](https://www.python.org/) that comes with a subset of the Python standard library, and is designed **to run on microcontrollers**.
+[MicroPython](https://micropython.org/) is an implementation of the [Python® programming language](https://www.python.org/) that comes with a subset of the Python® standard library, and is designed **to run on microcontrollers**.
A great advantage of using MicroPython is that it is easy to learn and has [great documentation](http://docs.micropython.org/en/latest/) for a number of boards. At the moment, there are four boards that can be used together with MicroPython, you can read more about them in the [compatible boards section](#compatible-boards).
@@ -82,7 +82,7 @@ If you need help getting started with MicroPython on the **Nano 33 BLE** board,
- [Install MicroPython on your Nano BLE](/tutorials/nano-33-ble-sense/micropython-installation#arduino-nano-33-ble).
- [Getting started with OpenMV and Nano 33 BLE](/tutorials/nano-33-ble/getting-started-omv)
-- [Nano 33 BLE Python API guide](/tutorials/nano-33-ble/ble-python-api) (a collection of useful scripts).
+- [Nano 33 BLE Python® API guide](/tutorials/nano-33-ble/ble-python-api) (a collection of useful scripts).
***To reset the bootloader on the Nano 33 BLE board, double tap the reset button quickly. This will reset your board to factory setting.***
@@ -94,7 +94,7 @@ If you need help getting started with MicroPython on the **Nano 33 BLE Sense** b
- [Install MicroPython on your Nano BLE Sense](/tutorials/nano-33-ble-sense/micropython-installation#arduino-nano-33-ble).
- [Getting started with OpenMV and Nano 33 BLE Sense](/tutorials/nano-33-ble-sense/getting-started-omv)
-- [Nano 33 BLE Sense Python guide](/tutorials/nano-33-ble-sense/ble-sense-python-api) (a collection of useful scripts).
+- [Nano 33 BLE Sense Python® guide](/tutorials/nano-33-ble-sense/ble-sense-python-api) (a collection of useful scripts).
***To reset the bootloader on the Nano 33 BLE Sense board, double tap the reset button quickly. This will reset your board to factory setting.***
@@ -105,7 +105,7 @@ If you need help getting started with MicroPython on the **Nano 33 BLE Sense** b
If you need help getting started with MicroPython on the **Nano RP2040 Connect** board, you can check out the tutorials below:
- [Install MicroPython on your Nano RP2040 Connect](/tutorials/nano-rp2040-connect/micropython-installation#arduino-nano-rp2040-connect)
-- [Nano RP2040 Connect Python guide](/tutorials/nano-rp2040-connect/rp2040-python-api)
+- [Nano RP2040 Connect Python® guide](/tutorials/nano-rp2040-connect/rp2040-python-api)
- [Getting Started with OpenMV and MicroPython on Nano RP2040 Connect](/tutorials/nano-rp2040-connect/rp2040-openmv-setup)
@@ -120,9 +120,9 @@ If you need help getting started with MicroPython on the **Portenta H7** board,
- [Install MicroPython on Portenta H7](/tutorials/portenta-h7/micropython-installation#arduino-portenta-h7).
- [Getting Started with OpenMV and MicroPython on Portenta H7](https://docs.arduino.cc/tutorials/portenta-h7/por-openmv-gs)
-## Learn Python
+## Learn Python®
-As MicroPython is an implementation of the Python language, you can also run a lot of Python scripts directly on the board. For example, running this python script on your computer also works when running it on your board.
+As MicroPython is an implementation of the Python® language, you can also run a lot of Python® scripts directly on the board. For example, running this Python® script on your computer also works when running it on your board.
```python
value1 = 2
@@ -131,23 +131,23 @@ value2 = 5
print(value1 + value2)
```
-This means it's time to learn the **Python** language, which there is a lot of resources for. We recommend taking a look at the following resources to better understand the Python language:
+This means it's time to learn the **Python®** language, which there is a lot of resources for. We recommend taking a look at the following resources to better understand the Python® language:
- [python.org](https://www.python.org/)
- [learnpython.org](https://www.learnpython.org/)
-- [w3schools guide to Python](https://www.w3schools.com/python/default.asp)
+- [w3schools guide to Python®](https://www.w3schools.com/python/default.asp)
### MicroPython Docs
-Visit the [MicroPython documentation](https://docs.micropython.org/en/latest/) for an understanding on how Python runs on microcontrollers.
+Visit the [MicroPython documentation](https://docs.micropython.org/en/latest/) for an understanding on how Python® runs on microcontrollers.
-***Note that many examples in the MicroPython Docs will not work directly with Arduino boards, but will provide an understanding of how Python can run on your board.***
+***Note that many examples in the MicroPython Docs will not work directly with Arduino boards, but will provide an understanding of how Python® can run on your board.***
## API
Below you will find some useful examples that can be used by any Arduino board. For more specific features, such as on-board sensors, connectivity and communication, please refer to the individual guides:
-- [Nano RP2040 Connect Python API guide](/tutorials/nano-rp2040-connect/rp2040-python-api)
+- [Nano RP2040 Connect Python® API guide](/tutorials/nano-rp2040-connect/rp2040-python-api)
- [Nano BLE API guide](/tutorials/nano-33-ble/ble-python-api)
- [Nano BLE Sense API guide](/tutorials/nano-33-ble-sense/ble-sense-python-api)
diff --git a/content/retired/01.boards/arduino-yun-with-poe/content.md b/content/retired/01.boards/arduino-yun-with-poe/content.md
index 5dcd5c24f2..24e3709868 100644
--- a/content/retired/01.boards/arduino-yun-with-poe/content.md
+++ b/content/retired/01.boards/arduino-yun-with-poe/content.md
@@ -13,7 +13,7 @@ The **Arduino Yún** is a microcontroller board based on the ATmega32u4 and the
NB : In some countries, it is prohibited to sell WiFi enabled devices without government approval. While waiting for proper certification, some local distributors are disabling WiFi functionality. Check with your dealer before purchasing a Yún if you believe you may live in such a country. If you wish to disable WiFi, run this sketch.
-The Yún distinguishes itself from other Arduino boards by its ability to communicate with the Linux distribution onboard, offering a powerful networked computer with the ease of an Arduino. In addition to Linux commands like the cURL, you can write your own shell and python scripts for robust interactions. The Yún is similar to the Leonardo with the ATmega32u4, except that it has Linux on board. (has built-in USB communication, eliminating the need for a secondary processor).
+The Yún distinguishes itself from other Arduino boards by its ability to communicate with the Linux distribution onboard, offering a powerful networked computer with the ease of an Arduino. In addition to Linux commands like the cURL, you can write your own shell and Python® scripts for robust interactions. The Yún is similar to the Leonardo with the ATmega32u4, except that it has Linux on board. (has built-in USB communication, eliminating the need for a secondary processor).
NB: Yun Release 5 The new Arduino Yun R5 differs substantially from the previous release in these features:
@@ -36,7 +36,7 @@ This board version comes with the PoE module on board.The **Arduino Yún** is a
NB : In some countries, it is prohibited to sell WiFi enabled devices without government approval. While waiting for proper certification, some local distributors are disabling WiFi functionality. Check with your dealer before purchasing a Yún if you believe you may live in such a country. If you wish to disable WiFi, run this sketch.
-The Yún distinguishes itself from other Arduino boards by its ability to communicate with the Linux distribution onboard, offering a powerful networked computer with the ease of an Arduino. In addition to Linux commands like the cURL, you can write your own shell and python scripts for robust interactions. The Yún is similar to the Leonardo with the ATmega32u4, except that it has Linux on board. (has built-in USB communication, eliminating the need for a secondary processor).
+The Yún distinguishes itself from other Arduino boards by its ability to communicate with the Linux distribution onboard, offering a powerful networked computer with the ease of an Arduino. In addition to Linux commands like the cURL, you can write your own shell and Python® scripts for robust interactions. The Yún is similar to the Leonardo with the ATmega32u4, except that it has Linux on board. (has built-in USB communication, eliminating the need for a secondary processor).
NB: Yun Release 5 The new Arduino Yun R5 differs substantially from the previous release in these features:
diff --git a/content/retired/01.boards/arduino-yun/content.md b/content/retired/01.boards/arduino-yun/content.md
index aad9557bb9..424a07e181 100644
--- a/content/retired/01.boards/arduino-yun/content.md
+++ b/content/retired/01.boards/arduino-yun/content.md
@@ -13,7 +13,7 @@ The **Arduino Yún** is a microcontroller board based on the ATmega32u4 and the
NB : In some countries, it is prohibited to sell WiFi enabled devices without government approval. While waiting for proper certification, some local distributors are disabling WiFi functionality. Check with your dealer before purchasing a Yún if you believe you may live in such a country.
-The Yún distinguishes itself from other Arduino boards by its ability to communicate with the Linux distribution onboard, offering a powerful networked computer with the ease of an Arduino. In addition to Linux commands like the cURL, you can write your own shell and python scripts for robust interactions. The Yún is similar to the Leonardo with the ATmega32u4, except that it has Linux on board. (has built-in USB communication, eliminating the need for a secondary processor).
+The Yún distinguishes itself from other Arduino boards by its ability to communicate with the Linux distribution onboard, offering a powerful networked computer with the ease of an Arduino. In addition to Linux commands like the cURL, you can write your own shell and Python® scripts for robust interactions. The Yún is similar to the Leonardo with the ATmega32u4, except that it has Linux on board. (has built-in USB communication, eliminating the need for a secondary processor).
NB: Yun Release 5 The new Arduino Yun R5 differs substantially from the previous release in these features:
diff --git a/content/retired/05.archived-libraries/Ciao/Ciao.md b/content/retired/05.archived-libraries/Ciao/Ciao.md
index e827705899..cc978dae84 100644
--- a/content/retired/05.archived-libraries/Ciao/Ciao.md
+++ b/content/retired/05.archived-libraries/Ciao/Ciao.md
@@ -13,7 +13,7 @@ Arduino Ciao - from now-on simply "Ciao" has been designed and developed to be m
Ciao is made of two main parts:
- Ciao Library: developed in C;
-- Ciao Core: developed in Python;
+- Ciao Core: developed in Python®;

@@ -25,7 +25,7 @@ This architecture is currently available on the following products:
- [Arduino Yún Mini](https://www.arduino.cc/en/Main/ArduinoBoardYunMini)
## Ciao Core
-To communicate with the "outside world" the Ciao Library interacts with Ciao Core: the key component of the Ciao technology on the MPU (microprocessor) side. Ciao Core runs over Linino OS, it is developed in python and it has been designed to enable communication with "outside world" via several modules called Connectors. Such connectors communicate with Ciao Core using JSON strings sent over a TCP socket.
+To communicate with the "outside world" the Ciao Library interacts with Ciao Core: the key component of the Ciao technology on the MPU (microprocessor) side. Ciao Core runs over Linino OS, it is developed in Python® and it has been designed to enable communication with "outside world" via several modules called Connectors. Such connectors communicate with Ciao Core using JSON strings sent over a TCP socket.
Ciao Core, thanks to this smart and effective design, is able to:
diff --git a/content/retired/05.archived-libraries/YunBridgeLibrary/YunBridgeLibrary.md b/content/retired/05.archived-libraries/YunBridgeLibrary/YunBridgeLibrary.md
index ee892d3f1d..91fa123d67 100644
--- a/content/retired/05.archived-libraries/YunBridgeLibrary/YunBridgeLibrary.md
+++ b/content/retired/05.archived-libraries/YunBridgeLibrary/YunBridgeLibrary.md
@@ -10,7 +10,7 @@ author: Arduino
The [Yún](https://www.arduino.cc/en/Products/ArduinoYUN) has two processors on board. One is an ATmega32U4 like on the [Leonardo](https://www.arduino.cc/en/Main/ArduinoBoardLeonardo). The other is an Atheros 9331, running Linux and the OpenWRT wireless stack, which enables the board to connect to WiFi and Ethernet networks. It is possible to call programs or custom scripts on the Linux system through the Arduino to connect with various internet services. The [Yún Shield](https://www.arduino.cc/en/Main/ArduinoYunShield) shares the same architecture and features, but it is a shield and needs to be attached to a board, where the microcontroller is interfaced with the Atheros processor through hardware Serial port.
-The Bridge library simplifies communication between the ATmega32U4 - or the board attached if you use the shield - and the AR9331. Bridge commands from the board microcontroller are interpreted by Python on the AR9331. Its role is to execute programs on the GNU/Linux side when asked by Arduino, provide a shared storage space for sharing data like sensor readings between the Arduino and the Internet, and receiving commands from the Internet and passing them directly to the Arduino.
+The Bridge library simplifies communication between the ATmega32U4 - or the board attached if you use the shield - and the AR9331. Bridge commands from the board microcontroller are interpreted by Python® on the AR9331. Its role is to execute programs on the GNU/Linux side when asked by Arduino, provide a shared storage space for sharing data like sensor readings between the Arduino and the Internet, and receiving commands from the Internet and passing them directly to the Arduino.
Bridge allows communication in both directions, acting as an interface to the the Linux command line. For a brief explanations of the terminal and executing commands on Linux [see here](https://www.arduino.cc/en/Tutorial/LinuxCLI).
diff --git a/content/retired/06.getting-started-guides/ArduinoTian/ArduinoTian.md b/content/retired/06.getting-started-guides/ArduinoTian/ArduinoTian.md
index cccb2c39d4..8e2f32df31 100644
--- a/content/retired/06.getting-started-guides/ArduinoTian/ArduinoTian.md
+++ b/content/retired/06.getting-started-guides/ArduinoTian/ArduinoTian.md
@@ -136,20 +136,20 @@ There are eight status LEDs on the Tian that indicate:TX UART SAMD21, RX UART SA
LininoOS is based on OpenWRT distribution with about 3000 package built and available. LininoOS provides a fully writable filesystem with package management with GPG signature. Integrated with LininoIO it is a complete linux system for IoT space. LininoOS features many innovations for your Arduino Tian.
-LininoIO is a software framework able to integrate microcontroller features inside the microprocessor environment. You can simply write your application using Node.js, Python, Bash, etc., on linux side using LininoOS to control completely the board and all the devices attacched.
+LininoIO is a software framework able to integrate microcontroller features inside the microprocessor environment. You can simply write your application using Node.js, Python®, Bash, etc., on linux side using LininoOS to control completely the board and all the devices attacched.
Node.js with Ideino Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. Ideino is an embedded editor to write and debug your node.js application.
All Joyn supported, which is an open source project which provides a universal software framework and core set of system services that enable interoperability among connected products and software applications to create dynamic proximal networks.
-#### Python
+#### Python®
-An installation of Python 2.7 is included with LininoOS, which you can use to write applications or scripts.
-For more on Python, visit the Python 2.7 [documentation pages](https://docs.python.org/2/).
+An installation of Python® 2.7 is included with LininoOS, which you can use to write applications or scripts.
+For more on Python®, visit the Python® 2.7 [documentation pages](https://docs.python.org/2/).
#### Install additional software on Linux
-The Tian comes with several pieces of software pre-installed on LininoOS, including "curl" and "python". You may want to install other software on the Tian. On Linux systems, additional software can be installed using a tool called the "opkg".
+The Tian comes with several pieces of software pre-installed on LininoOS, including `curl` and `python`. You may want to install other software on the Tian. On Linux systems, additional software can be installed using a tool called the `opkg`.
You can find pre-compiled packages for LininoOS on their latest version, [here](http://download.linino.org/linino_distro/lininoIO/latest/packages/).
#### Resetting the processors (AR9342, WiFi, and SAMD21)
diff --git a/content/retired/06.getting-started-guides/ArduinoUnoWiFiChangeFw/ArduinoUnoWiFiChangeFw.md b/content/retired/06.getting-started-guides/ArduinoUnoWiFiChangeFw/ArduinoUnoWiFiChangeFw.md
index 5b399ce957..af3758c894 100644
--- a/content/retired/06.getting-started-guides/ArduinoUnoWiFiChangeFw/ArduinoUnoWiFiChangeFw.md
+++ b/content/retired/06.getting-started-guides/ArduinoUnoWiFiChangeFw/ArduinoUnoWiFiChangeFw.md
@@ -83,7 +83,7 @@ This procedure is **recommended** for all **Operating System** and it is usable
**5** - Test the esptool, for example, inserting the below command to read the MAC address:
-- python esptool.py -p your port -b baudrate read_mac
+- `python esptool.py -p your port -b baudrate read_mac`
- Set the baudrate at **9600**.
diff --git a/content/retired/06.getting-started-guides/ArduinoYun/ArduinoYun.md b/content/retired/06.getting-started-guides/ArduinoYun/ArduinoYun.md
index 98b290eea7..261b951798 100644
--- a/content/retired/06.getting-started-guides/ArduinoYun/ArduinoYun.md
+++ b/content/retired/06.getting-started-guides/ArduinoYun/ArduinoYun.md
@@ -58,7 +58,7 @@ Now that you have set up and programmed your Yún board, you may find inspiratio

-In addition to the 32U4 chip, the Yún has an additional processor, an Atheros AR9331, which runs a distribution of Linux for embedded systems named OpenWrt-Yun, based on OpenWrt. A full install of Python 2.7 is included as well.
+In addition to the 32U4 chip, the Yún has an additional processor, an Atheros AR9331, which runs a distribution of Linux for embedded systems named OpenWrt-Yun, based on OpenWrt. A full install of Python® 2.7 is included as well.
The Yún has a number of different physical characteristics and connectors than the Leonardo. There is an on-board SD slot, Ethernet jack, and a USB-A Host connector. There is no power barrel connector on the Yún; it can be powered from the micro-USB connector.
@@ -90,11 +90,11 @@ When interfacing with the OpenWrt-Yun system, you have to use a command line, ei
Due to continuous improvements and suggestions coming from both the OpenWrt community and the Arduino community, **version of OpenWrt-Yun installed on your Yún may be out of date**. Please check the [upgrade tutorial](http://arduino.cc/en/Tutorial/YunSysupgrade) and be sure you're running the latest version available.
-#### Python
+#### Python®
-An installation of Python 2.7 is included with OpenWrt-Yun, with which you can write applications or scripts. For more on Python, visit the [Python 2.7 documentation pages](http://docs.python.org/2/).
+An installation of Python® 2.7 is included with OpenWrt-Yun, with which you can write applications or scripts. For more on Python®, visit the [Python® 2.7 documentation pages](http://docs.python.org/2/).
-If you're getting started with Python for the first time, there are a number of excellent resources on-line. ["Learn Python the Hard Way"](http://learnpythonthehardway.org/book/) will cover everything you need to know to get up and running with your own scripts.
+If you're getting started with Python® for the first time, there are a number of excellent resources on-line. ["Learn Python® the Hard Way"](http://learnpythonthehardway.org/book/) will cover everything you need to know to get up and running with your own scripts.
#### External storage on the Yún
@@ -675,7 +675,7 @@ You can find more details on this example on the [Bridge Example](/en/Tutorial/B
#### Install additional software on Linux
-The Yún comes with several pieces of software pre-installed on OpenWrt-Yun, including "curl" and "python". You may want to install other software on the Yún. On Linux systems, additional software can be installed using a tool called the "package management system". For more information, refer to the [package manager tutorial](/en/Tutorial/YunPackageManager).
+The Yún comes with several pieces of software pre-installed on OpenWrt-Yun, including `curl` and `python`. You may want to install other software on the Yún. On Linux systems, additional software can be installed using a tool called the "package management system". For more information, refer to the [package manager tutorial](/en/Tutorial/YunPackageManager).
The text of the Arduino getting started guide is licensed under a
[Creative Commons Attribution-ShareAlike 3.0 License](http://creativecommons.org/licenses/by-sa/3.0/). Code samples in the guide are released into the public domain.
diff --git a/content/retired/06.getting-started-guides/ArduinoYunLin/ArduinoYunLin.md b/content/retired/06.getting-started-guides/ArduinoYunLin/ArduinoYunLin.md
index 9c25e9670a..835e3b30af 100644
--- a/content/retired/06.getting-started-guides/ArduinoYunLin/ArduinoYunLin.md
+++ b/content/retired/06.getting-started-guides/ArduinoYunLin/ArduinoYunLin.md
@@ -77,7 +77,7 @@ or you can dig in deeper with the [Bridge library and examples](/en/Reference/Yu

-In addition to the 32U4 chip, the Yún or Yún mini has an additional processor, an Atheros AR9331, which runs a distribution of Linux for embedded systems named LininoOS, based on OpenWrt. A full install of Python 2.7 is included as well.
+In addition to the 32U4 chip, the Yún or Yún mini has an additional processor, an Atheros AR9331, which runs a distribution of Linux for embedded systems named LininoOS, based on OpenWrt. A full install of Python® 2.7 is included as well.
The Yún or Yún mini has a number of different physical characteristics and connectors than the Leonardo. There is an on-board SD slot, Ethernet jack, and a USB-A Host connector. There is no power barrel connector on the Yún; it can be powered from the micro-USB connector.
@@ -101,7 +101,7 @@ There are several status LEDs on the Yún, indicating power, WLAN connection, WA
LininoOS is based on OpenWRT distribution with about 3000 package built and available. LininoOS provides a fully writable filesystem with package management with GPG signature. Integrated with LininoIO it is a complete linux system for IoT space. LininoOS features many innovations for your Arduino Yun.
-- LininoIO is a software framework able to integrate microcontroller features inside the microprocessor environment. You can simply write your application using Node.js, Python, Bash, etc., on linux side using LininoOS to control completely the board and all the devices attacched.
+- LininoIO is a software framework able to integrate microcontroller features inside the microprocessor environment. You can simply write your application using Node.js, Python®, Bash, etc., on linux side using LininoOS to control completely the board and all the devices attacched.
- Node.js with Ideino Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. Ideino is an embedded editor to write and debug your node.js application.
@@ -113,16 +113,16 @@ Accessing the web interface is described below.
#### Install additional software on Linux
-The Yún comes with several pieces of software pre-installed on LininoOS, including "curl" and "python". You may want to install other software on the Yún. On Linux systems, additional software can be installed using a tool called the "opkg".
+The Yún comes with several pieces of software pre-installed on LininoOS, including `curl` and `python`. You may want to install other software on the Yún. On Linux systems, additional software can be installed using a tool called the "opkg".
You can find pre-compiled packages for LininoOS on their latest version, [here](http://download.linino.org/linino_distro/lininoIO/latest/packages/).
When interfacing with the LininoOS system, you have to use a command line, either accessing it through the Arduino's Bridge library, or via SSH. If you are unfamiliar with the command line, you may want to [read about some basics](/en/Tutorial/LinuxCLI) about it and some of the programs that are frequently used.
-#### Python
+#### Python®
-An installation of Python 2.7 is included with LininoOS, with which you can write applications or scripts. For more on Python, visit the [Python 2.7 documentation pages](http://docs.python.org/2/).
+An installation of Python® 2.7 is included with LininoOS, with which you can write applications or scripts. For more on Python®, visit the [Python® 2.7 documentation pages](http://docs.python.org/2/).
-If you're getting started with Python for the first time, there are a number of excellent resources on-line. ["Learn Python the Hard Way"](http://learnpythonthehardway.org/book/) will cover everything you need to know to get up and running with your own scripts.
+If you're getting started with Python® for the first time, there are a number of excellent resources on-line. ["Learn Python® the Hard Way"](http://learnpythonthehardway.org/book/) will cover everything you need to know to get up and running with your own scripts.
#### External storage on the Yún
diff --git a/content/retired/06.getting-started-guides/ArduinoYunShield/ArduinoYunShield.md b/content/retired/06.getting-started-guides/ArduinoYunShield/ArduinoYunShield.md
index 6d0cb12ee2..d49278d6cb 100644
--- a/content/retired/06.getting-started-guides/ArduinoYunShield/ArduinoYunShield.md
+++ b/content/retired/06.getting-started-guides/ArduinoYunShield/ArduinoYunShield.md
@@ -167,11 +167,11 @@ When interfacing with the OpenWRT system, you have to use a command line, either
Due to continuous improvements and suggestions coming from both the OpenWrt community and the Arduino community, **version of OpenWRT installed on your Yún Shield may be out of date**. Please check the [upgrade tutorial](http://arduino.cc/en/Tutorial/YunSysupgrade) and be sure you're running the latest version available.
-#### Python
+#### Python®
-An installation of Python 2.7 is included with OpenWRT, with which you can write applications or scripts. For more on Python, visit the [Python 2.7 documentation pages](http://docs.python.org/2/).
+An installation of Python® 2.7 is included with OpenWRT, with which you can write applications or scripts. For more on Python®, visit the [Python® 2.7 documentation pages](http://docs.python.org/2/).
-If you're getting started with Python for the first time, there are a number of excellent resources on-line. ["Learn Python the Hard Way"](http://learnpythonthehardway.org/book/) will cover everything you need to know to get up and running with your own scripts.
+If you're getting started with Python® for the first time, there are a number of excellent resources on-line. ["Learn Python® the Hard Way"](http://learnpythonthehardway.org/book/) will cover everything you need to know to get up and running with your own scripts.
#### Web services
@@ -649,7 +649,7 @@ You can find more details on this example on the [Bridge Example](/en/Tutorial/B
#### Install additional software on Linux
-The Yún Shield comes with several pieces of software pre-installed on OpenWRT, including "curl" and "python". You may want to install other software on the Yún. On Linux systems, additional software can be installed using a tool called the "package management system". For more information, refer to the [package manager tutorial](/en/Tutorial/YunPackageManager).
+The Yún Shield comes with several pieces of software pre-installed on OpenWRT, including `curl` and `python`. You may want to install other software on the Yún. On Linux systems, additional software can be installed using a tool called the "package management system". For more information, refer to the [package manager tutorial](/en/Tutorial/YunPackageManager).
#### See also
diff --git a/content/software/ide-v2/tutorials/ide-v2-fw-cert-uploader/ide-v2-fw-cert-uploader.md b/content/software/ide-v2/tutorials/ide-v2-fw-cert-uploader/ide-v2-fw-cert-uploader.md
index e2f7932884..737b574583 100644
--- a/content/software/ide-v2/tutorials/ide-v2-fw-cert-uploader/ide-v2-fw-cert-uploader.md
+++ b/content/software/ide-v2/tutorials/ide-v2-fw-cert-uploader/ide-v2-fw-cert-uploader.md
@@ -45,9 +45,9 @@ You can read the full changelog of the NINA firmware through the link below:
When you are using the [Arduino Cloud](https://create.arduino.cc/iot/things), during the device configuration, your board's firmware is automatically updated so that it can utilize features such as **OTA (Over The Air)** upload.
-### Python & Wi-Fi
+### Python® & Wi-Fi
-To access the Wi-Fi module on the [Nano RP2040 Connect board](https://store.arduino.cc/products/arduino-nano-rp2040-connect) using Python (through [OpenMV](/tutorials/nano-rp2040-connect/rp2040-openmv-setup)), you will need to update the NINA firmware to the latest version.
+To access the Wi-Fi module on the [Nano RP2040 Connect board](https://store.arduino.cc/products/arduino-nano-rp2040-connect) using Python® (through [OpenMV](/tutorials/nano-rp2040-connect/rp2040-openmv-setup)), you will need to update the NINA firmware to the latest version.
## Firmware Updater
diff --git a/package-lock.json b/package-lock.json
index 913aec0ef2..f47b07f1d9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -267,9 +267,9 @@
}
},
"@arduino/docs-arduino-cc": {
- "version": "1.6.20",
- "resolved": "https://npm.pkg.github.com/download/@arduino/docs-arduino-cc/1.6.20/2a68215aafb510bd07dae83e376de3ad4cabe3f9",
- "integrity": "sha512-lzYZHbAmCXOln8OqPmwxUTPAGp/vyPYkC+ZpMlsnlRgP517Bjd0TgP2UxPYGBBAWBKqHXJHvlJfe4es++ThJKA==",
+ "version": "1.6.25",
+ "resolved": "https://npm.pkg.github.com/download/@arduino/docs-arduino-cc/1.6.25/bf014360eb3a12017260dcc0098f0414961a2dc3",
+ "integrity": "sha512-zKO/IhS3V8e79y8/j86G0uT0KJd+DqXuAo0zyl+xk/CjdWOAkMsd5YTax/7WGIMaBLHJeAu8ZiVRw3epuyoCmA==",
"requires": {
"@algolia/autocomplete-core": "^1.5.3",
"@algolia/autocomplete-preset-algolia": "^1.5.3",
@@ -2994,238 +2994,256 @@
"integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw=="
},
"@react-aria/breadcrumbs": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.3.2.tgz",
- "integrity": "sha512-GvFdA1NDbe4zRA1iyBFaR9qNiwX6VLuXuocglKTfC5evtTKdSm0dbolhvS7SnIUPjrzog18VMugbKNQAm7+QDQ==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.4.0.tgz",
+ "integrity": "sha512-zQzDu8yO4DInw14FfuZVkIqsoQ9xJ+nbRjJug1iag+FBJCb598DnBZVpFvZdsOsRKbCtImhHhjK/CcImq1rTpA==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/link": "^3.3.4",
- "@react-aria/utils": "^3.14.0",
- "@react-types/breadcrumbs": "^3.4.4",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/link": "^3.3.5",
+ "@react-aria/utils": "^3.14.1",
+ "@react-types/breadcrumbs": "^3.4.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/button": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.6.2.tgz",
- "integrity": "sha512-8XRcPR5qXKNmnBO6u9FSY8vYa7P1FIgVix07EHBCTZiJYHYxcUsFYRWG9qf2aShGotJs4957unqGH1L1ncRYKQ==",
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.6.3.tgz",
+ "integrity": "sha512-t6UHFPFMlAQW0yefjhqwyQya6RYlUtMRtMKZjnRANbK6JskazkkLvu//qULs+vsiM21PLhspKVLcGdS+t2khsA==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/focus": "^3.9.0",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/toggle": "^3.4.2",
- "@react-types/button": "^3.6.2",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/focus": "^3.10.0",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/toggle": "^3.4.3",
+ "@react-types/button": "^3.7.0",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/calendar": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.0.3.tgz",
- "integrity": "sha512-/hCOB1LPFZvUFTLkx/rF49KZRcWZlHO5He1yVINuJ77bbn4YS82ZBINPblnP5bBMjJHhnRf4EmVQuEZq2IHTLw==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.0.4.tgz",
+ "integrity": "sha512-FE52NSR631YO+ew0k/Qt90C+qV9qJV53uAkFYWXzYE0zeE9/+IM0Jtrb/rdcmUhsx/c4l9tzNPAMdFjKvkawXw==",
"requires": {
"@babel/runtime": "^7.6.2",
"@internationalized/date": "^3.0.1",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/interactions": "^3.12.0",
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/interactions": "^3.13.0",
"@react-aria/live-announcer": "^3.1.1",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/calendar": "^3.0.3",
- "@react-types/button": "^3.6.2",
- "@react-types/calendar": "^3.0.3",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/calendar": "^3.0.4",
+ "@react-types/button": "^3.7.0",
+ "@react-types/calendar": "^3.0.4",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/checkbox": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.6.0.tgz",
- "integrity": "sha512-E2MZoMZhtHtlS1mYjxTI29JRq4s3Y6d92KHj7tzvcC308d4Bzz0IHJd0bMz/8whoNteU02pQyZ3rDAcGf92bHQ==",
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.7.0.tgz",
+ "integrity": "sha512-CGVfBcCK3e8YwjPSgIMTQbMxbjTtsDy9xGkw/7iCMVIsHC7MfzO8Ny5qJJbQ2dVkNnSfIgQdtWikYGJN2QjeDw==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/label": "^3.4.2",
- "@react-aria/toggle": "^3.4.0",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/checkbox": "^3.3.0",
- "@react-stately/toggle": "^3.4.2",
- "@react-types/checkbox": "^3.4.0",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/label": "^3.4.3",
+ "@react-aria/toggle": "^3.4.1",
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/checkbox": "^3.3.1",
+ "@react-stately/toggle": "^3.4.3",
+ "@react-types/checkbox": "^3.4.1",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/combobox": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.4.2.tgz",
- "integrity": "sha512-LFB0L2WLR7hc5J2c36jdgekHigLv4PwZfNRlh+B4VX474pS9Zt33F0FIrCKsYZA8xXzvM+lXr4POjwsoBhmnJw==",
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.4.3.tgz",
+ "integrity": "sha512-MrpxrpJOOIRKMKkFDxTzQFu6y31eL15IsMbTRttO0NsrnQiJl19ojz6MpnhIJjnaC/Wz2EEWqnUawQsJjAVxyQ==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/listbox": "^3.7.0",
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/listbox": "^3.7.1",
"@react-aria/live-announcer": "^3.1.1",
- "@react-aria/menu": "^3.6.2",
- "@react-aria/overlays": "^3.11.0",
- "@react-aria/selection": "^3.11.0",
- "@react-aria/textfield": "^3.7.2",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/collections": "^3.4.4",
- "@react-stately/combobox": "^3.2.2",
- "@react-stately/layout": "^3.8.0",
- "@react-types/button": "^3.6.2",
- "@react-types/combobox": "^3.5.4",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/menu": "^3.7.0",
+ "@react-aria/overlays": "^3.12.0",
+ "@react-aria/selection": "^3.12.0",
+ "@react-aria/textfield": "^3.8.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/collections": "^3.5.0",
+ "@react-stately/combobox": "^3.3.0",
+ "@react-stately/layout": "^3.9.0",
+ "@react-types/button": "^3.7.0",
+ "@react-types/combobox": "^3.5.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/datepicker": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.1.2.tgz",
- "integrity": "sha512-jzO3yTSbOlLVBo1Omw3xNXBg0HfpmObI1w5qzlfkQt7rK2nzToKnA5/XNsjiEODDwv7l03nOj+100a6trdLOTw==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.2.0.tgz",
+ "integrity": "sha512-qsnAcKeWzmZadXtQPpmTN4TNO10Vq/TXSsf5PF+2MInsJQjEWTN8YFFgTbKVf7ksDwfDRSarTV0f+hZbi5scHA==",
"requires": {
"@babel/runtime": "^7.6.2",
"@internationalized/date": "^3.0.1",
"@internationalized/number": "^3.1.1",
"@internationalized/string": "^3.0.0",
- "@react-aria/focus": "^3.9.0",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/label": "^3.4.2",
- "@react-aria/spinbutton": "^3.1.4",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/datepicker": "^3.1.0",
- "@react-types/button": "^3.6.2",
- "@react-types/calendar": "^3.0.3",
- "@react-types/datepicker": "^3.1.2",
- "@react-types/dialog": "^3.4.4",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/focus": "^3.10.0",
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/label": "^3.4.3",
+ "@react-aria/spinbutton": "^3.2.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/datepicker": "^3.2.0",
+ "@react-types/button": "^3.7.0",
+ "@react-types/calendar": "^3.0.4",
+ "@react-types/datepicker": "^3.1.3",
+ "@react-types/dialog": "^3.4.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/dialog": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.4.0.tgz",
- "integrity": "sha512-h1D7OOe20PhSb4DD40ABVgHMbSA2Y9rSU5lrGf9zuNSYkQIwDz6pTSXp/9roy7SEvf5KAN6zPa1inSVBOTzf3w==",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.4.1.tgz",
+ "integrity": "sha512-1P6zCn78OP9nv7/1i4QsysOKQ6gxHy9JUyOj0ixrR1jwYI/psCM2MwT9cfPjuj7pGQys6lsu4glSmZ82zARURQ==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/focus": "^3.9.0",
- "@react-aria/overlays": "^3.11.0",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/overlays": "^3.4.2",
- "@react-types/dialog": "^3.4.4",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/focus": "^3.10.0",
+ "@react-aria/overlays": "^3.12.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/overlays": "^3.4.3",
+ "@react-types/dialog": "^3.4.5",
+ "@react-types/shared": "^3.16.0"
+ }
+ },
+ "@react-aria/dnd": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.0.0.tgz",
+ "integrity": "sha512-0sJp1tqqqp4FIN+VBPcImrBy0Tb+qMAIeQ4RmqQCdrwb+T1WDcroyUnYoTRPBatsHBClQMM4z9ETKrudKJqC0w==",
+ "requires": {
+ "@babel/runtime": "^7.6.2",
+ "@internationalized/string": "^3.0.0",
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/live-announcer": "^3.1.1",
+ "@react-aria/overlays": "^3.12.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-aria/visually-hidden": "^3.6.0",
+ "@react-stately/dnd": "^3.0.0",
+ "@react-types/button": "^3.7.0",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/focus": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.9.0.tgz",
- "integrity": "sha512-DwesjEjWjFfwAwzv9qeqkyKZNPAYmPa3UrygxzmXeKEg2JpaACGZPxRcmT2EFJFEDbX8daQDEeRGyLO49o5agg==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.10.0.tgz",
+ "integrity": "sha512-idI7Etgh6y2BYi3X4d+EuUpzR7gPZ94Lf/0UNnVyMkDM9fzcdz/8DCBt0qKOff24HlaLE1rmREt0+iTR/qRgbA==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/utils": "^3.14.0",
- "@react-types/shared": "^3.15.0",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-types/shared": "^3.16.0",
"clsx": "^1.1.1"
}
},
"@react-aria/grid": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.5.0.tgz",
- "integrity": "sha512-Kz92WIu8Ef55JeO0TUv58jKF5qRH0a8iuYwBeonfaRlHPFUd0jymcU7PJnm80RRpsG17FMshTGewo5ko3khDfA==",
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.5.1.tgz",
+ "integrity": "sha512-eWwhG9wHb6l6poZSvnhoSSCpNy1kG3HxIpcbMaR2/qllbUYgZ4PASyx4N2TT/VqBUsxCSwC/WqcDka11U9d94w==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/focus": "^3.9.0",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/interactions": "^3.12.0",
+ "@react-aria/focus": "^3.10.0",
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/interactions": "^3.13.0",
"@react-aria/live-announcer": "^3.1.1",
- "@react-aria/selection": "^3.11.0",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/grid": "^3.4.0",
- "@react-stately/selection": "^3.11.0",
- "@react-stately/virtualizer": "^3.3.1",
- "@react-types/checkbox": "^3.4.0",
- "@react-types/grid": "^3.1.4",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/selection": "^3.12.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/grid": "^3.4.1",
+ "@react-stately/selection": "^3.11.1",
+ "@react-stately/virtualizer": "^3.4.0",
+ "@react-types/checkbox": "^3.4.1",
+ "@react-types/grid": "^3.1.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/gridlist": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.1.0.tgz",
- "integrity": "sha512-1upq4C3EaIJes6Vp/R07prXqMO66nDBUCttfwW695UaG0+48u8zKMTDkidf3Qssz9s7kGQEZgKQp1/hQGlJWkw==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.1.1.tgz",
+ "integrity": "sha512-/2f4RYqPF1Jxz2Zl5uScGh8trS/N+cp3YbihjLX/3q/qwBj6El72lpJCeF6zkGAJQx+bt1Uew5YB0qt9uMYZng==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/focus": "^3.9.0",
- "@react-aria/grid": "^3.5.0",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/selection": "^3.11.0",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/list": "^3.5.4",
- "@react-types/checkbox": "^3.4.0",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/focus": "^3.10.0",
+ "@react-aria/grid": "^3.5.1",
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/selection": "^3.12.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/list": "^3.6.0",
+ "@react-types/checkbox": "^3.4.1",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/i18n": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.6.1.tgz",
- "integrity": "sha512-kAetWsj9HOqwaqLhmFU2udhZ+4QGGYkQOgGBJYdrB7GfLZQ1GPBlZjv3QFdkX4oSf/k9cFqgftxvVQQDYZLOew==",
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.6.2.tgz",
+ "integrity": "sha512-/G22mZQcISX6DcKLBn4j/X53y2SOnFfiD4wOEuY7sIZZDryktd+3I/QHukCnNlf0tKK3PdixQLvWa9Q1RqTSaw==",
"requires": {
"@babel/runtime": "^7.6.2",
"@internationalized/date": "^3.0.1",
"@internationalized/message": "^3.0.9",
"@internationalized/number": "^3.1.1",
"@internationalized/string": "^3.0.0",
- "@react-aria/ssr": "^3.3.0",
- "@react-aria/utils": "^3.14.0",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/ssr": "^3.4.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/interactions": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.12.0.tgz",
- "integrity": "sha512-KcKurjPZwme9ggvGQjbjqZtZtuyXipTBVMHUah9a3+Dz7vXxhRg5vFaEdM79oQnNsrGFW5xS6SKBehl/JG6BMw==",
+ "version": "3.13.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.13.0.tgz",
+ "integrity": "sha512-gbZL+qs+6FPitR/abAramth4lqz/drEzXwzIDF6p6WyajF805mjyAgZin1/3mQygSE5BwJNDU7jMUSGRvgFyTw==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/utils": "^3.14.0",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/utils": "^3.14.1",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/label": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.4.2.tgz",
- "integrity": "sha512-ctygLrA4yY31440UMZdw21Iz4ogXupLJB5xpTU1KFXcvybSu+H3gvVCOJu1jFwR12bTKnkVogTWT6wwVYH2nFw==",
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.4.3.tgz",
+ "integrity": "sha512-g8NSHQKha6xOpR0cUQ6cmH/HwGJdebEbyy+c1I6VeW6me8lSF47xLnybnA6LBV4x9hJqkST6rfL/oPaBMCEKNA==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/utils": "^3.14.0",
- "@react-types/label": "^3.7.0",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/utils": "^3.14.1",
+ "@react-types/label": "^3.7.1",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/link": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.3.4.tgz",
- "integrity": "sha512-Op0usCd5SAg5OHkCl1+TYbsvT/wWhqadd/3Pi0VD0kKmaSy4GhUNJkTo8n0hS2k3vIq+qRq7zwnON2h5eLVkHA==",
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.3.5.tgz",
+ "integrity": "sha512-BbyoJ73IAQcQMYWFxhV/zJWYFlx4Edprm6xfBZKMEBrEpUcvBwe/X3QsCQmRXZ8fJodMjQ9SdQPyue1yi8Ksrw==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/focus": "^3.9.0",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/utils": "^3.14.0",
- "@react-types/link": "^3.3.4",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/focus": "^3.10.0",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-types/link": "^3.3.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/listbox": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.7.0.tgz",
- "integrity": "sha512-XUWg+ll9LmzJB3WzAklwJY5A/YuRTWd5UM/WSL34aV1O6P/IdLW697Xvr6fpHWMPtkIUeNB6teAAT2M98iWx5Q==",
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.7.1.tgz",
+ "integrity": "sha512-vKovd+u8F7jdcogZeDPtm89gn390cR0xpMbOoyPzbACOdST43SYexDXWV4Ww/M2YWkdJxT3jZ576NeifcfO2MA==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/focus": "^3.9.0",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/label": "^3.4.2",
- "@react-aria/selection": "^3.11.0",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/collections": "^3.4.4",
- "@react-stately/list": "^3.5.4",
- "@react-types/listbox": "^3.3.4",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/focus": "^3.10.0",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/label": "^3.4.3",
+ "@react-aria/selection": "^3.12.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/collections": "^3.5.0",
+ "@react-stately/list": "^3.6.0",
+ "@react-types/listbox": "^3.3.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/live-announcer": {
@@ -3237,574 +3255,584 @@
}
},
"@react-aria/menu": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.6.2.tgz",
- "integrity": "sha512-uBZHGuFAtOdoocBVZzoBpZQFJmkt5axlEUKjBgh2BuR5JX8aZiSxyKnfgAeb3aDEi9PZpOp6RWxHzOMBRg4TsA==",
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.7.0.tgz",
+ "integrity": "sha512-dCSg67G3vEXOovZyaojZXvcq19MLqual6oTSJC9WhNS/SR0AuNPbwMbD34a/b1Je73ro5bzjIbmQPyt/i3XaCA==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/overlays": "^3.11.0",
- "@react-aria/selection": "^3.11.0",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/collections": "^3.4.4",
- "@react-stately/menu": "^3.4.2",
- "@react-stately/tree": "^3.3.4",
- "@react-types/button": "^3.6.2",
- "@react-types/menu": "^3.7.2",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/overlays": "^3.12.0",
+ "@react-aria/selection": "^3.12.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/collections": "^3.5.0",
+ "@react-stately/menu": "^3.4.3",
+ "@react-stately/tree": "^3.4.0",
+ "@react-types/button": "^3.7.0",
+ "@react-types/menu": "^3.7.3",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/meter": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.3.2.tgz",
- "integrity": "sha512-qgL+DXF8As6G7+LkVAeccoLUfuJzjRPUn6mK3JHNmTnBypTk7z57cu9JEXCsYCz3H4j2fhLoQyuU2xSF13OM7g==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.3.3.tgz",
+ "integrity": "sha512-6pe6Gl5e9yZsDkFsdpQNx9eAqSKIjwcOJ4/mLgTiCVgZWtWYuxprLAPiN7OyCnSYPfLp36wkIrMkk82xfBYb9Q==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/progress": "^3.3.2",
- "@react-types/meter": "^3.2.4",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/progress": "^3.3.3",
+ "@react-types/meter": "^3.2.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/numberfield": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.3.2.tgz",
- "integrity": "sha512-TYDFtREKXsfw46aeZmddsXrznUJuyN1ru6+zL6rJ1XZ6v6srWJx6KigoJhyuji4ZKMn5/dMoJ10YIem5hJ6zRg==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.3.3.tgz",
+ "integrity": "sha512-DxVhoD+RsgN385f2OsOg5J1RYo1yZt0AUfIJdHn7FDWYCxruUVmEhzy1ovDxpXkseK0Gh3IdkfHvOfgiqE+pXg==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/interactions": "^3.12.0",
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/interactions": "^3.13.0",
"@react-aria/live-announcer": "^3.1.1",
- "@react-aria/spinbutton": "^3.1.4",
- "@react-aria/textfield": "^3.7.2",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/numberfield": "^3.2.2",
- "@react-types/button": "^3.6.2",
- "@react-types/numberfield": "^3.3.4",
- "@react-types/shared": "^3.15.0",
- "@react-types/textfield": "^3.6.0"
+ "@react-aria/spinbutton": "^3.2.0",
+ "@react-aria/textfield": "^3.8.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/numberfield": "^3.3.0",
+ "@react-types/button": "^3.7.0",
+ "@react-types/numberfield": "^3.3.5",
+ "@react-types/shared": "^3.16.0",
+ "@react-types/textfield": "^3.6.1"
}
},
"@react-aria/overlays": {
- "version": "3.11.0",
- "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.11.0.tgz",
- "integrity": "sha512-NqLqxSiEW9AuUPcEHCIp2lHH1moNxlkP0CkuUMkT2/T5MCPm/Iq+uD53VSR+NyeCWU/aGH3ykj2kq9NSITJkOA==",
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.12.0.tgz",
+ "integrity": "sha512-jsGeLTB3W3S5Cf2zDTxh1ODTNkE69miFDOGMB0VLwS1GWDwDvytcTRpBKY9JBrxad+4u0x6evnah7IbJ61qNBA==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/focus": "^3.9.0",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/ssr": "^3.3.0",
- "@react-aria/utils": "^3.14.0",
- "@react-aria/visually-hidden": "^3.5.0",
- "@react-stately/overlays": "^3.4.2",
- "@react-types/button": "^3.6.2",
- "@react-types/overlays": "^3.6.4",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/focus": "^3.10.0",
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/ssr": "^3.4.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-aria/visually-hidden": "^3.6.0",
+ "@react-stately/overlays": "^3.4.3",
+ "@react-types/button": "^3.7.0",
+ "@react-types/overlays": "^3.6.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/progress": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.3.2.tgz",
- "integrity": "sha512-k69fSth/9hAOtaTkoPUlw99bxLcyyNnXBEsihPLLhJAydpLZPW+zNLqFCVhylDMZM/Fw3bLSfWelOwRVNzH/0w==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.3.3.tgz",
+ "integrity": "sha512-yRE9fBfbjSdyWHWeQ4HqEURAT8foa9drGCJIKnMUx08dEsPAXvdh9tvnAvr1kbJnDlZxVwhlbTyFCwB+E2Mfag==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/label": "^3.4.2",
- "@react-aria/utils": "^3.14.0",
- "@react-types/progress": "^3.2.4",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/label": "^3.4.3",
+ "@react-aria/utils": "^3.14.1",
+ "@react-types/progress": "^3.2.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/radio": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.4.0.tgz",
- "integrity": "sha512-DUccHQxfI0PikXXQKarh/hLS/G+ZzfdQ00/sd57jzWsuRyukb+WywQhud29p5uO3wT33/MH9LZgSmb9dlvfabQ==",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.4.1.tgz",
+ "integrity": "sha512-a1JFxFOiExX1ZRGBE31LW4dgc3VmW2v3upJ5snGQldC83o0XxqNavmOef+fMsIRV0AQA/mcxAJVNQ0n9SfIiUQ==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/focus": "^3.9.0",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/label": "^3.4.2",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/radio": "^3.6.0",
- "@react-types/radio": "^3.3.0",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/focus": "^3.10.0",
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/label": "^3.4.3",
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/radio": "^3.6.1",
+ "@react-types/radio": "^3.3.1",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/searchfield": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.4.2.tgz",
- "integrity": "sha512-6AO8cG0LH+WAdlKZAZVOg+txLVBIfxfo+4uoxbaJz4YACJNMAmHdRN6xEH/utcx4vncLqPRM1PeqYlRQLYA8uQ==",
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.4.3.tgz",
+ "integrity": "sha512-8WISGEyXWyVKRql4oVc9T5eNx8jTUwDQy0+ZSO5qGXuiZtlyeTJdWMrHN8I4SUdWEoF9c7R0eLhl0Twefnjkiw==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/textfield": "^3.7.2",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/searchfield": "^3.3.2",
- "@react-types/button": "^3.6.2",
- "@react-types/searchfield": "^3.3.4",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/textfield": "^3.8.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/searchfield": "^3.3.3",
+ "@react-types/button": "^3.7.0",
+ "@react-types/searchfield": "^3.3.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/select": {
- "version": "3.8.2",
- "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.8.2.tgz",
- "integrity": "sha512-a2lUvB9k54sfoiqyTcl+rq9GKqwcF8RMapaYxaE0VQmUVUl/hk31mTMo5y3giDCpMlrVO0jxve3nZe9YyUOOvg==",
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.8.3.tgz",
+ "integrity": "sha512-EkbzbpSEkq0oSmFSeOJskjPzopqmKQ2VxsEaJHL8RebVdJiNxp5kSaBOaH1KxZI9DgrzHQNSRKYJaSJ1pUTfbw==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/label": "^3.4.2",
- "@react-aria/listbox": "^3.7.0",
- "@react-aria/menu": "^3.6.2",
- "@react-aria/selection": "^3.11.0",
- "@react-aria/utils": "^3.14.0",
- "@react-aria/visually-hidden": "^3.5.0",
- "@react-stately/select": "^3.3.2",
- "@react-types/button": "^3.6.2",
- "@react-types/select": "^3.6.4",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/label": "^3.4.3",
+ "@react-aria/listbox": "^3.7.1",
+ "@react-aria/menu": "^3.7.0",
+ "@react-aria/selection": "^3.12.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-aria/visually-hidden": "^3.6.0",
+ "@react-stately/select": "^3.3.3",
+ "@react-types/button": "^3.7.0",
+ "@react-types/select": "^3.6.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/selection": {
- "version": "3.11.0",
- "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.11.0.tgz",
- "integrity": "sha512-2Qcv0PxXqOrYYT1oL+TOaB+lE/jhIPzVEPHVmf8HYzEMP5WBYP8Q+R9no5s8x++b1W0DsbUVwmk9szY48O9Bmw==",
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.12.0.tgz",
+ "integrity": "sha512-Akzx5Faxw+sOZFXLCOw6OddDNFbP5Kho3EP6bYJfd2pzMkBc8/JemC/YDrtIuy8e9x6Je9HHSZqtKjwiEaXWog==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/focus": "^3.9.0",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/collections": "^3.4.4",
- "@react-stately/selection": "^3.11.0",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/focus": "^3.10.0",
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/collections": "^3.5.0",
+ "@react-stately/selection": "^3.11.1",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/separator": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.2.4.tgz",
- "integrity": "sha512-uB2AEA6UJ+lnBvARFcmT4FRXNDfbgaZYGfwPZbEP4B9brp0tWEmL0MEI2tWF/XvXAzOD8AopweqH/u33s6aq8w==",
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.2.5.tgz",
+ "integrity": "sha512-WJhqvUqMxxs18Qn8kGIdx7NCe/yoHev6w0TCxxcZMf/crJKWdSunv3YpbcQW67loBTRo1093RqhacPtXoRzQvg==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/utils": "^3.14.0",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/utils": "^3.14.1",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/slider": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.2.2.tgz",
- "integrity": "sha512-jSzCEcHJEhLoirjJed1u9gr4WTKvZRVjgcpfTfYeV+wMDlINBawxglJ6zBUsv6OW7REPCS+N7TGxX714+oR6Hw==",
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.2.3.tgz",
+ "integrity": "sha512-y2Sx2YExcWcg15Hzhxhqccpylq5xm2RlswnhBxzwY+ms8ZR4MK6UNL64wbCmOBLxhzjgi5mTWSB+OmVCZk5H4A==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/focus": "^3.9.0",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/label": "^3.4.2",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/radio": "^3.6.0",
- "@react-stately/slider": "^3.2.2",
- "@react-types/radio": "^3.3.0",
- "@react-types/shared": "^3.15.0",
- "@react-types/slider": "^3.3.0"
+ "@react-aria/focus": "^3.10.0",
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/label": "^3.4.3",
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/radio": "^3.6.1",
+ "@react-stately/slider": "^3.2.3",
+ "@react-types/radio": "^3.3.1",
+ "@react-types/shared": "^3.16.0",
+ "@react-types/slider": "^3.3.1"
}
},
"@react-aria/spinbutton": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.1.4.tgz",
- "integrity": "sha512-dVtjpeHaE+l8pJWn5lmMquyzOJi2y+yyinPGb2bpx++e692ZgeZGDckif5qE4A9nlvIOIB4afbWMs0UC1fiX0w==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.2.0.tgz",
+ "integrity": "sha512-6pbfC/uOz1k+D6NL7l/o855yr3hMBaiLdZpKdGu4N/vybnyS5ZcjX9Y1VswBZjYgvZ3Ojp8fSu/buZMU/zAISw==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/i18n": "^3.6.1",
+ "@react-aria/i18n": "^3.6.2",
"@react-aria/live-announcer": "^3.1.1",
- "@react-aria/utils": "^3.14.0",
- "@react-types/button": "^3.6.2",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/utils": "^3.14.1",
+ "@react-types/button": "^3.7.0",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-aria/ssr": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.3.0.tgz",
- "integrity": "sha512-yNqUDuOVZIUGP81R87BJVi/ZUZp/nYOBXbPsRe7oltJOfErQZD+UezMpw4vM2KRz18cURffvmC8tJ6JTeyDtaQ==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.4.0.tgz",
+ "integrity": "sha512-qzuGk14/fUyUAoW/EBwgFcuMkVNXJVGlezTgZ1HovpCZ+p9844E7MUFHE7CuzFzPEIkVeqhBNIoIu+VJJ8YCOA==",
"requires": {
"@babel/runtime": "^7.6.2"
}
},
"@react-aria/switch": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.2.4.tgz",
- "integrity": "sha512-nXEzXmSs+vTTDyI8YmJVVDEyxSmjkXCdMlPNZJfCO3Bf8PV7V1dt3brKWD7MYOnUKUqzjZU61+A9eC2TG5hkfw==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.3.0.tgz",
+ "integrity": "sha512-A/6G9HjZYPvCvaUbrghdCH0rkQfaNbayruQJ+PWGITZbxhYZAUUW7wkxvxLpf3iX2K5+UtNNThxlEMcplEkVrw==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/toggle": "^3.4.0",
- "@react-stately/toggle": "^3.4.2",
- "@react-types/switch": "^3.2.4"
+ "@react-aria/toggle": "^3.4.1",
+ "@react-stately/toggle": "^3.4.3",
+ "@react-types/switch": "^3.2.5"
}
},
"@react-aria/table": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.5.0.tgz",
- "integrity": "sha512-oYcsIEYbbjAzojRWUsAdtfxPzlEKBmk6o4svDHnGqC9HSj8/yExn8b8RB0veDP7E+5IdO62pUwUy48jBwWu2uw==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.6.0.tgz",
+ "integrity": "sha512-hwq+5iwXVSirmi9Lr0v5wDOv7uz7UD+BUNFXP5d9nknrAKzVYDfpuNpz/Bbhpczp9R89VRBcFvcKJ3cWhESYnw==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/focus": "^3.9.0",
- "@react-aria/grid": "^3.5.0",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/interactions": "^3.12.0",
+ "@react-aria/focus": "^3.10.0",
+ "@react-aria/grid": "^3.5.1",
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/interactions": "^3.13.0",
"@react-aria/live-announcer": "^3.1.1",
- "@react-aria/selection": "^3.11.0",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/table": "^3.5.0",
- "@react-stately/virtualizer": "^3.3.1",
- "@react-types/checkbox": "^3.4.0",
- "@react-types/grid": "^3.1.4",
- "@react-types/shared": "^3.15.0",
- "@react-types/table": "^3.3.2"
+ "@react-aria/selection": "^3.12.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/table": "^3.6.0",
+ "@react-stately/virtualizer": "^3.4.0",
+ "@react-types/checkbox": "^3.4.1",
+ "@react-types/grid": "^3.1.5",
+ "@react-types/shared": "^3.16.0",
+ "@react-types/table": "^3.3.3"
}
},
"@react-aria/tabs": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.3.2.tgz",
- "integrity": "sha512-ONRJDWqXdcX6rc5AWqbtSMMgnBeuKSIy8FOz77c5v2teIPR9uwwgwMsyjp4gJoGfa11yKOb89ZZBxIUHxjdIxQ==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.3.3.tgz",
+ "integrity": "sha512-0GeArynZzWQuNXIp1DUexNdfFC0vnTLAhN9cd3ZJDc7jbAvwy5HB363ElYqfTqNgvrtMF1QTJo9tY6KmYWxLeg==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/focus": "^3.9.0",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/selection": "^3.11.0",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/list": "^3.5.4",
- "@react-stately/tabs": "^3.2.2",
- "@react-types/shared": "^3.15.0",
- "@react-types/tabs": "^3.1.4"
+ "@react-aria/focus": "^3.10.0",
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/selection": "^3.12.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/list": "^3.6.0",
+ "@react-stately/tabs": "^3.2.3",
+ "@react-types/shared": "^3.16.0",
+ "@react-types/tabs": "^3.1.5"
}
},
"@react-aria/textfield": {
- "version": "3.7.2",
- "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.7.2.tgz",
- "integrity": "sha512-GSzjSEMdLMcQmjxOKmTaphbfMan91J/VhYGkFYEYAwcSoVMjBsIl8VUOjZQ3+7LowQ0mOS4gE7ADigRj1w2f/Q==",
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.8.0.tgz",
+ "integrity": "sha512-PRU8q1gK0auDMH1YekJScZ4EZMrLrL3QJEHMNDdp2GDQlVISbPeTRy2On20DXfiG8GlXAtCWj9BiZhK2OE71DQ==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/focus": "^3.9.0",
- "@react-aria/label": "^3.4.2",
- "@react-aria/utils": "^3.14.0",
- "@react-types/shared": "^3.15.0",
- "@react-types/textfield": "^3.6.0"
+ "@react-aria/focus": "^3.10.0",
+ "@react-aria/label": "^3.4.3",
+ "@react-aria/utils": "^3.14.1",
+ "@react-types/shared": "^3.16.0",
+ "@react-types/textfield": "^3.6.1"
}
},
"@react-aria/toggle": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.4.0.tgz",
- "integrity": "sha512-kQ/CuStB64QcQtT5Kovj4cJ234CotH5et77CP9ctsT37w5lc/t4iDWDTJxf2ju9atPeMh+efqsnRY34lhK2cBA==",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.4.1.tgz",
+ "integrity": "sha512-oVcjqsqvvEXW25vm3F2gxF5Csz8vRNKeF7Kc5pxqLrBohqMausChul+/Zisx5qVB4TL0yO3ygjTGbEvfEYQ1qg==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/focus": "^3.9.0",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/toggle": "^3.4.2",
- "@react-types/checkbox": "^3.4.0",
- "@react-types/shared": "^3.15.0",
- "@react-types/switch": "^3.2.4"
+ "@react-aria/focus": "^3.10.0",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/toggle": "^3.4.3",
+ "@react-types/checkbox": "^3.4.1",
+ "@react-types/shared": "^3.16.0",
+ "@react-types/switch": "^3.2.5"
}
},
"@react-aria/tooltip": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.3.2.tgz",
- "integrity": "sha512-k/0/1/bfGp3gZ6JK8giJPgz2bkt+eJigzD5oY4d908KavyJ3nKAZe7hR+0ahT0lj0Z2Xb7M5SZepisk8Kj8LbA==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.3.3.tgz",
+ "integrity": "sha512-EF58SQ70KEfGJQErsELJh1dk3KUDrBFmCEHo6kD1fVEHCqUgdWLkz+TCfkiP8VgFoj4WoE8zSpl3MpgGOQr/Gg==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/focus": "^3.9.0",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/utils": "^3.14.0",
- "@react-stately/tooltip": "^3.2.2",
- "@react-types/shared": "^3.15.0",
- "@react-types/tooltip": "^3.2.4"
+ "@react-aria/focus": "^3.10.0",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-stately/tooltip": "^3.2.3",
+ "@react-types/shared": "^3.16.0",
+ "@react-types/tooltip": "^3.2.5"
}
},
"@react-aria/utils": {
- "version": "3.14.0",
- "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.14.0.tgz",
- "integrity": "sha512-DHgmwNBNEhnb6DEYYAfbt99wprBqJJOBBeIpQ2g3+pxwlw4BZ+v4Qr+rDD0ZibWV0mYzt8zOhZ9StpId7iTF0Q==",
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.14.1.tgz",
+ "integrity": "sha512-+ynP0YlxN02MHVEBaeuTrIhBsfBYpfJn36pZm2t7ZEFbafH8DPaMGZ70ffYZXAESkWzRULXL3e79DheWOFI1qA==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/ssr": "^3.3.0",
+ "@react-aria/ssr": "^3.4.0",
"@react-stately/utils": "^3.5.1",
- "@react-types/shared": "^3.15.0",
+ "@react-types/shared": "^3.16.0",
"clsx": "^1.1.1"
}
},
"@react-aria/visually-hidden": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.5.0.tgz",
- "integrity": "sha512-tF/kCZCGv1yebwgH21cKbhjSV5CmB5/SAHOUM5YkO5V/lIFjaPtywcamIPI8F0JSfrwGF/Z9EqvqBxvIYGRlCA==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.6.0.tgz",
+ "integrity": "sha512-W3Ix5wdlVzh2GY7dytqOAyLCXiHzk3S4jLKSaoiCwPJX9fHE5zMlZwahhDy27V0LXfjmdjBltbwyEZOq4G/Q0w==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/utils": "^3.14.0",
- "@react-types/shared": "^3.15.0",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/utils": "^3.14.1",
+ "@react-types/shared": "^3.16.0",
"clsx": "^1.1.1"
}
},
"@react-stately/calendar": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.0.3.tgz",
- "integrity": "sha512-tpkKXaLbIiwma6TlL1/YapwLUS3ZQt/qN/9k/NRP4vNUSmSanRuOdR+B0xfbnfM2G1sp8VbdQloae9ZJ7ACo2A==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.0.4.tgz",
+ "integrity": "sha512-KaytmQVRqEOoKuLDgrm8RzY7ZHJ24IlDirN4dZj1wBHYt7RkAtwgqyTF/eyhS6/VYegmPhu53GcsSk0I3W+xLQ==",
"requires": {
"@babel/runtime": "^7.6.2",
"@internationalized/date": "^3.0.1",
"@react-stately/utils": "^3.5.1",
- "@react-types/calendar": "^3.0.3",
- "@react-types/datepicker": "^3.1.2",
- "@react-types/shared": "^3.15.0"
+ "@react-types/calendar": "^3.0.4",
+ "@react-types/datepicker": "^3.1.3",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-stately/checkbox": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.3.0.tgz",
- "integrity": "sha512-hYFJzEoreAmUKkcgd3ErDXtEqp65pfawfcygOr/3pe7MUGzl+MaauVUOg6Dh02Bxt+mdSX4mQXbJSfvm+8bmfA==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.3.1.tgz",
+ "integrity": "sha512-r2hL11GF9r2ztUFEhpiVgiXgE+W99tyL1Kt7rOiTZ8/aMBGWwBxOHAdHeqcWFeBgOztXuJsKiDu82necEG4xhA==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-stately/toggle": "^3.4.2",
+ "@react-stately/toggle": "^3.4.3",
"@react-stately/utils": "^3.5.1",
- "@react-types/checkbox": "^3.4.0",
- "@react-types/shared": "^3.15.0"
+ "@react-types/checkbox": "^3.4.1",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-stately/collections": {
- "version": "3.4.4",
- "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.4.4.tgz",
- "integrity": "sha512-gryUYCe6uzqE0ea5frTwOxOPpx/6Z42PRk7KetOh3ddN3Ts0j8XQP08jP1IB/7BC1QidrkHWvDCqGHxRiEjiIg==",
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.5.0.tgz",
+ "integrity": "sha512-3BAMRjJqrka0IGvyK4m3WslqCeiEfQGx7YsXEIgIgMJoLpk6Fi1Eh4CI8coBnl/wcVLiIRMCIvxubwFRWTgzdg==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-stately/combobox": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.2.2.tgz",
- "integrity": "sha512-kUMxgXskrtwdeEExZkJ9CjF4EJANetj+7970cOevCpy6ePCdrvdgO6+0cMrVvSgZeMaMDZXDIbbF7fqA6w0uXQ==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.3.0.tgz",
+ "integrity": "sha512-+9xQW6C4nMcx7M72P4vZdQECa9CqzALTM3HTNAXgdCmfEezhns/m4xGmn4hoN8iw39yYvU8Ffs80rgTFQ+/oFg==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-stately/list": "^3.5.4",
- "@react-stately/menu": "^3.4.2",
- "@react-stately/select": "^3.3.2",
+ "@react-stately/list": "^3.6.0",
+ "@react-stately/menu": "^3.4.3",
+ "@react-stately/select": "^3.3.3",
"@react-stately/utils": "^3.5.1",
- "@react-types/combobox": "^3.5.4",
- "@react-types/shared": "^3.15.0"
+ "@react-types/combobox": "^3.5.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-stately/data": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.7.0.tgz",
- "integrity": "sha512-+u5rKjraR7R6aMMXSDwH61jRRELnGGWr6xMFlk6G9fr8uAmil+AWrv8Dh8nZlJfy5I2hT1d8lbS9j5TRp/QFKg==",
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.8.0.tgz",
+ "integrity": "sha512-TR1kjIar2t94SXH5L0BpNfwkEI39p753C1c8DCPwVw7+aamQ03t4j/hcSChN9Bj4A5ycdKylGhJgxYo/vtdCOw==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-stately/datepicker": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.1.0.tgz",
- "integrity": "sha512-v4tTHw65kOFu1jnj9JWqTLvf8pSABP6K94+bAtg60028AuwPCvJ9MGMU8LDGYGmPBcl1F0qFVo/x5pwKCv3jZQ==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.2.0.tgz",
+ "integrity": "sha512-isFB8jpeiig3vfstWKkaY0cdejG0XT47Q9jZJgsrsEqpMVFBmcvlQQQ3WNqP4yC5c7Mrs3tAscY7WtbPIkDQ4g==",
"requires": {
"@babel/runtime": "^7.6.2",
"@internationalized/date": "^3.0.1",
"@internationalized/string": "^3.0.0",
- "@react-stately/overlays": "^3.4.2",
+ "@react-stately/overlays": "^3.4.3",
"@react-stately/utils": "^3.5.1",
- "@react-types/datepicker": "^3.1.2",
- "@react-types/shared": "^3.15.0"
+ "@react-types/datepicker": "^3.1.3",
+ "@react-types/shared": "^3.16.0"
+ }
+ },
+ "@react-stately/dnd": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.0.0.tgz",
+ "integrity": "sha512-TI3BqheEm9fUhqrMm6RFY6q8DcWfC5O/LK+IgHpQgOBhL+Vk/EwvGnRice1xyMEQKbAXf04WOFiAjZqfurLshQ==",
+ "requires": {
+ "@babel/runtime": "^7.6.2",
+ "@react-stately/selection": "^3.11.1",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-stately/grid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.4.0.tgz",
- "integrity": "sha512-Y7UrmLUAv4wW70Mb9lueawd3KEnYgAS7yNSTJn/TTZpA+6Elx3DDdjXH5pG/JiG1ot740ixOkP8feEpr8qk4bg==",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.4.1.tgz",
+ "integrity": "sha512-IRaqXUQGji87Q+pYYQKJYTuUtgAjoDQaMOlvpvB9HlyK5faXq0H1tJsYAeVYpH0synfzCnr7CN0J6kSTbeL1jA==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-stately/selection": "^3.11.0",
- "@react-types/grid": "^3.1.4",
- "@react-types/shared": "^3.15.0"
+ "@react-stately/selection": "^3.11.1",
+ "@react-types/grid": "^3.1.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-stately/layout": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-3.8.0.tgz",
- "integrity": "sha512-0cUlkjY42YaGa0u8Z8CgNx8PIsm06zr0cr3HESCfHmvuOOR2q707PcqAd6kKuF/4NjHU4MVfuGp5z9Sm/lnjlA==",
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-3.9.0.tgz",
+ "integrity": "sha512-uFdK98hIspBV9/RMW/JJaViuWyISdcm5GFplB361JZkhDaYblzomvkoX5Y1dKO5uH/BOjdM2AB5vfCb21oKEhg==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-stately/virtualizer": "^3.3.1",
- "@react-types/grid": "^3.1.4",
- "@react-types/shared": "^3.15.0",
- "@react-types/table": "^3.3.2"
+ "@react-stately/virtualizer": "^3.4.0",
+ "@react-types/grid": "^3.1.5",
+ "@react-types/shared": "^3.16.0",
+ "@react-types/table": "^3.3.3"
}
},
"@react-stately/list": {
- "version": "3.5.4",
- "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.5.4.tgz",
- "integrity": "sha512-AB0r2RevKVAP2AOQM1JRuCVjS2UUxMJFshA53t8pV+OSVWeyirYccsMR49mWwU60ZnxYqBWVMN+Pl7NTPTnT8w==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.6.0.tgz",
+ "integrity": "sha512-sah2JAiqlSZhg1tQBSv9866LeAJISmosOFsOsVZPfyfAewuCksA+8OHrFtbKmMyzU5MbrmpbR8v2zZH7c1CLdg==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-stately/collections": "^3.4.4",
- "@react-stately/selection": "^3.11.0",
+ "@react-stately/collections": "^3.5.0",
+ "@react-stately/selection": "^3.11.1",
"@react-stately/utils": "^3.5.1",
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-stately/menu": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.4.2.tgz",
- "integrity": "sha512-vFC8EloVEcqf6sgiP6ABIkC41ytjoJiGtj7Ws5OS7PvZNyxxDgJr4V0O3Pxd1T0AjlHCloBbojnvoTRwZiSr/A==",
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.4.3.tgz",
+ "integrity": "sha512-ZWym6XQSLaC5uFUTZl6+mreEgzc8EUG6ElcnvdXYcH4DWUfswhLxCi3IdnG0lusWEi4NcHbZ2prEUxpT8VKqrg==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-stately/overlays": "^3.4.2",
+ "@react-stately/overlays": "^3.4.3",
"@react-stately/utils": "^3.5.1",
- "@react-types/menu": "^3.7.2",
- "@react-types/shared": "^3.15.0"
+ "@react-types/menu": "^3.7.3",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-stately/numberfield": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.2.2.tgz",
- "integrity": "sha512-5Q71I8li7nvxVS2z7BORFp/z4YY3dphjdLkXExDsJbbEXhXtCQWm2zZuctwKxnscFm/CRRbxaclOt2BAAoLcjw==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.3.0.tgz",
+ "integrity": "sha512-UYw8KpLEG7F6U3lHvrqWLdyiWmEeYwvwLlUPErIy+/heoBUW22FRjTIfOANmvVQoeSmd8aGIBWbCVRrbjU6Q5A==",
"requires": {
"@babel/runtime": "^7.6.2",
"@internationalized/number": "^3.1.1",
"@react-stately/utils": "^3.5.1",
- "@react-types/numberfield": "^3.3.4",
- "@react-types/shared": "^3.15.0"
+ "@react-types/numberfield": "^3.3.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-stately/overlays": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.4.2.tgz",
- "integrity": "sha512-UTCnn0aT+JL4ZhYPQYUWHwhmuR2T3vKTFUEZeZN9sTuDCctg08VfGoASJx8qofqkLwYJXeb8D5PMhhTDPiUQPw==",
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.4.3.tgz",
+ "integrity": "sha512-WZCr3J8hj0cplQki1OVBR3MXg2l9V017h15Y2h+TNduWvnKH0yYOE/XfWviAT4KUP0LYoQfCnZ7XMHv+UI+8JA==",
"requires": {
"@babel/runtime": "^7.6.2",
"@react-stately/utils": "^3.5.1",
- "@react-types/overlays": "^3.6.4"
+ "@react-types/overlays": "^3.6.5"
}
},
"@react-stately/radio": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.6.0.tgz",
- "integrity": "sha512-hzNwIapDSnbk5mCim/AgHQTtHRgy2QiW95okfVnGflzO7nnws8WH/s2Va4f7UupWObPv8XTqHADUEng86mVBJA==",
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.6.1.tgz",
+ "integrity": "sha512-Hcg2qgvR7ekKMzVKeGby1FgMk3Sw4iDcEY/K1Y6j7UmGjM2HtQOq614tWQSQeGB25pp5I2jAWlparJeX0vY/oA==",
"requires": {
"@babel/runtime": "^7.6.2",
"@react-stately/utils": "^3.5.1",
- "@react-types/radio": "^3.3.0",
- "@react-types/shared": "^3.15.0"
+ "@react-types/radio": "^3.3.1",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-stately/searchfield": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.3.2.tgz",
- "integrity": "sha512-4MTpoqE1M/3aWb/Feau0QpQcjOEK3i8apyA7g9ltY5OtcwHMXDXXk9i3Pg4itk2CXqOY2LuJ+vHCctSnEAm9vw==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.3.3.tgz",
+ "integrity": "sha512-pQxvFP05gPU2pcm+RuKg5Q8TuYcQ+SpxRwX4i4awwL/wSZTG7VmFkQpOaQK5wU558UXydMnK3QfifmCBV7IN9A==",
"requires": {
"@babel/runtime": "^7.6.2",
"@react-stately/utils": "^3.5.1",
- "@react-types/searchfield": "^3.3.4",
- "@react-types/shared": "^3.15.0"
+ "@react-types/searchfield": "^3.3.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-stately/select": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.3.2.tgz",
- "integrity": "sha512-/C9fW7HT+V9XnmSTiZZqH5cn+ifY9vdXvIKDbUyna98lFHtDgn7i/UvD5edunOGY0qqSMIO3kJ6/BiNg+gpn6Q==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.3.3.tgz",
+ "integrity": "sha512-HTKKwx5tq21G2r3Q0CVC5v2Amftj1+DvBlFSRIC9ZqWyxeQg//HotX0GpYHzEEyj5hB1GjBklKJ4UVejqNbb0w==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-stately/collections": "^3.4.4",
- "@react-stately/list": "^3.5.4",
- "@react-stately/menu": "^3.4.2",
- "@react-stately/selection": "^3.11.0",
+ "@react-stately/collections": "^3.5.0",
+ "@react-stately/list": "^3.6.0",
+ "@react-stately/menu": "^3.4.3",
+ "@react-stately/selection": "^3.11.1",
"@react-stately/utils": "^3.5.1",
- "@react-types/select": "^3.6.4",
- "@react-types/shared": "^3.15.0"
+ "@react-types/select": "^3.6.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-stately/selection": {
- "version": "3.11.0",
- "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.11.0.tgz",
- "integrity": "sha512-cBgDzH+AY+bMEROJbcZFdhbMk0vgiwyqBB8ZKLtCL7EOHs2xeynTAohRM+/t27U/tF91o4qHPFo67Tkxrd16Bg==",
+ "version": "3.11.1",
+ "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.11.1.tgz",
+ "integrity": "sha512-UHB6/eH5NJ+Q70G+pmnxohHfR3bh0szT+lOlWPj7Mh76WPu9bu07IHKLEob6PSzyJ81h7+Ysk3hdIgS3TewGog==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-stately/collections": "^3.4.4",
+ "@react-stately/collections": "^3.5.0",
"@react-stately/utils": "^3.5.1",
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-stately/slider": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.2.2.tgz",
- "integrity": "sha512-LIgS+6L9PSUanj0stWql5KEEdm28LBTscm3cxBq177aaKhoKu+MvplItmoMeZjXnjwpRBliiZ7hWAJHyCDFE+g==",
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.2.3.tgz",
+ "integrity": "sha512-l5ezt0+Gq67QO/J5u6YX00mzahRrANSXK/wBx7TVeIxqOAPOG9zc8M8O9Pa5fZB6lYAVpHMbV/aqLSkyy8ImTg==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/utils": "^3.14.0",
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/utils": "^3.14.1",
"@react-stately/utils": "^3.5.1",
- "@react-types/shared": "^3.15.0",
- "@react-types/slider": "^3.3.0"
+ "@react-types/shared": "^3.16.0",
+ "@react-types/slider": "^3.3.1"
}
},
"@react-stately/table": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.5.0.tgz",
- "integrity": "sha512-C0HFfKMCOomqPtRCPs85AtoJGPnGu9mzFfwksFxAssdIatw3t66h5SJS0vSSql7Ku9h70scmvJR+nIOckx0IeA==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.6.0.tgz",
+ "integrity": "sha512-B6zamfI06j3+kxlMm1mgn+JaQv5CdXgYsMLo96nrU+XRbn2WzAikc2w+XHmfnqlKAcm+PtcDjrshDOCMioP2QA==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-stately/collections": "^3.4.4",
- "@react-stately/grid": "^3.4.0",
- "@react-stately/selection": "^3.11.0",
- "@react-types/grid": "^3.1.4",
- "@react-types/shared": "^3.15.0",
- "@react-types/table": "^3.3.2"
+ "@react-stately/collections": "^3.5.0",
+ "@react-stately/grid": "^3.4.1",
+ "@react-stately/selection": "^3.11.1",
+ "@react-types/grid": "^3.1.5",
+ "@react-types/shared": "^3.16.0",
+ "@react-types/table": "^3.3.3"
}
},
"@react-stately/tabs": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.2.2.tgz",
- "integrity": "sha512-7rG93LrsAV5q3X0kXzMnxab642768zzkSxP7u/qBObJJldg8cpK2yRmDTxpFuz0goB1qiswxsyUrA4ddIUgd+g==",
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.2.3.tgz",
+ "integrity": "sha512-23GX5iBX1IPY1sD4nq8sTgCfaCt+P2nORYnBWA01+iZoUX/g3BG3+3S2SVL1J7esmcapGnXNapUa2zEbf3aFRg==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-stately/list": "^3.5.4",
+ "@react-stately/list": "^3.6.0",
"@react-stately/utils": "^3.5.1",
- "@react-types/tabs": "^3.1.4"
+ "@react-types/tabs": "^3.1.5"
}
},
"@react-stately/toggle": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.4.2.tgz",
- "integrity": "sha512-+pO13Ap/tj4optu6VjQrEAaAoZvJAEwarMUaZvrkc0kdvMTNPdiT/2vhN32yvsSW0ssuFqToa3jMrTylCbpo8w==",
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.4.3.tgz",
+ "integrity": "sha512-HsJLMa5d9i6SWyDIahkJExkanXZek86//hirsgSU0IvY7YJx33Wek8UwHE5Vskp39DAOu18QMz2GrAngnUErYQ==",
"requires": {
"@babel/runtime": "^7.6.2",
"@react-stately/utils": "^3.5.1",
- "@react-types/checkbox": "^3.4.0",
- "@react-types/shared": "^3.15.0"
+ "@react-types/checkbox": "^3.4.1",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-stately/tooltip": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.2.2.tgz",
- "integrity": "sha512-Y9itW2PDRWi/FdMYhpAC/kmXx22mRElADbM1AqKkMkWiJHhTbn2Cr5ie1uZcm+SMb5Dq2ypMV5rUzuiCVVB8/g==",
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.2.3.tgz",
+ "integrity": "sha512-RWCcqn6iz1IcOXX+TiXBql2kI5hgDlf49DiGZJqSGmNQujX1FVZ1uqn9yHpdh+/TZPZ7JeMvQu3S5lA+x4ehPw==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-stately/overlays": "^3.4.2",
+ "@react-stately/overlays": "^3.4.3",
"@react-stately/utils": "^3.5.1",
- "@react-types/tooltip": "^3.2.4"
+ "@react-types/tooltip": "^3.2.5"
}
},
"@react-stately/tree": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.3.4.tgz",
- "integrity": "sha512-CBgXvwa9qYBsJuxrAiVgGnm48eSxLe/6OjPMwH1pWf4s383Mx73MbbN4fS0oWDeXBVgdqz5/Xg/p8nvPIvl3WQ==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.4.0.tgz",
+ "integrity": "sha512-MqxSABMzykwI6Wj1B7+jBcCoYc0b05CueRTQDyoL+PfVhnV0SzOH6P84UPD+FHlz8x3RG/2hTTmLr4A8McO2nQ==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-stately/collections": "^3.4.4",
- "@react-stately/selection": "^3.11.0",
+ "@react-stately/collections": "^3.5.0",
+ "@react-stately/selection": "^3.11.1",
"@react-stately/utils": "^3.5.1",
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-stately/utils": {
@@ -3816,230 +3844,230 @@
}
},
"@react-stately/virtualizer": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.3.1.tgz",
- "integrity": "sha512-1bjvrLLto3TewJRfe4bCrRKYUAdE6lPB9fn3kQhpxbWb4KW1Xl7ar/waL7JDzpwxTBbwzbxCS6nL03YxSt5tIw==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.4.0.tgz",
+ "integrity": "sha512-Yy5RKlt6W/1+qjJAVHxPJA0RgpN3KNHcSpnFHdus2OuEvylSXZ2kqwflj97Ao4XfNSpDIs4NQS/eOq+mpZlNqQ==",
"requires": {
"@babel/runtime": "^7.6.2",
- "@react-aria/utils": "^3.14.0",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/utils": "^3.14.1",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/breadcrumbs": {
- "version": "3.4.4",
- "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.4.4.tgz",
- "integrity": "sha512-OddZiWGQbR7IVrWaBrBIDxi0it7yIWz5Phzh2acMeK7tu9NIZPBfPz08+dLpvU4S7nCEprfoIHek+wBLmizNMw==",
+ "version": "3.4.5",
+ "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.4.5.tgz",
+ "integrity": "sha512-5DXV6qW6Orronu1D9Op903m+lGzPajzJnsW6ygEiv6kjRutY33gIl1ePoQKoBQzNimtFs3uE4YLOw7nLzry1qg==",
"requires": {
- "@react-types/link": "^3.3.4",
- "@react-types/shared": "^3.15.0"
+ "@react-types/link": "^3.3.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/button": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.6.2.tgz",
- "integrity": "sha512-qgrYT6yiGVuZSPbzeDT6kTREQVxzJ9p5chV+JX7G5Rpjl2vyUDkEhZ5V/AHLKguBALgFaWJvjtwejHQ7FtycTw==",
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.7.0.tgz",
+ "integrity": "sha512-81BQO3QxSgF9PTXsVozNdNCKxBOB1lpbCWocV99dN1ws9s8uaYw8pmJJZ0LJKLiOsIECQ/3QrhQjmWTDW/qTug==",
"requires": {
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/calendar": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.0.3.tgz",
- "integrity": "sha512-W1tj21G2X8w6ZQQISLjTpVBon4D4oyZXjfrGOS5dwiWt7v7oIstalHYK6RD/Uw5feZEatfzNg6gE5/0UbGw2RA==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.0.4.tgz",
+ "integrity": "sha512-0hKaaEil2XbdUESQe9Yg2uLVNvNcFHVzXN6KoQHGBPnpWlkwa24ufKiX27mAWOAoce0nEXlVBG1H9C/kwLMcMw==",
"requires": {
"@internationalized/date": "^3.0.1",
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/checkbox": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.4.0.tgz",
- "integrity": "sha512-ZDqbtAYWWSGPjL4ydinaWHrD65Qft9yEGA6BCKQTxdJCgxiXxgGkA3pI7Sxwk+OulR+O0CYJ1JROExM9cSJyyQ==",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.4.1.tgz",
+ "integrity": "sha512-kDMpy9SntjGQ7x00m5zmW8GENPouOtyiDgiEDKsPXUr2iYqHsNtricqVyG9S9+6hqpzuu8BzTcvZamc/xYjzlg==",
"requires": {
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/combobox": {
- "version": "3.5.4",
- "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.5.4.tgz",
- "integrity": "sha512-boVrxvARZBuhZSmhcaShty/JXaJRKNm3fx0zKcqyfB8iFpszltMfv2w23cRzc8BVA5bA6RRTsiKf8hEjkqFnxg==",
+ "version": "3.5.5",
+ "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.5.5.tgz",
+ "integrity": "sha512-gpDo/NTQFd5IfCZoNnG16N4/JfvwXpZBNc15Kn7bF+NcpSDhDpI26BZN4mvK4lljKCheD4VrEl9/3PtImCg7cA==",
"requires": {
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/datepicker": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.1.2.tgz",
- "integrity": "sha512-LcWVA1Dgp/T8bq/Yav1CuP0z7/7vEAAdR1soZr0hMl7yV7691jw2pgCZMVi7j5DMjhtxiqzo9ZCfuu/TiC9jzQ==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.1.3.tgz",
+ "integrity": "sha512-5ZsCU/quVXMCQd3T9yLYKOviSghBaSx/vqzJDsDGimyFRAxd4n95PRl8SjlGjVf6lR0WSihCbcXB/D+b8/RJIA==",
"requires": {
"@internationalized/date": "^3.0.1",
- "@react-types/overlays": "^3.6.4",
- "@react-types/shared": "^3.15.0"
+ "@react-types/overlays": "^3.6.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/dialog": {
- "version": "3.4.4",
- "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.4.4.tgz",
- "integrity": "sha512-mBaoQn+2nd14j0WSTfqGMb8dfG6Nak4+S9HqbJeP6UjKfwnmF8aXQ/Z3EYPNcwwDB+fNYStPagxRdBeqJ1GK4g==",
+ "version": "3.4.5",
+ "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.4.5.tgz",
+ "integrity": "sha512-FkxZAYNRWkZVH5rjlw6qyQ/SpoGcYtNI/JQvn1H/xtZy/OJh2b2ERxGWv5x0RItGSeyATdSwFO1Qnf1Kl2K02A==",
"requires": {
- "@react-types/overlays": "^3.6.4",
- "@react-types/shared": "^3.15.0"
+ "@react-types/overlays": "^3.6.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/grid": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.1.4.tgz",
- "integrity": "sha512-i9f2VEnlex5BFV/AdSUGg71xoukn2i/XT2VLxUXUagy23gFxKJk9Xr3BT9bw+pRRLPwm/Ib+h9ELUdgi8lUAKA==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.1.5.tgz",
+ "integrity": "sha512-KiEywsOJ+wdzLmJerAKEMADdvdItaLfhdo3bFfn1lgNUaKiNDJctDYWlhOYsRePf7MIrzoZuXEFnJj45jfpiOQ==",
"requires": {
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/label": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/@react-types/label/-/label-3.7.0.tgz",
- "integrity": "sha512-33iQQ3aC34+yKECvSHJ8DDWwd32rm2TZhABX513DYwuCupIxs+BrgHvcfp2YLmz2Fh5UTMSfJXDA74Tbd0XwLg==",
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/@react-types/label/-/label-3.7.1.tgz",
+ "integrity": "sha512-wFpdtjSDBWO4xQQGF57V3PqvVVyE9TPj9ELWLs1yzL09fpXosycuEl5d79RywVlC9aF9dQYUfES09q/DZhRhMQ==",
"requires": {
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/link": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.3.4.tgz",
- "integrity": "sha512-d/0LbK047OHcajQdGcVNi0noqYbvI5pBBOfE5Y8Kn/G353Xo/hPBk3QCjJM1GsX07UfA5PUhUrxISMg566YKcA==",
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.3.5.tgz",
+ "integrity": "sha512-wEeYXqzRPwEwU6AakiRfsPrkGxm2l0gjIc992FBmHPz6MWU8eSATTwzeyI668eRzNrQvOBMI7il6lXuxDm1ZLg==",
"requires": {
- "@react-aria/interactions": "^3.12.0",
- "@react-types/shared": "^3.15.0"
+ "@react-aria/interactions": "^3.13.0",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/listbox": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.3.4.tgz",
- "integrity": "sha512-/wKUxIj/F7JekEFpsxQS4Za3OqwKop3orD67tmJh9xD8Abcj+YjGVNrjQuBvbq1hzTPgefNrb42Y4aqnqZojIg==",
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.3.5.tgz",
+ "integrity": "sha512-7SMRJWUi7ayzQ7SUPCXXwgI/Ua3vg0PPQOZFsmJ4/E8VG/xK82IV7BYSZiNjUQuGpVZJL0VPndt/RwIrQO4S3w==",
"requires": {
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/menu": {
- "version": "3.7.2",
- "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.7.2.tgz",
- "integrity": "sha512-BXMWrT3VCP6NTf0y7v1YYqRJNXkUKLzGXI+n7Qv9+aiZZfd3NNMyk20byHczhFoT2yuCcU5xhyOXzkxSo6ew3A==",
+ "version": "3.7.3",
+ "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.7.3.tgz",
+ "integrity": "sha512-3Pax24I/FyNKBjKyNR4ePD8eZs35Th57HzJAVjamQg2fHEDRomg9GQ7fdmfGj72Dv3x3JRCoPYqhJ3L5R3kbzg==",
"requires": {
- "@react-types/overlays": "^3.6.4",
- "@react-types/shared": "^3.15.0"
+ "@react-types/overlays": "^3.6.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/meter": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.2.4.tgz",
- "integrity": "sha512-lFnGEIOHu4SyUwILa3vrIkaZqPuiBqc5wq9p5i5r9qvqxqchPnvxlkN4JC4D7YNlXpVEtKmJsf/6lQ7qBBeQlg==",
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.2.5.tgz",
+ "integrity": "sha512-pBrHoWRSwrfo3JtCCxoniSEd27Pokt20Fj4ZkJxjjDtLdcHOM4Z1JIKvOlcXMCV35iknrVu4veDHpmXolI+vAw==",
"requires": {
- "@react-types/progress": "^3.2.4",
- "@react-types/shared": "^3.15.0"
+ "@react-types/progress": "^3.2.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/numberfield": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.3.4.tgz",
- "integrity": "sha512-j8yeC7tR7YohKy65RLcH+Ckbjw8timkIjmZD2m/ABec84qhVDyLGzECFq16YNFBHE70vn5r45yVqCW2DtQKkYg==",
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.3.5.tgz",
+ "integrity": "sha512-qBhUSkahiIeTW5IvKvyfLtVHgzyqwKfuDIOlJQiBwgrOPR96X8KDDsOib4r5SFv0lhibv0gQ5L5ucXbmwLyQ8A==",
"requires": {
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/overlays": {
- "version": "3.6.4",
- "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.6.4.tgz",
- "integrity": "sha512-REC4IyDUHS5WhwxMxcvTo+LdrvlSYpJKjyYkPFtJoDBpM3gmXfakTY3KW6K5eZkFv3TnmXjDF9Q2yboEk2u6WQ==",
+ "version": "3.6.5",
+ "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.6.5.tgz",
+ "integrity": "sha512-IeWcF+YTucCYYHagNh8fZLH6R4YUONO1VHY57WJyIHwMy0qgEaKSQCwq72VO1fQJ0ySZgOgm31FniOyKkg6+eQ==",
"requires": {
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/progress": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.2.4.tgz",
- "integrity": "sha512-sBWBrLtpdwU31TZw30EBjy2x5LZqXRd7nKRoRBDrDPmAKP9wYV8HDOQfTeNynCCTOEqqkLIRk4cyutXSr1+CUg==",
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.2.5.tgz",
+ "integrity": "sha512-pFSqaj6rlSdPqGHVErJ8G3RkIyYigoJ3EVozvhR9bcKkLlhnzJiFgOZl+k5u/ZKJOA+YHivIHJwg+Kl1sG0J6A==",
"requires": {
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/radio": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.3.0.tgz",
- "integrity": "sha512-aF4OpGjd9/xuRnDSDJnmwzLvvOENUWSHQc//wp8rViCWf1uinY4wHI/J3uEhodhsUPAKmrqvUagphRoyXWZA8A==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.3.1.tgz",
+ "integrity": "sha512-q/x0kMvBsu6mH4bIkp/Jjrm9ff5y/p3UR0V4CmQFI7604gQd2Dt1dZMU/2HV9x70r1JfWRrDeRrVjUHVfFL5Vg==",
"requires": {
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/searchfield": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.3.4.tgz",
- "integrity": "sha512-NuzNTfP80qnCn+gJJMB/Fv1AhPjrSZyB2m0fVrss0Ua5bmtScxMhXA5Pak3aTDyn3xne2r97LwcAaCdsaDnD1w==",
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.3.5.tgz",
+ "integrity": "sha512-g0kefTbrpqh5Cbv7skvlWfcDnopwTdoe7muHRYkuhMYbGbr8ZeUrCXpWUwVXBq8M24soLSHLuRohaEnKcwpHhw==",
"requires": {
- "@react-types/shared": "^3.15.0",
- "@react-types/textfield": "^3.6.0"
+ "@react-types/shared": "^3.16.0",
+ "@react-types/textfield": "^3.6.1"
}
},
"@react-types/select": {
- "version": "3.6.4",
- "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.6.4.tgz",
- "integrity": "sha512-lbiv7XUEdByluILjEAYVZic2uq4pU0BzW+qZ+sBCYn7v8q2hxXP7T0C6OamzfgXokQHhJ6247JDk7kugqXKL4Q==",
+ "version": "3.6.5",
+ "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.6.5.tgz",
+ "integrity": "sha512-FDeSA7TYMNnhsbXREnD4dWRSu21T5M4BLy+J/5VgwDpr3IN9pzbvngK8a3jc8Yg2S3igKYLMLYfmcsx+yk7ohA==",
"requires": {
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/shared": {
- "version": "3.15.0",
- "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.15.0.tgz",
- "integrity": "sha512-hwuE4BmgswqP+HRDSLMj7DcnYOCCK+ZRuKnc9AVhXS4LBrwRSkdUkNvXhgvqF5tav7IqTpG9pBYMR9wedehuhA=="
+ "version": "3.16.0",
+ "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.16.0.tgz",
+ "integrity": "sha512-IQgU4oAEvMwylEvaTsr2XB1G/mAoMe1JFYLD6G78v++oAR9l8o9MQxZ0YSeANDkqTamb2gKezGoT1RxvSKjVxw=="
},
"@react-types/slider": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.3.0.tgz",
- "integrity": "sha512-GOYcPhFW4XCHflUlBzZAVVza3Jv2q4xUHrF26Mo1x/7L6/aeABR4Pu/Jjh47pKG7g2MvDYaUv5L1Cui2VywuFA==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.3.1.tgz",
+ "integrity": "sha512-CbEa1v1IcUJD7VrFhWyOOlT7VyQ5DHEf/pNMkvICOBLMAwnWxS+tnTiRFgA/EbvV/vp24ydeszHYtMvsyRONRw==",
"requires": {
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/switch": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.2.4.tgz",
- "integrity": "sha512-LFrt8fbEu2QXoZ9FLYLmorCMTrQ3WmvkKpRYaMSj81COxXwIHbByZlH/nzL278fU40GkZGXz2f6ffEYeuc9Vcg==",
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.2.5.tgz",
+ "integrity": "sha512-DlUL0Bz79SUTRje/i8m6qn4Ipn+q8QnyIkyJhkoHeH1R0YNude8xZrBPWbj3zfdddAGDFSF1NzP69q0xmNAcTQ==",
"requires": {
- "@react-types/checkbox": "^3.4.0",
- "@react-types/shared": "^3.15.0"
+ "@react-types/checkbox": "^3.4.1",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/table": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.3.2.tgz",
- "integrity": "sha512-BIYehWSfvPRkneKKKB7YEWD4wZAVVLBf2N0M2jjsVdshK9ZpjQPgOMI6YKjiWGC/ZLZFrAysKRploaIw4Cb+TQ==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.3.3.tgz",
+ "integrity": "sha512-rdY8PCzdqumVd6EFgN4NCoNRHdU4dVKH2oufr50TrAVPAz2KyoNXaGcDGe0q4RjQeTk+fc0sCvRZZdpMwHRVpQ==",
"requires": {
- "@react-types/grid": "^3.1.4",
- "@react-types/shared": "^3.15.0"
+ "@react-types/grid": "^3.1.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/tabs": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.1.4.tgz",
- "integrity": "sha512-4gXBeNUTD/pSXe3JNZRVftPep/mrmvnbqfNoJG15//HBmoLaWIRgD0FvhGJfK9bQ0PyVG11wrqRku2dy6zaGyw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.1.5.tgz",
+ "integrity": "sha512-YgWY8IajCDBZmBzR3eii0aW6+SjcAT/dmqDNmfIuVVnDN7sHQ3PFa0nbmByvb0SfjOkJYumt8TJwFUCugohS8A==",
"requires": {
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/textfield": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.6.0.tgz",
- "integrity": "sha512-fEa/lTqpWBn7ZE0cDsc700OhTBAxiy8ifm8AQcLYfZuRX4zqRoMpkXMWN0XMjYfoZzNrS0LJJ6pLBHTwrlXWWA==",
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.6.1.tgz",
+ "integrity": "sha512-V3EyYw82GVJQbNN0OAWpOLs/UQij+AgUuJpxh8192p/q0B3/9lqepZ9b+Qts2XgMsA+3Db+KgFMWm2IdjaZbpQ==",
"requires": {
- "@react-types/shared": "^3.15.0"
+ "@react-types/shared": "^3.16.0"
}
},
"@react-types/tooltip": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.2.4.tgz",
- "integrity": "sha512-KxmzXro8f1CfLAaYKIJVcaJQIjVPvA8k8a1yUhItAOLOMpFwp/sHaXSpIX+lOmleLummX1yXJwb0Urc2KrPIxw==",
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.2.5.tgz",
+ "integrity": "sha512-D4lN32JwQuA3JbCgcI26mgCkLHIj1WE8MTzf1McaasPkx7gVaqW+wfPyFwt99/Oo52TLvA/1oin78qePP67PSw==",
"requires": {
- "@react-types/overlays": "^3.6.4",
- "@react-types/shared": "^3.15.0"
+ "@react-types/overlays": "^3.6.5",
+ "@react-types/shared": "^3.16.0"
}
},
"@serjlee/gatsby-plugin-algolia": {
@@ -6341,9 +6369,9 @@
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
},
"copy-to-clipboard": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.2.tgz",
- "integrity": "sha512-Vme1Z6RUDzrb6xAI7EZlVZ5uvOk2F//GaxKUxajDqm9LhOVM1inxNAD2vy+UZDYsd0uyA9s7b3/FVZPSxqrCfg==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz",
+ "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==",
"requires": {
"toggle-selection": "^1.0.6"
}
@@ -6456,12 +6484,11 @@
"integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w=="
},
"css-in-js-utils": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz",
- "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz",
+ "integrity": "sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==",
"requires": {
- "hyphenate-style-name": "^1.0.2",
- "isobject": "^3.0.1"
+ "hyphenate-style-name": "^1.0.3"
}
},
"css-loader": {
@@ -8039,6 +8066,11 @@
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
},
+ "fast-loops": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/fast-loops/-/fast-loops-1.1.3.tgz",
+ "integrity": "sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g=="
+ },
"fast-shallow-equal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz",
@@ -9542,9 +9574,9 @@
}
},
"parse5": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz",
- "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==",
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
"requires": {
"entities": "^4.4.0"
}
@@ -9663,9 +9695,9 @@
}
},
"parse5": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz",
- "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==",
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
"requires": {
"entities": "^4.4.0"
}
@@ -10673,11 +10705,12 @@
"integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q=="
},
"inline-style-prefixer": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.1.tgz",
- "integrity": "sha512-AsqazZ8KcRzJ9YPN1wMH2aNM7lkWQ8tSPrW5uDk1ziYwiAPWSZnUsC7lfZq+BDqLqz0B4Pho5wscWcJzVvRzDQ==",
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.4.tgz",
+ "integrity": "sha512-FwXmZC2zbeeS7NzGjJ6pAiqRhXR0ugUShSNb6GApMl6da0/XGc4MOJsoWAywia52EEWbXNSy0pzkwz/+Y+swSg==",
"requires": {
- "css-in-js-utils": "^2.0.0"
+ "css-in-js-utils": "^3.1.0",
+ "fast-loops": "^1.1.3"
}
},
"inquirer": {
@@ -13056,9 +13089,9 @@
"integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA=="
},
"parse5": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz",
- "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==",
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
"requires": {
"entities": "^4.4.0"
}
@@ -13856,42 +13889,44 @@
}
},
"react-aria": {
- "version": "3.20.0",
- "resolved": "https://registry.npmjs.org/react-aria/-/react-aria-3.20.0.tgz",
- "integrity": "sha512-X3Gt46A7ViDoD0xbEfUdvD/2bhchSoodOYLltykXkMIQZ4x57q3dGUygoepL6Xc97l5IVelsapuEMHFLN/WTIw==",
- "requires": {
- "@react-aria/breadcrumbs": "^3.3.2",
- "@react-aria/button": "^3.6.2",
- "@react-aria/calendar": "^3.0.3",
- "@react-aria/checkbox": "^3.6.0",
- "@react-aria/combobox": "^3.4.2",
- "@react-aria/datepicker": "^3.1.2",
- "@react-aria/dialog": "^3.4.0",
- "@react-aria/focus": "^3.9.0",
- "@react-aria/gridlist": "^3.1.0",
- "@react-aria/i18n": "^3.6.1",
- "@react-aria/interactions": "^3.12.0",
- "@react-aria/label": "^3.4.2",
- "@react-aria/link": "^3.3.4",
- "@react-aria/listbox": "^3.7.0",
- "@react-aria/menu": "^3.6.2",
- "@react-aria/meter": "^3.3.2",
- "@react-aria/numberfield": "^3.3.2",
- "@react-aria/overlays": "^3.11.0",
- "@react-aria/progress": "^3.3.2",
- "@react-aria/radio": "^3.4.0",
- "@react-aria/searchfield": "^3.4.2",
- "@react-aria/select": "^3.8.2",
- "@react-aria/separator": "^3.2.4",
- "@react-aria/slider": "^3.2.2",
- "@react-aria/ssr": "^3.3.0",
- "@react-aria/switch": "^3.2.4",
- "@react-aria/table": "^3.5.0",
- "@react-aria/tabs": "^3.3.2",
- "@react-aria/textfield": "^3.7.2",
- "@react-aria/tooltip": "^3.3.2",
- "@react-aria/utils": "^3.14.0",
- "@react-aria/visually-hidden": "^3.5.0"
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/react-aria/-/react-aria-3.21.0.tgz",
+ "integrity": "sha512-gPzUZ+TxY8lDN1j4K90O3SVWBF1k870NuIePjgiymQqmKTMBGvBB6AswxSgbefakQjkgg+GsyQYGhoQMTtpcMA==",
+ "requires": {
+ "@react-aria/breadcrumbs": "^3.4.0",
+ "@react-aria/button": "^3.6.3",
+ "@react-aria/calendar": "^3.0.4",
+ "@react-aria/checkbox": "^3.7.0",
+ "@react-aria/combobox": "^3.4.3",
+ "@react-aria/datepicker": "^3.2.0",
+ "@react-aria/dialog": "^3.4.1",
+ "@react-aria/dnd": "^3.0.0",
+ "@react-aria/focus": "^3.10.0",
+ "@react-aria/gridlist": "^3.1.1",
+ "@react-aria/i18n": "^3.6.2",
+ "@react-aria/interactions": "^3.13.0",
+ "@react-aria/label": "^3.4.3",
+ "@react-aria/link": "^3.3.5",
+ "@react-aria/listbox": "^3.7.1",
+ "@react-aria/menu": "^3.7.0",
+ "@react-aria/meter": "^3.3.3",
+ "@react-aria/numberfield": "^3.3.3",
+ "@react-aria/overlays": "^3.12.0",
+ "@react-aria/progress": "^3.3.3",
+ "@react-aria/radio": "^3.4.1",
+ "@react-aria/searchfield": "^3.4.3",
+ "@react-aria/select": "^3.8.3",
+ "@react-aria/selection": "^3.12.0",
+ "@react-aria/separator": "^3.2.5",
+ "@react-aria/slider": "^3.2.3",
+ "@react-aria/ssr": "^3.4.0",
+ "@react-aria/switch": "^3.3.0",
+ "@react-aria/table": "^3.6.0",
+ "@react-aria/tabs": "^3.3.3",
+ "@react-aria/textfield": "^3.8.0",
+ "@react-aria/tooltip": "^3.3.3",
+ "@react-aria/utils": "^3.14.1",
+ "@react-aria/visually-hidden": "^3.6.0"
}
},
"react-autosize-textarea": {
@@ -14146,9 +14181,9 @@
}
},
"react-instantsearch-core": {
- "version": "6.38.0",
- "resolved": "https://registry.npmjs.org/react-instantsearch-core/-/react-instantsearch-core-6.38.0.tgz",
- "integrity": "sha512-Y5denvptL+qDOHY3LxipULNun8f3t2WeO9UdiWJd9FER1vn1VBrDdSyZ5b+idxqVWhSeVbncbf98zr7EW/kFvA==",
+ "version": "6.38.1",
+ "resolved": "https://registry.npmjs.org/react-instantsearch-core/-/react-instantsearch-core-6.38.1.tgz",
+ "integrity": "sha512-14gy/jsakJELVeMEO+QmsHcugIyaU1pRyyuQjuXuBvF+TMHiWUjfYw7de3Lc4oYcTYIeSllYIxLHxdUoxLWZaA==",
"requires": {
"@babel/runtime": "^7.1.2",
"algoliasearch-helper": "^3.11.1",
@@ -14164,16 +14199,16 @@
}
},
"react-instantsearch-dom": {
- "version": "6.38.0",
- "resolved": "https://registry.npmjs.org/react-instantsearch-dom/-/react-instantsearch-dom-6.38.0.tgz",
- "integrity": "sha512-yE0y9U1GCPZ/Jqzbd2BHTdx83/DYIEbXqAt7a+a5TLi4qQgwjTpVrtAkqzhT8f1/TRhNqu0wYAT4HFixVsW8FA==",
+ "version": "6.38.1",
+ "resolved": "https://registry.npmjs.org/react-instantsearch-dom/-/react-instantsearch-dom-6.38.1.tgz",
+ "integrity": "sha512-Wyzm4JW8O79zwsaWqOBdKbg69O7OcUDiF+p+/LW7zdRZ3RK4mO/q5CZDcziwDbNKqC4OEuG+IpIZuCjcJQrFcQ==",
"requires": {
"@babel/runtime": "^7.1.2",
"algoliasearch-helper": "^3.11.1",
"classnames": "^2.2.5",
"prop-types": "^15.6.2",
"react-fast-compare": "^3.0.0",
- "react-instantsearch-core": "6.38.0"
+ "react-instantsearch-core": "6.38.1"
},
"dependencies": {
"react-fast-compare": {
@@ -14266,31 +14301,32 @@
"integrity": "sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw=="
},
"react-stately": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/react-stately/-/react-stately-3.18.0.tgz",
- "integrity": "sha512-oNh/GzmCU5hVxDsaOeBCzrtvIp+48vCuGqeUd/eYux+ehpZmGVxrMxUqyDfVg7rp+s51b5MMUFZRFTURsyFDSg==",
- "requires": {
- "@react-stately/calendar": "^3.0.3",
- "@react-stately/checkbox": "^3.3.0",
- "@react-stately/collections": "^3.4.4",
- "@react-stately/combobox": "^3.2.2",
- "@react-stately/data": "^3.7.0",
- "@react-stately/datepicker": "^3.1.0",
- "@react-stately/list": "^3.5.4",
- "@react-stately/menu": "^3.4.2",
- "@react-stately/numberfield": "^3.2.2",
- "@react-stately/overlays": "^3.4.2",
- "@react-stately/radio": "^3.6.0",
- "@react-stately/searchfield": "^3.3.2",
- "@react-stately/select": "^3.3.2",
- "@react-stately/selection": "^3.11.0",
- "@react-stately/slider": "^3.2.2",
- "@react-stately/table": "^3.5.0",
- "@react-stately/tabs": "^3.2.2",
- "@react-stately/toggle": "^3.4.2",
- "@react-stately/tooltip": "^3.2.2",
- "@react-stately/tree": "^3.3.4",
- "@react-types/shared": "^3.15.0"
+ "version": "3.19.0",
+ "resolved": "https://registry.npmjs.org/react-stately/-/react-stately-3.19.0.tgz",
+ "integrity": "sha512-jatLPljb5uGxAqMqK3VfVyjYh39itJBcTDPpxQGPLvfiMF6bmxcCtVt7058CSOG+DtWR/fSu+lKB/A0obxWPlg==",
+ "requires": {
+ "@react-stately/calendar": "^3.0.4",
+ "@react-stately/checkbox": "^3.3.1",
+ "@react-stately/collections": "^3.5.0",
+ "@react-stately/combobox": "^3.3.0",
+ "@react-stately/data": "^3.8.0",
+ "@react-stately/datepicker": "^3.2.0",
+ "@react-stately/dnd": "^3.0.0",
+ "@react-stately/list": "^3.6.0",
+ "@react-stately/menu": "^3.4.3",
+ "@react-stately/numberfield": "^3.3.0",
+ "@react-stately/overlays": "^3.4.3",
+ "@react-stately/radio": "^3.6.1",
+ "@react-stately/searchfield": "^3.3.3",
+ "@react-stately/select": "^3.3.3",
+ "@react-stately/selection": "^3.11.1",
+ "@react-stately/slider": "^3.2.3",
+ "@react-stately/table": "^3.6.0",
+ "@react-stately/tabs": "^3.2.3",
+ "@react-stately/toggle": "^3.4.3",
+ "@react-stately/tooltip": "^3.2.3",
+ "@react-stately/tree": "^3.4.0",
+ "@react-types/shared": "^3.16.0"
}
},
"react-swipeable": {
@@ -15174,9 +15210,9 @@
}
},
"sass-loader": {
- "version": "10.3.1",
- "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.3.1.tgz",
- "integrity": "sha512-y2aBdtYkbqorVavkC3fcJIUDGIegzDWPn3/LAFhsf3G+MzPKTJx37sROf5pXtUeggSVbNbmfj8TgRaSLMelXRA==",
+ "version": "10.4.1",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.4.1.tgz",
+ "integrity": "sha512-aX/iJZTTpNUNx/OSYzo2KsjIUQHqvWsAhhUijFjAPdZTEhstjZI9zTNvkTTwsx+uNUJqUwOw5gacxQMx4hJxGQ==",
"requires": {
"klona": "^2.0.4",
"loader-utils": "^2.0.0",
diff --git a/package.json b/package.json
index cae06f55e5..e5c54e3dd1 100644
--- a/package.json
+++ b/package.json
@@ -18,7 +18,7 @@
},
"homepage": "https://github.com/arduino/docs-content#readme",
"dependencies": {
- "@arduino/docs-arduino-cc": "^1.6.20",
+ "@arduino/docs-arduino-cc": "^1.6.25",
"gatsby": "^4.9.2"
},
"volta": {
diff --git a/scripts/datasheet-rendering/config.json b/scripts/datasheet-rendering/config.json
new file mode 100644
index 0000000000..af791e4e1d
--- /dev/null
+++ b/scripts/datasheet-rendering/config.json
@@ -0,0 +1,12 @@
+{
+ "datasheetFile" : "datasheet.md",
+ "excludePatterns" : [".git", "template", "_unlisted"],
+ "defaultSourcePath" : "../../content/hardware",
+ "relativeBuildPath" : "../downloads",
+ "datasheetsFolder" : "datasheets",
+ "styleSheetsPath" : "./styles",
+ "previousDocumentationFolder" : "previous-documentation",
+ "subtitle" : "Product Reference Manual",
+ "datasheetSuffix": "-datasheet.pdf",
+ "identifierPrefix": "SKU"
+}
\ No newline at end of file
diff --git a/scripts/datasheet-rendering/package-lock.json b/scripts/datasheet-rendering/package-lock.json
new file mode 100644
index 0000000000..01dbeea4e8
--- /dev/null
+++ b/scripts/datasheet-rendering/package-lock.json
@@ -0,0 +1,2478 @@
+{
+ "name": "datasheet-rendering",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "datasheet-renderer": {
+ "version": "1.0.2",
+ "requires": {
+ "express": "^4.18.1",
+ "find-parent-dir": "^0.3.1",
+ "front-matter": "^4.0.2",
+ "fs": "^0.0.1-security",
+ "html-pdf-node": "^1.0.8",
+ "js-yaml": "^4.1.0",
+ "jsdom": "^16.7.0",
+ "marked": "^4.0.0",
+ "pdf-parser": "^1.0.5",
+ "puppeteer": "^10.4.0",
+ "util": "^0.12.4"
+ },
+ "dependencies": {
+ "@jonkemp/package-utils": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@jonkemp/package-utils/-/package-utils-1.0.8.tgz",
+ "integrity": "sha512-bIcKnH5YmtTYr7S6J3J86dn/rFiklwRpOqbTOQ9C0WMmR9FKHVb3bxs2UYfqEmNb93O4nbA97sb6rtz33i9SyA=="
+ },
+ "@tootallnate/once": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
+ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw=="
+ },
+ "@types/node": {
+ "version": "16.11.6",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz",
+ "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==",
+ "optional": true
+ },
+ "@types/yauzl": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz",
+ "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==",
+ "optional": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "abab": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
+ "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA=="
+ },
+ "accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "requires": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ }
+ },
+ "acorn": {
+ "version": "8.7.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz",
+ "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A=="
+ },
+ "acorn-globals": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz",
+ "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==",
+ "requires": {
+ "acorn": "^7.1.1",
+ "acorn-walk": "^7.1.1"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
+ },
+ "acorn-walk": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
+ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA=="
+ }
+ }
+ },
+ "acorn-walk": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
+ "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA=="
+ },
+ "agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "requires": {
+ "debug": "4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+ "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ },
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
+ },
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
+ },
+ "ast-types": {
+ "version": "0.13.4",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz",
+ "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==",
+ "requires": {
+ "tslib": "^2.0.1"
+ }
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
+ "available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw=="
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
+ },
+ "batch": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw=="
+ },
+ "bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "requires": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
+ },
+ "body-parser": {
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
+ "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
+ "requires": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "on-finished": "2.4.1",
+ "qs": "6.10.3",
+ "raw-body": "2.5.1",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
+ }
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "browser-process-hrtime": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
+ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
+ },
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="
+ },
+ "bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
+ },
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "cheerio": {
+ "version": "0.22.0",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz",
+ "integrity": "sha512-8/MzidM6G/TgRelkzDG13y3Y9LxBjCb+8yOEZ9+wwq5gVF2w2pV0wmHvjfT0RvuxGyR7UEuK36r+yYMbT4uKgA==",
+ "requires": {
+ "css-select": "~1.2.0",
+ "dom-serializer": "~0.1.0",
+ "entities": "~1.1.1",
+ "htmlparser2": "^3.9.1",
+ "lodash.assignin": "^4.0.9",
+ "lodash.bind": "^4.1.4",
+ "lodash.defaults": "^4.0.1",
+ "lodash.filter": "^4.4.0",
+ "lodash.flatten": "^4.2.0",
+ "lodash.foreach": "^4.3.0",
+ "lodash.map": "^4.4.0",
+ "lodash.merge": "^4.4.0",
+ "lodash.pick": "^4.2.1",
+ "lodash.reduce": "^4.4.0",
+ "lodash.reject": "^4.4.0",
+ "lodash.some": "^4.4.0"
+ }
+ },
+ "chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "requires": {
+ "safe-buffer": "5.2.1"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ }
+ }
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
+ },
+ "cookie": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
+ },
+ "cookiejar": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz",
+ "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ=="
+ },
+ "core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ },
+ "css-rules": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/css-rules/-/css-rules-1.1.0.tgz",
+ "integrity": "sha512-7L6krLIRwAEVCaVKyCEL6PQjQXUmf8DM9bWYKutlZd0DqOe0SiKIGQOkFb59AjDBb+3If7SDp3X8UlzDAgYSow==",
+ "requires": {
+ "cssom": "^0.5.0"
+ }
+ },
+ "css-select": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+ "integrity": "sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA==",
+ "requires": {
+ "boolbase": "~1.0.0",
+ "css-what": "2.1",
+ "domutils": "1.5.1",
+ "nth-check": "~1.0.1"
+ }
+ },
+ "css-what": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
+ "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg=="
+ },
+ "cssom": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
+ "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw=="
+ },
+ "cssstyle": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
+ "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
+ "requires": {
+ "cssom": "~0.3.6"
+ },
+ "dependencies": {
+ "cssom": {
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
+ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
+ }
+ }
+ },
+ "data-uri-to-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz",
+ "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og=="
+ },
+ "data-urls": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz",
+ "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==",
+ "requires": {
+ "abab": "^2.0.3",
+ "whatwg-mimetype": "^2.3.0",
+ "whatwg-url": "^8.0.0"
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "decimal.js": {
+ "version": "10.3.1",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz",
+ "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ=="
+ },
+ "deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
+ },
+ "define-properties": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
+ "requires": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "degenerator": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz",
+ "integrity": "sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ==",
+ "requires": {
+ "ast-types": "^0.13.2",
+ "escodegen": "^1.8.1",
+ "esprima": "^4.0.0",
+ "vm2": "^3.9.8"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+ },
+ "depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
+ },
+ "destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
+ },
+ "devtools-protocol": {
+ "version": "0.0.901419",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.901419.tgz",
+ "integrity": "sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ=="
+ },
+ "dezalgo": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz",
+ "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==",
+ "requires": {
+ "asap": "^2.0.0",
+ "wrappy": "1"
+ }
+ },
+ "dom-serializer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
+ "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
+ "requires": {
+ "domelementtype": "^1.3.0",
+ "entities": "^1.1.1"
+ }
+ },
+ "domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
+ },
+ "domexception": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz",
+ "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==",
+ "requires": {
+ "webidl-conversions": "^5.0.0"
+ },
+ "dependencies": {
+ "webidl-conversions": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz",
+ "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA=="
+ }
+ }
+ },
+ "domhandler": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
+ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==",
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
+ },
+ "es-abstract": {
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz",
+ "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "function.prototype.name": "^1.1.5",
+ "get-intrinsic": "^1.1.1",
+ "get-symbol-description": "^1.0.0",
+ "has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.3",
+ "is-callable": "^1.2.4",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.2",
+ "regexp.prototype.flags": "^1.4.3",
+ "string.prototype.trimend": "^1.0.5",
+ "string.prototype.trimstart": "^1.0.5",
+ "unbox-primitive": "^1.0.2"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "escodegen": {
+ "version": "1.14.3",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
+ "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
+ "requires": {
+ "esprima": "^4.0.1",
+ "estraverse": "^4.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1",
+ "source-map": "~0.6.1"
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
+ },
+ "express": {
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
+ "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
+ "requires": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.20.0",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.5.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.2.0",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.10.3",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.2.1",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ }
+ }
+ },
+ "extract-css": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extract-css/-/extract-css-2.0.1.tgz",
+ "integrity": "sha512-DX3+27l6NIVYNidJjBJ4VU3Z5tk/0aEO/JJ6XEJIRPFum9kyA1PifPjnEa8Ztnv4DHNQg5EF27aypGz6s/fMdw==",
+ "requires": {
+ "batch": "^0.6.1",
+ "href-content": "^2.0.1",
+ "list-stylesheets": "^1.2.10",
+ "style-data": "^1.4.8"
+ }
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
+ },
+ "fast-safe-stringify": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
+ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="
+ },
+ "fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
+ "requires": {
+ "pend": "~1.2.0"
+ }
+ },
+ "file-uri-to-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz",
+ "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg=="
+ },
+ "finalhandler": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "~1.0.0"
+ }
+ },
+ "find-parent-dir": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.1.tgz",
+ "integrity": "sha512-o4UcykWV/XN9wm+jMEtWLPlV8RXCZnMhQI6F6OdHeSez7iiJWePw8ijOlskJZMsaQoGR/b7dH6lO02HhaTN7+A=="
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "flat-util": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/flat-util/-/flat-util-1.1.9.tgz",
+ "integrity": "sha512-BOTMw/6rbbxVjv5JQvwgGMc2/6wWGd2VeyTvnzvvE49VRjS0tTxLbry/QVP1yPw8SaAOBYsnixmzruXoqjdUHA=="
+ },
+ "for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "requires": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "formidable": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz",
+ "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==",
+ "requires": {
+ "dezalgo": "1.0.3",
+ "hexoid": "1.0.0",
+ "once": "1.4.0",
+ "qs": "6.9.3"
+ },
+ "dependencies": {
+ "qs": {
+ "version": "6.9.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz",
+ "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw=="
+ }
+ }
+ },
+ "forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
+ },
+ "front-matter": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz",
+ "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==",
+ "requires": {
+ "js-yaml": "^3.13.1"
+ },
+ "dependencies": {
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ }
+ }
+ },
+ "fs": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
+ "integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ="
+ },
+ "fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
+ },
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "ftp": {
+ "version": "0.3.10",
+ "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz",
+ "integrity": "sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==",
+ "requires": {
+ "readable-stream": "1.1.x",
+ "xregexp": "2.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
+ }
+ }
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
+ }
+ },
+ "functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="
+ },
+ "get-intrinsic": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz",
+ "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "get-symbol-description": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+ "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ }
+ },
+ "get-uri": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz",
+ "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==",
+ "requires": {
+ "@tootallnate/once": "1",
+ "data-uri-to-buffer": "3",
+ "debug": "4",
+ "file-uri-to-path": "2",
+ "fs-extra": "^8.1.0",
+ "ftp": "^0.3.10"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.10",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
+ },
+ "handlebars": {
+ "version": "4.7.7",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
+ "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
+ "requires": {
+ "minimist": "^1.2.5",
+ "neo-async": "^2.6.0",
+ "source-map": "^0.6.1",
+ "uglify-js": "^3.1.4",
+ "wordwrap": "^1.0.0"
+ }
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ=="
+ },
+ "has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "requires": {
+ "get-intrinsic": "^1.1.1"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
+ },
+ "has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "hexoid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz",
+ "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g=="
+ },
+ "href-content": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/href-content/-/href-content-2.0.1.tgz",
+ "integrity": "sha512-5uiAmBCvzCFVu70kli3Hp0BONbAOfwGqR7jKolV+bAh174sIAZBL8DHfg5SnxAhId2mQmYgyL7Y62msnWJ34Xg==",
+ "requires": {
+ "remote-content": "^3.0.0"
+ }
+ },
+ "html-encoding-sniffer": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
+ "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==",
+ "requires": {
+ "whatwg-encoding": "^1.0.5"
+ }
+ },
+ "html-pdf-node": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/html-pdf-node/-/html-pdf-node-1.0.8.tgz",
+ "integrity": "sha512-1PXbShoVXy8/86ZBY3xQNd5r2c/CPx/Me2wGtV0Z0Rekko5Tgow2hLms2n+OwA+PV7NyR7OPcTqsnhXIMUJLFw==",
+ "requires": {
+ "bluebird": "^3.7.2",
+ "handlebars": "^4.7.6",
+ "inline-css": "^3.0.0",
+ "puppeteer": "^10.4.0"
+ }
+ },
+ "htmlparser2": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
+ "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
+ "requires": {
+ "domelementtype": "^1.3.1",
+ "domhandler": "^2.3.0",
+ "domutils": "^1.5.1",
+ "entities": "^1.1.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^3.1.1"
+ }
+ },
+ "http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "requires": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ }
+ }
+ },
+ "http-proxy-agent": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
+ "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
+ "requires": {
+ "@tootallnate/once": "1",
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "https-proxy-agent": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
+ "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
+ "requires": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+ "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "inline-css": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/inline-css/-/inline-css-3.0.0.tgz",
+ "integrity": "sha512-a+IE7oLaQqeVr3hMviekDDk94LA0+oZX8JEfJuXOm20diZAkOFrq/f/QZCEXpMK6qIbYr0nQNpsuioXQN1ZgXA==",
+ "requires": {
+ "cheerio": "^0.22.0",
+ "css-rules": "^1.0.9",
+ "extract-css": "^2.0.0",
+ "flat-util": "^1.1.6",
+ "pick-util": "^1.1.3",
+ "slick": "^1.12.2",
+ "specificity": "^0.4.1"
+ }
+ },
+ "internal-slot": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
+ "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
+ "requires": {
+ "get-intrinsic": "^1.1.0",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.4"
+ }
+ },
+ "ip": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
+ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
+ },
+ "ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
+ },
+ "is-arguments": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
+ "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "requires": {
+ "has-bigints": "^1.0.1"
+ }
+ },
+ "is-boolean-object": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-callable": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
+ "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w=="
+ },
+ "is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-generator-function": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-negative-zero": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA=="
+ },
+ "is-number-object": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-potential-custom-element-name": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
+ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="
+ },
+ "is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-shared-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
+ "is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "is-typed-array": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz",
+ "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==",
+ "requires": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "es-abstract": "^1.20.0",
+ "for-each": "^0.3.3",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
+ },
+ "js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "jsdom": {
+ "version": "16.7.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz",
+ "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==",
+ "requires": {
+ "abab": "^2.0.5",
+ "acorn": "^8.2.4",
+ "acorn-globals": "^6.0.0",
+ "cssom": "^0.4.4",
+ "cssstyle": "^2.3.0",
+ "data-urls": "^2.0.0",
+ "decimal.js": "^10.2.1",
+ "domexception": "^2.0.1",
+ "escodegen": "^2.0.0",
+ "form-data": "^3.0.0",
+ "html-encoding-sniffer": "^2.0.1",
+ "http-proxy-agent": "^4.0.1",
+ "https-proxy-agent": "^5.0.0",
+ "is-potential-custom-element-name": "^1.0.1",
+ "nwsapi": "^2.2.0",
+ "parse5": "6.0.1",
+ "saxes": "^5.0.1",
+ "symbol-tree": "^3.2.4",
+ "tough-cookie": "^4.0.0",
+ "w3c-hr-time": "^1.0.2",
+ "w3c-xmlserializer": "^2.0.0",
+ "webidl-conversions": "^6.1.0",
+ "whatwg-encoding": "^1.0.5",
+ "whatwg-mimetype": "^2.3.0",
+ "whatwg-url": "^8.5.0",
+ "ws": "^7.4.6",
+ "xml-name-validator": "^3.0.0"
+ },
+ "dependencies": {
+ "cssom": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
+ "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw=="
+ },
+ "escodegen": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz",
+ "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==",
+ "requires": {
+ "esprima": "^4.0.1",
+ "estraverse": "^5.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1",
+ "source-map": "~0.6.1"
+ }
+ },
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
+ },
+ "form-data": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
+ "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ }
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
+ "list-stylesheets": {
+ "version": "1.2.10",
+ "resolved": "https://registry.npmjs.org/list-stylesheets/-/list-stylesheets-1.2.10.tgz",
+ "integrity": "sha512-F85Yx9GKLJwDr1T9U34FST5m6iIXhPzqD+MRDsljZsdmoEZwllZBDbkAVaa+EpLKrr6de+P4SRGNHwrWv6zMZA==",
+ "requires": {
+ "cheerio": "^0.22.0",
+ "pick-util": "^1.1.4"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "lodash.assignin": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz",
+ "integrity": "sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg=="
+ },
+ "lodash.bind": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz",
+ "integrity": "sha512-lxdsn7xxlCymgLYo1gGvVrfHmkjDiyqVv62FAeF2i5ta72BipE1SLxw8hPEPLhD4/247Ijw07UQH7Hq/chT5LA=="
+ },
+ "lodash.defaults": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
+ "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ=="
+ },
+ "lodash.filter": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz",
+ "integrity": "sha512-pXYUy7PR8BCLwX5mgJ/aNtyOvuJTdZAo9EQFUvMIYugqmJxnrYaANvTbgndOzHSCSR0wnlBBfRXJL5SbWxo3FQ=="
+ },
+ "lodash.flatten": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
+ "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g=="
+ },
+ "lodash.foreach": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
+ "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ=="
+ },
+ "lodash.map": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
+ "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q=="
+ },
+ "lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
+ },
+ "lodash.pick": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
+ "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q=="
+ },
+ "lodash.reduce": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz",
+ "integrity": "sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw=="
+ },
+ "lodash.reject": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz",
+ "integrity": "sha512-qkTuvgEzYdyhiJBx42YPzPo71R1aEr0z79kAv7Ixg8wPFEjgRgJdUsGMG3Hf3OYSF/kHI79XhNlt+5Ar6OzwxQ=="
+ },
+ "lodash.some": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz",
+ "integrity": "sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ=="
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "marked": {
+ "version": "4.0.17",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.17.tgz",
+ "integrity": "sha512-Wfk0ATOK5iPxM4ptrORkFemqroz0ZDxp5MWfYA7H/F+wO17NRWV5Ypxi6p3g2Xmw2bKeiYOl6oVnLHKxBA0VhA=="
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
+ },
+ "mediaquery-text": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mediaquery-text/-/mediaquery-text-1.2.0.tgz",
+ "integrity": "sha512-cJyRqgYQi+hsYhRkyd5le0s4LsEPvOB7r+6X3jdEELNqVlM9mRIgyUPg9BzF+PuTqQH1ZekgIjYVOeWSXWq35Q==",
+ "requires": {
+ "cssom": "^0.5.0"
+ }
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+ },
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ },
+ "mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+ },
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
+ },
+ "neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
+ },
+ "netmask": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
+ "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg=="
+ },
+ "node-ensure": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/node-ensure/-/node-ensure-0.0.0.tgz",
+ "integrity": "sha1-7K52QVDemYYexcgQ/V0Jaxg5Mqc="
+ },
+ "node-fetch": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
+ "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
+ },
+ "nth-check": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "requires": {
+ "boolbase": "~1.0.0"
+ }
+ },
+ "nwsapi": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.1.tgz",
+ "integrity": "sha512-JYOWTeFoS0Z93587vRJgASD5Ut11fYl5NyihP3KrYBvMe1FRRs6RN7m20SA/16GM4P6hTnZjT+UmDOt38UeXNg=="
+ },
+ "object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ },
+ "object.assign": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+ },
+ "pac-proxy-agent": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz",
+ "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==",
+ "requires": {
+ "@tootallnate/once": "1",
+ "agent-base": "6",
+ "debug": "4",
+ "get-uri": "3",
+ "http-proxy-agent": "^4.0.1",
+ "https-proxy-agent": "5",
+ "pac-resolver": "^5.0.0",
+ "raw-body": "^2.2.0",
+ "socks-proxy-agent": "5"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "pac-resolver": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.1.tgz",
+ "integrity": "sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==",
+ "requires": {
+ "degenerator": "^3.0.2",
+ "ip": "^1.1.5",
+ "netmask": "^2.0.2"
+ }
+ },
+ "parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
+ },
+ "pdf-parser": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/pdf-parser/-/pdf-parser-1.0.5.tgz",
+ "integrity": "sha512-57abulap1s4GYqaDVZdbXxA7h4GOGnmYvU8fJlI03VbuQCQnj6nZmMB0Ed1qsRehNPtQiqAjPnJFIWdR5BB9qQ==",
+ "requires": {
+ "node-ensure": "^0.0.0"
+ }
+ },
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
+ },
+ "pick-util": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/pick-util/-/pick-util-1.1.5.tgz",
+ "integrity": "sha512-H0MaM8T7wpQ/azvB12ChZw7kpSFzjsgv3Z+N7fUWnL1McTGSEeroCngcK4eOPiFQq08rAyKX3hadcAB1kUqfXA==",
+ "requires": {
+ "@jonkemp/package-utils": "^1.0.8"
+ }
+ },
+ "pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "requires": {
+ "find-up": "^4.0.0"
+ }
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w=="
+ },
+ "proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "requires": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ }
+ },
+ "proxy-agent": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz",
+ "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==",
+ "requires": {
+ "agent-base": "^6.0.0",
+ "debug": "4",
+ "http-proxy-agent": "^4.0.0",
+ "https-proxy-agent": "^5.0.0",
+ "lru-cache": "^5.1.1",
+ "pac-proxy-agent": "^5.0.0",
+ "proxy-from-env": "^1.0.0",
+ "socks-proxy-agent": "^5.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ }
+ }
+ },
+ "proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
+ "psl": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
+ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ },
+ "puppeteer": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-10.4.0.tgz",
+ "integrity": "sha512-2cP8mBoqnu5gzAVpbZ0fRaobBWZM8GEUF4I1F6WbgHrKV/rz7SX8PG2wMymZgD0wo0UBlg2FBPNxlF/xlqW6+w==",
+ "requires": {
+ "debug": "4.3.1",
+ "devtools-protocol": "0.0.901419",
+ "extract-zip": "2.0.1",
+ "https-proxy-agent": "5.0.0",
+ "node-fetch": "2.6.1",
+ "pkg-dir": "4.2.0",
+ "progress": "2.0.1",
+ "proxy-from-env": "1.1.0",
+ "rimraf": "3.0.2",
+ "tar-fs": "2.0.0",
+ "unbzip2-stream": "1.3.3",
+ "ws": "7.4.6"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "extract-zip": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
+ "requires": {
+ "@types/yauzl": "^2.9.1",
+ "debug": "^4.1.1",
+ "get-stream": "^5.1.0",
+ "yauzl": "^2.10.0"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "progress": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz",
+ "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg=="
+ },
+ "ws": {
+ "version": "7.4.6",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
+ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A=="
+ }
+ }
+ },
+ "qs": {
+ "version": "6.10.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
+ "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
+ "requires": {
+ "side-channel": "^1.0.4"
+ }
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
+ },
+ "raw-body": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
+ "requires": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "regexp.prototype.flags": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
+ "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "functions-have-names": "^1.2.2"
+ }
+ },
+ "remote-content": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/remote-content/-/remote-content-3.0.0.tgz",
+ "integrity": "sha512-/hjCYVqWY/jYR07ptEJpClnYrGedSQ5AxCrEeMb3NlrxTgUK/7+iCOReE3z1QMYm3UL7sJX3o7cww/NC6UgyhA==",
+ "requires": {
+ "proxy-from-env": "^1.1.0",
+ "superagent": "^7.0.2",
+ "superagent-proxy": "^3.0.0"
+ }
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "saxes": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz",
+ "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
+ "requires": {
+ "xmlchars": "^2.2.0"
+ }
+ },
+ "semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "send": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "2.4.1",
+ "range-parser": "~1.2.1",
+ "statuses": "2.0.1"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.18.0"
+ }
+ },
+ "setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
+ "slick": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/slick/-/slick-1.12.2.tgz",
+ "integrity": "sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A=="
+ },
+ "smart-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="
+ },
+ "socks": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz",
+ "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==",
+ "requires": {
+ "ip": "^1.1.5",
+ "smart-buffer": "^4.2.0"
+ }
+ },
+ "socks-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==",
+ "requires": {
+ "agent-base": "^6.0.2",
+ "debug": "4",
+ "socks": "^2.3.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ },
+ "specificity": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz",
+ "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg=="
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ },
+ "statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
+ "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
+ "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "style-data": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/style-data/-/style-data-1.4.8.tgz",
+ "integrity": "sha512-RBJD+YQef4PzYKqC4PQEjDvyX709mwEClYg9u0A5EPXqdSkN2BtMnF/tW7EtS9Q0FnBF+lrWsK5+bEKqA+++Dg==",
+ "requires": {
+ "cheerio": "^0.22.0",
+ "mediaquery-text": "^1.2.0",
+ "pick-util": "^1.1.4"
+ }
+ },
+ "superagent": {
+ "version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-7.1.5.tgz",
+ "integrity": "sha512-HQYyGuDRFGmZ6GNC4hq2f37KnsY9Lr0/R1marNZTgMweVDQLTLJJ6DGQ9Tj/xVVs5HEnop9EMmTbywb5P30aqw==",
+ "requires": {
+ "component-emitter": "^1.3.0",
+ "cookiejar": "^2.1.3",
+ "debug": "^4.3.4",
+ "fast-safe-stringify": "^2.1.1",
+ "form-data": "^4.0.0",
+ "formidable": "^2.0.1",
+ "methods": "^1.1.2",
+ "mime": "^2.5.0",
+ "qs": "^6.10.3",
+ "readable-stream": "^3.6.0",
+ "semver": "^7.3.7"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "mime": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg=="
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "superagent-proxy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/superagent-proxy/-/superagent-proxy-3.0.0.tgz",
+ "integrity": "sha512-wAlRInOeDFyd9pyonrkJspdRAxdLrcsZ6aSnS+8+nu4x1aXbz6FWSTT9M6Ibze+eG60szlL7JA8wEIV7bPWuyQ==",
+ "requires": {
+ "debug": "^4.3.2",
+ "proxy-agent": "^5.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "symbol-tree": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
+ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
+ },
+ "tar-fs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz",
+ "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==",
+ "requires": {
+ "chownr": "^1.1.1",
+ "mkdirp": "^0.5.1",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.0.0"
+ }
+ },
+ "tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "requires": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+ },
+ "toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
+ },
+ "tough-cookie": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz",
+ "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==",
+ "requires": {
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.1.2"
+ }
+ },
+ "tr46": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
+ "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
+ "requires": {
+ "punycode": "^2.1.1"
+ }
+ },
+ "tslib": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
+ "requires": {
+ "prelude-ls": "~1.1.2"
+ }
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ }
+ },
+ "uglify-js": {
+ "version": "3.16.2",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.2.tgz",
+ "integrity": "sha512-AaQNokTNgExWrkEYA24BTNMSjyqEXPSfhqoS0AxmHkCJ4U+Dyy5AvbGV/sqxuxficEfGGoX3zWw9R7QpLFfEsg==",
+ "optional": true
+ },
+ "unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ }
+ },
+ "unbzip2-stream": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz",
+ "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==",
+ "requires": {
+ "buffer": "^5.2.1",
+ "through": "^2.3.8"
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
+ },
+ "util": {
+ "version": "0.12.4",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz",
+ "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "is-arguments": "^1.0.4",
+ "is-generator-function": "^1.0.7",
+ "is-typed-array": "^1.1.3",
+ "safe-buffer": "^5.1.2",
+ "which-typed-array": "^1.1.2"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
+ },
+ "vm2": {
+ "version": "3.9.10",
+ "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.10.tgz",
+ "integrity": "sha512-AuECTSvwu2OHLAZYhG716YzwodKCIJxB6u1zG7PgSQwIgAlEaoXH52bxdcvT8GkGjnYK7r7yWDW0m0sOsPuBjQ==",
+ "requires": {
+ "acorn": "^8.7.0",
+ "acorn-walk": "^8.2.0"
+ }
+ },
+ "w3c-hr-time": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
+ "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
+ "requires": {
+ "browser-process-hrtime": "^1.0.0"
+ }
+ },
+ "w3c-xmlserializer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz",
+ "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==",
+ "requires": {
+ "xml-name-validator": "^3.0.0"
+ }
+ },
+ "webidl-conversions": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
+ "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w=="
+ },
+ "whatwg-encoding": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
+ "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
+ "requires": {
+ "iconv-lite": "0.4.24"
+ }
+ },
+ "whatwg-mimetype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
+ "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="
+ },
+ "whatwg-url": {
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
+ "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
+ "requires": {
+ "lodash": "^4.7.0",
+ "tr46": "^2.1.0",
+ "webidl-conversions": "^6.1.0"
+ }
+ },
+ "which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "requires": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ }
+ },
+ "which-typed-array": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz",
+ "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==",
+ "requires": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "es-abstract": "^1.20.0",
+ "for-each": "^0.3.3",
+ "has-tostringtag": "^1.0.0",
+ "is-typed-array": "^1.1.9"
+ }
+ },
+ "word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
+ },
+ "wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "ws": {
+ "version": "7.5.8",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz",
+ "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw=="
+ },
+ "xml-name-validator": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
+ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw=="
+ },
+ "xmlchars": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
+ },
+ "xregexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz",
+ "integrity": "sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA=="
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
+ "yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
+ "requires": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/scripts/datasheet-rendering/package.json b/scripts/datasheet-rendering/package.json
new file mode 100644
index 0000000000..a09bf910d0
--- /dev/null
+++ b/scripts/datasheet-rendering/package.json
@@ -0,0 +1,15 @@
+{
+ "name": "datasheet-rendering",
+ "version": "1.0.0",
+ "description": "",
+ "type": "module",
+ "main": "render-datasheets.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "author": "Sebastian Romero",
+ "license": "ISC",
+ "dependencies": {
+ "datasheet-renderer": "^1.0.2"
+ }
+}
diff --git a/scripts/datasheet-rendering/render-datasheets.cmd b/scripts/datasheet-rendering/render-datasheets.cmd
new file mode 100755
index 0000000000..f4ef50cd70
--- /dev/null
+++ b/scripts/datasheet-rendering/render-datasheets.cmd
@@ -0,0 +1,20 @@
+@ECHO OFF
+
+::Install fonts
+copy styles\fonts %localappdata%\Microsoft\Windows\Fonts /Y
+echo "Font installed on the system:"
+dir %localappdata%\Microsoft\Windows\Fonts
+
+node -v
+IF %ERRORLEVEL% NEQ 0 (
+ cls
+ ECHO Please install Node.js from here https://nodejs.org/en/download/
+ EXIT /B
+) else (
+
+ ::Only install the modules if npm list return an Error
+ npm list --depth=0 || npm install && cls && ECHO Modules installed
+
+ ::Argument %* only used with "Current directory" option
+ npx datasheet-renderer config.json %*
+)
\ No newline at end of file
diff --git a/scripts/datasheet-rendering/render-datasheets.sh b/scripts/datasheet-rendering/render-datasheets.sh
new file mode 100755
index 0000000000..740f20a3bc
--- /dev/null
+++ b/scripts/datasheet-rendering/render-datasheets.sh
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+if [ -n "$CI" ]; then
+ echo "Current system:"
+ uname -a
+ # Fix for SSL problem in phantom.js
+ # export OPENSSL_CONF=/etc/ssl/
+
+ mkdir /usr/share/fonts/truetype/open-sans
+ mkdir /usr/share/fonts/truetype/roboto-mono
+
+ cp -a ./styles/fonts/OpenSans*.ttf /usr/share/fonts/truetype/open-sans
+ cp -a ./styles/fonts/RobotoMono*.ttf /usr/share/fonts/truetype/roboto-mono
+ fc-cache /usr/share/fonts
+
+ echo "Font info:"
+ fc-list | grep "OpenSans"
+ fc-list | grep "RobotoMono"
+
+ apt-get -qq update -y
+ # SEE: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#chrome-headless-doesnt-launch-on-unix
+ apt-get -qq install -y -o=Dpkg::Use-Pty=0 ca-certificates fonts-liberation libappindicator3-1 libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 lsb-release wget xdg-utils
+
+ echo "Running on Node version: `node -v`"
+ npm install
+ npx datasheet-renderer config.json
+ exit 0
+fi
+
+if ! command -v node &> /dev/null
+then
+ echo "Please install Node.js from here https://nodejs.org/en/download/"
+ exit -1
+fi
+
+VERSION=`node -v | grep -o 'v\d*'| cut -d "v" -f2`
+MIN_VERSION=14
+
+if [ -n "$VERSION" ] && [ "$VERSION" -lt $MIN_VERSION ]; then
+ echo "You're using an old version of Node.js ($VERSION). Please update to $MIN_VERSION or newer."
+ exit -1
+fi
+
+npm list --depth=0 > /dev/null 2>&1
+
+if [ $? -ne 0 ]; then
+ echo "Installing node modules..."
+ npm install
+fi
+
+npx datasheet-renderer config.json $@
\ No newline at end of file
diff --git a/scripts/datasheet-rendering/styles/common-style.css b/scripts/datasheet-rendering/styles/common-style.css
new file mode 100644
index 0000000000..9bddb666ca
--- /dev/null
+++ b/scripts/datasheet-rendering/styles/common-style.css
@@ -0,0 +1,298 @@
+html {
+ font-family: 'Open Sans', 'Source Sans Pro', sans-serif;
+ font-size: 12px; /* 10px for 16px based systems */
+ line-height: 1.6;
+ color: black;
+}
+
+body {
+ margin: 0;
+ padding: 0;
+}
+
+a {
+ color: black;
+ text-decoration: none;
+}
+
+p {
+ margin-block-start: 0.75em;
+ margin-block-end: 0.75em;
+}
+
+table {
+ font-size: 1rem;
+ width: 100%;
+ border-collapse: collapse;
+ margin-bottom: 10px;
+}
+
+hr {
+ border-style: none;
+ border: 0;
+ background-color: #666;
+ height: 1px;
+}
+
+td, th {
+ border: 1px solid #666;
+ text-align: left;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+
+td[align="right"], th[align="right"] {
+ text-align: right;
+}
+
+td[align="center"], th[align="center"] {
+ text-align: center;
+}
+
+th {
+ background-color: #bdc7c7;
+}
+
+h1, h2, h3, h4 {
+ color: #95a5a6;
+ font-family: 'Roboto Mono', monospace;
+}
+
+h1 {
+ font-size: 2rem;
+}
+
+h2 {
+ font-size: 1.6rem;
+ padding-top: 0.75em;
+}
+
+h3, h4 {
+ font-size: 1.2rem;
+}
+
+h2, h3 {
+ font-weight: bold;
+}
+
+ul {
+ list-style-type: square;
+ padding-left: 2rem;
+ margin-top: 0.5rem;
+ margin-bottom: 0.75rem;
+}
+
+li:last-of-type {
+ margin-bottom: 1rem;
+}
+
+img {
+ max-width: 100%;
+ max-height: 610px;
+ margin: auto;
+ display: block;
+ align-self: center;
+ page-break-inside: avoid;
+}
+
+/**
+Scaling classes for images based on their suffix
+**/
+
+img[src*="_20."]{
+ max-width: 20%;
+}
+
+img[src*="_40."]{
+ max-width: 40%;
+ max-width: 40%;
+}
+
+img[src*="_60."]{
+ max-width: 60%;
+}
+
+img[src*="_80."]{
+ max-width: 80%;
+}
+
+
+.header {
+ display: block;
+ width: 100%;
+ margin: 10mm 15mm 0 15mm;
+ padding-bottom: 1mm;
+ border-bottom: 1px solid #666;
+}
+
+.header-title {
+ font-family: 'Roboto Mono', monospace;
+ text-align:right;
+ color: #95a5a6;
+ float: right;
+ max-width: 70%;
+ font-weight: bold;
+ font-size: 1.2rem;
+ line-height: 1.3;
+ /* vertical-align: middle; */
+}
+
+.subtitle {
+ text-align:right;
+ margin-top: 0;
+ margin-bottom: 4rem;
+}
+
+.logo-header{
+ float: left;
+}
+
+.footer {
+ display: flex;
+ justify-content: space-between;
+ width: 100%;
+ margin-bottom: 8mm;
+ margin-left: 15mm;
+ margin-right: 15mm;
+ padding-top: 1.25mm;
+ border-top: 1px solid #666666;
+ font-size: 0.8rem;
+}
+
+.pagination {
+ font-weight: bold;
+ width: 100px;
+}
+
+.product-name-footer {
+ flex-grow: 1;
+ text-align: center;
+}
+
+.modified-date {
+ text-align: right;
+ width: 100px;
+}
+
+/*
+Table of contents page numbers styles
+*/
+.page-number {
+ float: right;
+}
+
+.page-number::after {
+ clear: both;
+}
+
+.list-h2 {
+ font-weight: bold;
+ margin-bottom: 5px;
+}
+
+.list-h3 {
+ padding-left: 20px;
+ margin-bottom: 5px;
+}
+
+.list-h4 {
+ padding-left: 40px;
+ margin-bottom: 5px;
+}
+
+.list-h5 {
+ padding-left: 60px;
+ margin-bottom: 5px;
+}
+
+.list-h6 {
+ padding-left: 80px;
+ margin-bottom: 5px;
+}
+
+.img-description {
+ font-size: 0.8rem;
+ font-style: italic;
+ text-align: center;
+ page-break-before: avoid;
+ max-width: 75%;
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: 1.75em;
+}
+
+#features {
+ page-break-before: always;
+}
+
+#features, #description, #target-areas {
+ color: black;
+ font-size: 1.4rem;
+ font-weight: bold;
+}
+
+#target-areas {
+ clear: both;
+ margin-top: 15px;
+}
+
+#target-areas + p {
+ border-bottom: 1px solid #95a5a6;
+ padding-bottom: 20px;
+}
+
+h1#features {
+ margin-top: 15px;
+}
+
+h1#contents {
+ page-break-before:always;
+}
+
+#table-of-contents {
+ page-break-after:always;
+}
+
+/**
+Formats the featured image if it's placed at the very beginning
+of the markdown document.
+*/
+div.subtitle + p > img:first-child {
+ width: 50%;
+ display: block;
+ margin-left: 50%;
+ margin-top: 15px;
+}
+
+/** Hide image caption of feature image **/
+div.subtitle + p + div.img-description {
+ display: none;
+}
+
+ul#feature-list {
+ font-size: 1rem;
+}
+
+ul#feature-list li {
+ page-break-inside: avoid;
+}
+
+
+h1, h2, h3, h4 {
+ page-break-after: avoid;
+ page-break-inside: avoid;
+ margin-bottom: 0.5em;
+}
+
+/* Don't break before elements just after a heading */
+h1 + *, h2 + *, h3 + *, h4 + * {
+ page-break-before: avoid;
+}
+
+/* Hack to avoid page breaks after a heading */
+h1::after, h2::after, h3::after, h4::after {
+ content: "";
+ display: block;
+ height: 300px;
+ margin-bottom: -300px;
+}
\ No newline at end of file
diff --git a/scripts/datasheet-rendering/styles/edu-logo.svg b/scripts/datasheet-rendering/styles/edu-logo.svg
new file mode 100644
index 0000000000..7bb6e588fb
--- /dev/null
+++ b/scripts/datasheet-rendering/styles/edu-logo.svg
@@ -0,0 +1,48 @@
+
+
+
diff --git a/scripts/datasheet-rendering/styles/edu-style.css b/scripts/datasheet-rendering/styles/edu-style.css
new file mode 100644
index 0000000000..cfaeff04d7
--- /dev/null
+++ b/scripts/datasheet-rendering/styles/edu-style.css
@@ -0,0 +1,7 @@
+.header {
+ border-color: #008184;
+}
+
+.header-title {
+ color: #008184;
+}
\ No newline at end of file
diff --git a/scripts/datasheet-rendering/styles/fonts/OpenSans-Bold.ttf b/scripts/datasheet-rendering/styles/fonts/OpenSans-Bold.ttf
new file mode 100644
index 0000000000..fd79d43bea
Binary files /dev/null and b/scripts/datasheet-rendering/styles/fonts/OpenSans-Bold.ttf differ
diff --git a/scripts/datasheet-rendering/styles/fonts/OpenSans-Italic.ttf b/scripts/datasheet-rendering/styles/fonts/OpenSans-Italic.ttf
new file mode 100644
index 0000000000..c90da48ff3
Binary files /dev/null and b/scripts/datasheet-rendering/styles/fonts/OpenSans-Italic.ttf differ
diff --git a/scripts/datasheet-rendering/styles/fonts/OpenSans-Regular.ttf b/scripts/datasheet-rendering/styles/fonts/OpenSans-Regular.ttf
new file mode 100644
index 0000000000..db433349b7
Binary files /dev/null and b/scripts/datasheet-rendering/styles/fonts/OpenSans-Regular.ttf differ
diff --git a/scripts/datasheet-rendering/styles/fonts/RobotoMono-Bold.ttf b/scripts/datasheet-rendering/styles/fonts/RobotoMono-Bold.ttf
new file mode 100644
index 0000000000..900fce6848
Binary files /dev/null and b/scripts/datasheet-rendering/styles/fonts/RobotoMono-Bold.ttf differ
diff --git a/scripts/datasheet-rendering/styles/fonts/RobotoMono-Regular.ttf b/scripts/datasheet-rendering/styles/fonts/RobotoMono-Regular.ttf
new file mode 100644
index 0000000000..7c4ce36a44
Binary files /dev/null and b/scripts/datasheet-rendering/styles/fonts/RobotoMono-Regular.ttf differ
diff --git a/scripts/datasheet-rendering/styles/limited-edition-logo.svg b/scripts/datasheet-rendering/styles/limited-edition-logo.svg
new file mode 100644
index 0000000000..6d3030186d
--- /dev/null
+++ b/scripts/datasheet-rendering/styles/limited-edition-logo.svg
@@ -0,0 +1,16 @@
+
+
+
diff --git a/scripts/datasheet-rendering/styles/limited-edition-style.css b/scripts/datasheet-rendering/styles/limited-edition-style.css
new file mode 100644
index 0000000000..d9f9f371e9
--- /dev/null
+++ b/scripts/datasheet-rendering/styles/limited-edition-style.css
@@ -0,0 +1,21 @@
+.header {
+ border-color: #58585A;
+}
+
+.header-title {
+ color: #3E4440;
+}
+
+.product-variant {
+ /* color: #8B7866; */
+ color: #e4c5a9;
+}
+
+th {
+ background-color: #3e4440;
+ color: white;
+}
+
+h1, h2, h3, h4 {
+ color: #3e4440;
+}
\ No newline at end of file
diff --git a/scripts/datasheet-rendering/styles/maker-logo.svg b/scripts/datasheet-rendering/styles/maker-logo.svg
new file mode 100644
index 0000000000..9091b796e1
--- /dev/null
+++ b/scripts/datasheet-rendering/styles/maker-logo.svg
@@ -0,0 +1,23 @@
+
+
+
diff --git a/scripts/datasheet-rendering/styles/maker-style.css b/scripts/datasheet-rendering/styles/maker-style.css
new file mode 100644
index 0000000000..cfaeff04d7
--- /dev/null
+++ b/scripts/datasheet-rendering/styles/maker-style.css
@@ -0,0 +1,7 @@
+.header {
+ border-color: #008184;
+}
+
+.header-title {
+ color: #008184;
+}
\ No newline at end of file
diff --git a/scripts/datasheet-rendering/styles/pro-logo.svg b/scripts/datasheet-rendering/styles/pro-logo.svg
new file mode 100644
index 0000000000..b727c304ef
--- /dev/null
+++ b/scripts/datasheet-rendering/styles/pro-logo.svg
@@ -0,0 +1,45 @@
+
+
+
diff --git a/scripts/datasheet-rendering/styles/pro-style.css b/scripts/datasheet-rendering/styles/pro-style.css
new file mode 100644
index 0000000000..e0f164d835
--- /dev/null
+++ b/scripts/datasheet-rendering/styles/pro-style.css
@@ -0,0 +1,8 @@
+.header {
+ border-color: #95a5a6;
+ /* border-color: #58585A; */
+}
+
+.header-title {
+ color: #2F2F2F;
+}
\ No newline at end of file
diff --git a/scripts/spell-check-fix.cmd b/scripts/spell-check-fix.cmd
new file mode 100644
index 0000000000..208178ab60
--- /dev/null
+++ b/scripts/spell-check-fix.cmd
@@ -0,0 +1,19 @@
+@ECHO OFF
+
+pip --version || pip3 --version
+IF %ERRORLEVEL% NEQ 0 (
+ cls
+ ECHO Please install Python from https://www.python.org/downloads/ and Pip following https://pip.pypa.io/en/stable/installation/
+ EXIT /B
+)
+
+cls
+codespell --version
+IF %ERRORLEVEL% NEQ 0 (
+ ECHO Installing codespell
+ pip install codespell || pip3 install codespell
+) else (
+ ECHO Codespell already installed
+)
+cls
+codespell -w -I scripts/resources/spell-check-ignore-list.txt --skip="*.svg,*.dxf,*.pdf" content
\ No newline at end of file
diff --git a/scripts/spell-check.cmd b/scripts/spell-check.cmd
index 860d4215c4..ec1ee9f8e6 100644
--- a/scripts/spell-check.cmd
+++ b/scripts/spell-check.cmd
@@ -3,7 +3,7 @@
pip --version || pip3 --version
IF %ERRORLEVEL% NEQ 0 (
cls
- ECHO Please install Python from https://www.python.org/downloads/ and Pip following https://pip.pypa.io/en/stable/installation/
+ ECHO Please install Python® from https://www.python.org/downloads/ and Pip following https://pip.pypa.io/en/stable/installation/
EXIT /B
)
diff --git a/scripts/validation/fix-issues.js b/scripts/validation/fix-issues.js
index 25225e926f..71f11a25f7 100644
--- a/scripts/validation/fix-issues.js
+++ b/scripts/validation/fix-issues.js
@@ -1,8 +1,8 @@
-import { fixMissingTitleCase } from './fixes/headings.js'
-import { ConfigManager } from './logic/config-manager.js';
-import { ArticleManager } from './logic/article-manager.js';
-import { fixUnusedAssets } from './fixes/assets.js';
-import { replaceItalicEmphasisWithBoldEmphasis } from './fixes/styling.js';
+import { fixMissingTitleCase } from 'content-lint';
+import { ConfigManager } from 'content-lint';
+import { ArticleManager } from 'content-lint';
+import { fixUnusedAssets } from 'content-lint';
+import { replaceItalicEmphasisWithBoldEmphasis } from 'content-lint';
const configManager = new ConfigManager();
configManager.addConfigFile("generic", "./config/config-generic.yml");
diff --git a/scripts/validation/package-lock.json b/scripts/validation/package-lock.json
index ba2ec8adaa..3ef955cb45 100644
--- a/scripts/validation/package-lock.json
+++ b/scripts/validation/package-lock.json
@@ -9,7 +9,7 @@
"version": "1.0.0",
"license": "ISC",
"dependencies": {
- "content-lint": "^1.1.2"
+ "content-lint": "^1.1.3"
}
},
"node_modules/ansi-styles": {
@@ -27,12 +27,9 @@
}
},
"node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"node_modules/array-back": {
"version": "3.1.0",
@@ -43,9 +40,14 @@
}
},
"node_modules/async": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
- "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g=="
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
+ },
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
},
"node_modules/chalk": {
"version": "4.1.2",
@@ -62,6 +64,42 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
+ "node_modules/cheerio": {
+ "version": "1.0.0-rc.12",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz",
+ "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==",
+ "dependencies": {
+ "cheerio-select": "^2.1.0",
+ "dom-serializer": "^2.0.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "htmlparser2": "^8.0.1",
+ "parse5": "^7.0.0",
+ "parse5-htmlparser2-tree-adapter": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/cheerio?sponsor=1"
+ }
+ },
+ "node_modules/cheerio-select": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
+ "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-select": "^5.1.0",
+ "css-what": "^6.1.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
"node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -101,9 +139,9 @@
}
},
"node_modules/content-lint": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/content-lint/-/content-lint-1.1.2.tgz",
- "integrity": "sha512-wUsXp9i790R0/bbvgT39WcYtnh0a60r992PvUY/NDd7WhoNXrWteQKuz6Qf4q4FutWm6yn1rLaSHIiLNHFPjKA==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/content-lint/-/content-lint-1.1.3.tgz",
+ "integrity": "sha512-Z5KJywQPEXMYMf3gDXFpwt94Pw0QVwcRiknL2GwVh5eERusUEYDUabk3uVP0i7Dx8zYzKocioVuRUDi3dxq/Iw==",
"dependencies": {
"command-line-args": "^5.1.3",
"front-matter": "^4.0.2",
@@ -118,6 +156,32 @@
"title-case": "^3.0.3"
}
},
+ "node_modules/css-select": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
+ "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.1.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "nth-check": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
"node_modules/debug": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
@@ -126,6 +190,68 @@
"ms": "^2.1.1"
}
},
+ "node_modules/dom-serializer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ]
+ },
+ "node_modules/domhandler": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+ "dependencies": {
+ "domelementtype": "^2.3.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz",
+ "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==",
+ "dependencies": {
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/entities": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz",
+ "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
"node_modules/esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
@@ -157,6 +283,14 @@
"js-yaml": "^3.13.1"
}
},
+ "node_modules/front-matter/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
"node_modules/front-matter/node_modules/js-yaml": {
"version": "3.14.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
@@ -186,16 +320,42 @@
}
},
"node_modules/html-entities": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz",
- "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ=="
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz",
+ "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA=="
+ },
+ "node_modules/html-link-extractor": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/html-link-extractor/-/html-link-extractor-1.0.5.tgz",
+ "integrity": "sha512-ADd49pudM157uWHwHQPUSX4ssMsvR/yHIswOR5CUfBdK9g9ZYGMhVSE6KZVHJ6kCkR0gH4htsfzU6zECDNVwyw==",
+ "dependencies": {
+ "cheerio": "^1.0.0-rc.10"
+ }
+ },
+ "node_modules/htmlparser2": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz",
+ "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==",
+ "funding": [
+ "https://github.com/fb55/htmlparser2?sponsor=1",
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "entities": "^4.3.0"
+ }
},
"node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
},
"engines": {
"node": ">=0.10.0"
@@ -204,25 +364,31 @@
"node_modules/inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
},
"node_modules/is-absolute-url": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz",
- "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz",
+ "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==",
"engines": {
- "node": ">=8"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-relative-url": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-3.0.0.tgz",
- "integrity": "sha512-U1iSYRlY2GIMGuZx7gezlB5dp1Kheaym7zKzO1PV06mOihiWTXejLwm4poEJysPyXF+HtK/BEd0DVlcCh30pEA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-4.0.0.tgz",
+ "integrity": "sha512-PkzoL1qKAYXNFct5IKdKRH/iBQou/oCC85QhXj6WKtUQBliZ4Yfd3Zk27RHu9KQG8r6zgvAA2AQKC9p+rqTszg==",
"dependencies": {
- "is-absolute-url": "^3.0.0"
+ "is-absolute-url": "^4.0.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/isemail": {
@@ -247,28 +413,23 @@
"js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/js-yaml/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
"node_modules/jsonschema": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz",
- "integrity": "sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz",
+ "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==",
"engines": {
"node": "*"
}
},
"node_modules/link-check": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/link-check/-/link-check-5.0.2.tgz",
- "integrity": "sha512-F7k7HzOFY3lh11o3nQTCfi3HTrUMbn/0LQ5aBU7vgronoh8HWGZfRC4Jh0ghuQDbtTGNO4u4is6AoqK0hsYDJg==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/link-check/-/link-check-5.2.0.tgz",
+ "integrity": "sha512-xRbhYLaGDw7eRDTibTAcl6fXtmUQ13vkezQiTqshHHdGueQeumgxxmQMIOmJYsh2p8BF08t8thhDQ++EAOOq3w==",
"dependencies": {
- "is-relative-url": "^3.0.0",
+ "is-relative-url": "^4.0.0",
"isemail": "^3.2.0",
"ms": "^2.1.3",
- "needle": "^3.0.0"
+ "needle": "^3.1.0"
}
},
"node_modules/lodash": {
@@ -279,20 +440,20 @@
"node_modules/lodash.camelcase": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
- "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY="
+ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="
},
"node_modules/markdown-link-check": {
- "version": "3.9.3",
- "resolved": "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.9.3.tgz",
- "integrity": "sha512-eXW4jTs0z7MBnTnpgaM+jRNtEwBjKCW3yldNCE4v7kHqpm4BTGPaBbXqzt/Kdz1/fZl91hIXgBE/21yps1PtIQ==",
+ "version": "3.10.3",
+ "resolved": "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.10.3.tgz",
+ "integrity": "sha512-uGdJiZOy1CVWlRe7CyBSJ0Gz80Xm4vt++xjX9sNFjB7qcAxLinaMmzFQ5xOwERaXC9mK770BhnqnsyJT1gTr9w==",
"dependencies": {
- "async": "^3.2.3",
+ "async": "^3.2.4",
"chalk": "^4.1.2",
"commander": "^6.2.0",
- "link-check": "^5.0.2",
+ "link-check": "^5.2.0",
"lodash": "^4.17.21",
- "markdown-link-extractor": "^1.3.1",
- "needle": "^3.0.0",
+ "markdown-link-extractor": "^3.1.0",
+ "needle": "^3.1.0",
"progress": "^2.0.3"
},
"bin": {
@@ -300,17 +461,18 @@
}
},
"node_modules/markdown-link-extractor": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-1.3.1.tgz",
- "integrity": "sha512-IosNBtHXplzEq2n9WoSi83LNLCWgLnb+8Xq379Ct5xrLLzmqPUtc+A1oqo6Sd32YfKus9uLedFNSwFK1sCzoNQ==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-3.1.0.tgz",
+ "integrity": "sha512-r0NEbP1dsM+IqB62Ru9TXLP/HDaTdBNIeylYXumuBi6Xv4ufjE1/g3TnslYL8VNqNcGAGbMptQFHrrdfoZ/Sug==",
"dependencies": {
- "marked": "^4.0.10"
+ "html-link-extractor": "^1.0.5",
+ "marked": "^4.1.0"
}
},
"node_modules/markdown-link-extractor/node_modules/marked": {
- "version": "4.0.12",
- "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz",
- "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.3.tgz",
+ "integrity": "sha512-slWRdJkbTZ+PjkyJnE30Uid64eHwbwa1Q25INCAYfZlK4o6ylagBy/Le9eWntqJFoFT93ikUKMv47GZ4gTwHkw==",
"bin": {
"marked": "bin/marked.js"
},
@@ -335,12 +497,12 @@
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/needle": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/needle/-/needle-3.0.0.tgz",
- "integrity": "sha512-eGr0qnfHxAjr+Eptl1zr2lgUQUPC1SZfTkg2kFi0kxr1ChJonHUVYobkug8siBKMlyUVVp56MSkp6CSeXH/jgw==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz",
+ "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==",
"dependencies": {
"debug": "^3.2.6",
- "iconv-lite": "^0.4.4",
+ "iconv-lite": "^0.6.3",
"sax": "^1.2.4"
},
"bin": {
@@ -358,10 +520,44 @@
"he": "1.2.0"
}
},
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
+ "node_modules/parse5": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
+ "dependencies": {
+ "entities": "^4.4.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parse5-htmlparser2-tree-adapter": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz",
+ "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==",
+ "dependencies": {
+ "domhandler": "^5.0.2",
+ "parse5": "^7.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
"node_modules/path": {
"version": "0.12.7",
"resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
- "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=",
+ "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==",
"dependencies": {
"process": "^0.11.1",
"util": "^0.10.3"
@@ -370,7 +566,7 @@
"node_modules/process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
"engines": {
"node": ">= 0.6.0"
}
@@ -415,7 +611,7 @@
"node_modules/sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
},
"node_modules/supports-color": {
"version": "7.2.0",
@@ -437,9 +633,9 @@
}
},
"node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
+ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
},
"node_modules/typical": {
"version": "4.0.0",
@@ -468,12 +664,9 @@
}
},
"argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "requires": {
- "sprintf-js": "~1.0.2"
- }
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"array-back": {
"version": "3.1.0",
@@ -481,9 +674,14 @@
"integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q=="
},
"async": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
- "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g=="
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
},
"chalk": {
"version": "4.1.2",
@@ -494,6 +692,33 @@
"supports-color": "^7.1.0"
}
},
+ "cheerio": {
+ "version": "1.0.0-rc.12",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz",
+ "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==",
+ "requires": {
+ "cheerio-select": "^2.1.0",
+ "dom-serializer": "^2.0.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "htmlparser2": "^8.0.1",
+ "parse5": "^7.0.0",
+ "parse5-htmlparser2-tree-adapter": "^7.0.0"
+ }
+ },
+ "cheerio-select": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
+ "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-select": "^5.1.0",
+ "css-what": "^6.1.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1"
+ }
+ },
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -524,9 +749,9 @@
"integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA=="
},
"content-lint": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/content-lint/-/content-lint-1.1.2.tgz",
- "integrity": "sha512-wUsXp9i790R0/bbvgT39WcYtnh0a60r992PvUY/NDd7WhoNXrWteQKuz6Qf4q4FutWm6yn1rLaSHIiLNHFPjKA==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/content-lint/-/content-lint-1.1.3.tgz",
+ "integrity": "sha512-Z5KJywQPEXMYMf3gDXFpwt94Pw0QVwcRiknL2GwVh5eERusUEYDUabk3uVP0i7Dx8zYzKocioVuRUDi3dxq/Iw==",
"requires": {
"command-line-args": "^5.1.3",
"front-matter": "^4.0.2",
@@ -541,6 +766,23 @@
"title-case": "^3.0.3"
}
},
+ "css-select": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
+ "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.1.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "nth-check": "^2.0.1"
+ }
+ },
+ "css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
+ },
"debug": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
@@ -549,6 +791,44 @@
"ms": "^2.1.1"
}
},
+ "dom-serializer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+ "requires": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
+ }
+ },
+ "domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
+ },
+ "domhandler": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+ "requires": {
+ "domelementtype": "^2.3.0"
+ }
+ },
+ "domutils": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz",
+ "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==",
+ "requires": {
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.1"
+ }
+ },
+ "entities": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz",
+ "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA=="
+ },
"esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
@@ -570,6 +850,14 @@
"js-yaml": "^3.13.1"
},
"dependencies": {
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
"js-yaml": {
"version": "3.14.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
@@ -592,34 +880,53 @@
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
},
"html-entities": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz",
- "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ=="
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz",
+ "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA=="
+ },
+ "html-link-extractor": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/html-link-extractor/-/html-link-extractor-1.0.5.tgz",
+ "integrity": "sha512-ADd49pudM157uWHwHQPUSX4ssMsvR/yHIswOR5CUfBdK9g9ZYGMhVSE6KZVHJ6kCkR0gH4htsfzU6zECDNVwyw==",
+ "requires": {
+ "cheerio": "^1.0.0-rc.10"
+ }
+ },
+ "htmlparser2": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz",
+ "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==",
+ "requires": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "entities": "^4.3.0"
+ }
},
"iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"requires": {
- "safer-buffer": ">= 2.1.2 < 3"
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
}
},
"inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
},
"is-absolute-url": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz",
- "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q=="
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz",
+ "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A=="
},
"is-relative-url": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-3.0.0.tgz",
- "integrity": "sha512-U1iSYRlY2GIMGuZx7gezlB5dp1Kheaym7zKzO1PV06mOihiWTXejLwm4poEJysPyXF+HtK/BEd0DVlcCh30pEA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-4.0.0.tgz",
+ "integrity": "sha512-PkzoL1qKAYXNFct5IKdKRH/iBQou/oCC85QhXj6WKtUQBliZ4Yfd3Zk27RHu9KQG8r6zgvAA2AQKC9p+rqTszg==",
"requires": {
- "is-absolute-url": "^3.0.0"
+ "is-absolute-url": "^4.0.1"
}
},
"isemail": {
@@ -636,29 +943,22 @@
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"requires": {
"argparse": "^2.0.1"
- },
- "dependencies": {
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- }
}
},
"jsonschema": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz",
- "integrity": "sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw=="
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz",
+ "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ=="
},
"link-check": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/link-check/-/link-check-5.0.2.tgz",
- "integrity": "sha512-F7k7HzOFY3lh11o3nQTCfi3HTrUMbn/0LQ5aBU7vgronoh8HWGZfRC4Jh0ghuQDbtTGNO4u4is6AoqK0hsYDJg==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/link-check/-/link-check-5.2.0.tgz",
+ "integrity": "sha512-xRbhYLaGDw7eRDTibTAcl6fXtmUQ13vkezQiTqshHHdGueQeumgxxmQMIOmJYsh2p8BF08t8thhDQ++EAOOq3w==",
"requires": {
- "is-relative-url": "^3.0.0",
+ "is-relative-url": "^4.0.0",
"isemail": "^3.2.0",
"ms": "^2.1.3",
- "needle": "^3.0.0"
+ "needle": "^3.1.0"
}
},
"lodash": {
@@ -669,35 +969,36 @@
"lodash.camelcase": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
- "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY="
+ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="
},
"markdown-link-check": {
- "version": "3.9.3",
- "resolved": "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.9.3.tgz",
- "integrity": "sha512-eXW4jTs0z7MBnTnpgaM+jRNtEwBjKCW3yldNCE4v7kHqpm4BTGPaBbXqzt/Kdz1/fZl91hIXgBE/21yps1PtIQ==",
+ "version": "3.10.3",
+ "resolved": "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.10.3.tgz",
+ "integrity": "sha512-uGdJiZOy1CVWlRe7CyBSJ0Gz80Xm4vt++xjX9sNFjB7qcAxLinaMmzFQ5xOwERaXC9mK770BhnqnsyJT1gTr9w==",
"requires": {
- "async": "^3.2.3",
+ "async": "^3.2.4",
"chalk": "^4.1.2",
"commander": "^6.2.0",
- "link-check": "^5.0.2",
+ "link-check": "^5.2.0",
"lodash": "^4.17.21",
- "markdown-link-extractor": "^1.3.1",
- "needle": "^3.0.0",
+ "markdown-link-extractor": "^3.1.0",
+ "needle": "^3.1.0",
"progress": "^2.0.3"
}
},
"markdown-link-extractor": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-1.3.1.tgz",
- "integrity": "sha512-IosNBtHXplzEq2n9WoSi83LNLCWgLnb+8Xq379Ct5xrLLzmqPUtc+A1oqo6Sd32YfKus9uLedFNSwFK1sCzoNQ==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-3.1.0.tgz",
+ "integrity": "sha512-r0NEbP1dsM+IqB62Ru9TXLP/HDaTdBNIeylYXumuBi6Xv4ufjE1/g3TnslYL8VNqNcGAGbMptQFHrrdfoZ/Sug==",
"requires": {
- "marked": "^4.0.10"
+ "html-link-extractor": "^1.0.5",
+ "marked": "^4.1.0"
},
"dependencies": {
"marked": {
- "version": "4.0.12",
- "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz",
- "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ=="
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.3.tgz",
+ "integrity": "sha512-slWRdJkbTZ+PjkyJnE30Uid64eHwbwa1Q25INCAYfZlK4o6ylagBy/Le9eWntqJFoFT93ikUKMv47GZ4gTwHkw=="
}
}
},
@@ -712,12 +1013,12 @@
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"needle": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/needle/-/needle-3.0.0.tgz",
- "integrity": "sha512-eGr0qnfHxAjr+Eptl1zr2lgUQUPC1SZfTkg2kFi0kxr1ChJonHUVYobkug8siBKMlyUVVp56MSkp6CSeXH/jgw==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz",
+ "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==",
"requires": {
"debug": "^3.2.6",
- "iconv-lite": "^0.4.4",
+ "iconv-lite": "^0.6.3",
"sax": "^1.2.4"
}
},
@@ -729,10 +1030,35 @@
"he": "1.2.0"
}
},
+ "nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "requires": {
+ "boolbase": "^1.0.0"
+ }
+ },
+ "parse5": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
+ "requires": {
+ "entities": "^4.4.0"
+ }
+ },
+ "parse5-htmlparser2-tree-adapter": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz",
+ "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==",
+ "requires": {
+ "domhandler": "^5.0.2",
+ "parse5": "^7.0.0"
+ }
+ },
"path": {
"version": "0.12.7",
"resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
- "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=",
+ "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==",
"requires": {
"process": "^0.11.1",
"util": "^0.10.3"
@@ -741,7 +1067,7 @@
"process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="
},
"progress": {
"version": "2.0.3",
@@ -771,7 +1097,7 @@
"sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
},
"supports-color": {
"version": "7.2.0",
@@ -790,9 +1116,9 @@
}
},
"tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
+ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
},
"typical": {
"version": "4.0.0",
diff --git a/scripts/validation/package.json b/scripts/validation/package.json
index d66f67a1ef..e8e4446b6e 100644
--- a/scripts/validation/package.json
+++ b/scripts/validation/package.json
@@ -10,6 +10,6 @@
"author": "Sebastian Romero",
"license": "ISC",
"dependencies": {
- "content-lint": "^1.1.2"
+ "content-lint": "^1.1.3"
}
}
diff --git a/static/resources/arduino-comics/Arduino-comic-Persian.pdf b/static/resources/arduino-comics/Arduino-comic-Persian.pdf
new file mode 100644
index 0000000000..e9b71fd61f
Binary files /dev/null and b/static/resources/arduino-comics/Arduino-comic-Persian.pdf differ