diff --git a/.cspell/steami.txt b/.cspell/steami.txt new file mode 100644 index 0000000..73da7fd --- /dev/null +++ b/.cspell/steami.txt @@ -0,0 +1,186 @@ +# STeaMi project-specific terms +# MCUs and chips +STM32WB55 +STM32WB55RG +STM32F103 +STM32F103CBT6 +STM32 +NUCLEO +DAPLink +BQ24075 +BQ24075RGT +BQ27441 +BQ27441DRZR +ISM330DLC +ISM330DLCTR +LIS2MDL +LIS2MDLTR +VL53L1X +APDS9960 +APDS-9960 +IMP34DT05 +MCP23009 +SSD1327 +W25Q64 +WEO128128BWPP3N00001 +TPS63000 +TPS63000DRCT +LMR62421 +LMR62421XMF +DIO7003LEST5 +WSEN-PADS +WSEN-HIDS + +# Packages / references +LGA +WLCSP +UFQFPN48 +LQFP48 +SOT-23 +DFN +UDFN +VFLGA +QFN + +# Protocols and buses +SPI +QSPI +I2C +UART +GPIO +SWD +JTAG +PDM +BLE +USB +WebUSB +OpenThread +ZigBee +FPC +FFC +Qwiic +STEMMA +Jacdac + +# Technical terms +MCU +IoT +SRAM +MEMS +OLED +PWM +ADC +DAC +DMA +FIFO +LDO +LiPo +ESD +PCB +SMT +BOM +NTC +PTC +TVS +EMI +EMC +MOSFET +RGB +LED +LEDs +DC/DC +OTA +FUS + +# Software terms +MicroPython +mpremote +micropython +Docusaurus +Thonny +Vittascience +MakeCode +CODAL +Arduino +Altium +KiCad +Inkscape +ruff +cspell +commitlint +markdownlint +lint-staged +husky +Prettier +ESLint +lychee + +# STeaMi specific +STeaMi +STEAM32 +steami +steamicc +pinout +Pinout +DAPLink +SchDoc +datasheet +datasheets + +# Additional technical terms +expandeur +Expandeur +l'expandeur +L'expandeur +multiprotocoles +framebuffer +Mbed +utime +Daplink +letssteam +duino + +# Component brands +Winbond +Adafruit +Kingbright +Longlife +STMicroelectronics +Wurth +wurth +Elektronik +Winstar +Molex +Broadcom +Vishay +Yageo +Panasonic +Susumu +Kemet +Murata +Samsung +SAMTEC +Diodes + +# French technical terms not in standard dictionaries +microcontrôleur +microcontrôleurs +magnétorésistif +piézo +rétro-éclairage +accéléromètre +magnétomètre +pic-à-pic + +# References / part numbers +MYFB +LWFR +STLINK + +# Misc +Supercapacité + +Octopart +favicon +README +CODEOWNERS diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4ed5f8e..8ee1417 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,6 +40,9 @@ jobs: - name: Lint Markdown run: npm run lint:md + - name: Spell check + run: npm run lint:spell + - name: Lint JavaScript run: npm run lint:js diff --git a/cspell.json b/cspell.json new file mode 100644 index 0000000..01d4100 --- /dev/null +++ b/cspell.json @@ -0,0 +1,50 @@ +{ + "$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json", + "version": "0.2", + "language": "fr,en", + "import": ["@cspell/dict-fr-fr/cspell-ext.json"], + "dictionaries": ["fr-fr", "steami-terms"], + "dictionaryDefinitions": [ + { + "name": "steami-terms", + "path": ".cspell/steami.txt", + "addWords": true + } + ], + "files": ["docs/**/*.md", "README.md", "CONTRIBUTING.md"], + "ignorePaths": [ + "node_modules", + "build", + ".external", + ".docusaurus", + "package-lock.json", + "static" + ], + "ignoreRegExpList": [ + "/(```[\\s\\S]*?```)/g", + "/`[^`]+`/g", + "/https?:\\/\\/\\S+/g", + "/\\[.*?\\]\\(.*?\\)/g", + "/!\\[.*?\\]\\(.*?\\)/g", + "/import\\s+.*?from\\s+.*?;/g", + "/]*\\/>/g", + "/\\b[A-Z][A-Z0-9_]{2,}\\b/g" + ], + "ignoreWords": [], + "flagWords": [ + "developpement", + "memoire", + "peripherique", + "microcontroleur", + "controleur", + "systeme", + "ecran", + "electronique", + "electrique", + "accelerometre", + "magnetometre", + "caracteristiques", + "schemas", + "schema" + ] +} diff --git a/docs/design/mcu-storage.md b/docs/design/mcu-storage.md index a204c57..734ed9f 100644 --- a/docs/design/mcu-storage.md +++ b/docs/design/mcu-storage.md @@ -9,10 +9,10 @@ title: 'MCU et stockage' | ID | Nom | Description | Implémentation | | ------ | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------- | -| FCT-35 | Microcontroller | Le système doit intégrer un microcontrôleur ARM Cortex-M STM32WB55 de STMicroelectronics. | STM32WB55RG (Cortex-M4) | -| FCT-36 | Microcontroller - RAM | Le système doit intégrer un MCU avec suffisamment de RAM pour effectuer des opérations graphiques de base (minimum pour un framebuffer 128x128). | 256 Ko SRAM | -| FCT-37 | Microcontroller - Flash | Le système doit intégrer un MCU avec au moins 512 Ko de mémoire flash. | 1 Mo Flash | -| FCT-38 | Microcontroller - Speed | Le système doit intégrer un MCU avec une vitesse de processeur d'au moins 64 MHz. | ARM Cortex-M4 @ 64 MHz | +| FCT-35 | Microcontrôleur | Le système doit intégrer un microcontrôleur ARM Cortex-M STM32WB55 de STMicroelectronics. | STM32WB55RG (Cortex-M4) | +| FCT-36 | Microcontrôleur - RAM | Le système doit intégrer un MCU avec suffisamment de RAM pour effectuer des opérations graphiques de base (minimum pour un framebuffer 128x128). | 256 Ko SRAM | +| FCT-37 | Microcontrôleur - Flash | Le système doit intégrer un MCU avec au moins 512 Ko de mémoire flash. | 1 Mo Flash | +| FCT-38 | Microcontrôleur - Speed | Le système doit intégrer un MCU avec une vitesse de processeur d'au moins 64 MHz. | ARM Cortex-M4 @ 64 MHz | | FCT-39 | Internal sensors - Bus | Tous les capteurs internes doivent être connectés sur le premier bus I2C. | I2C1 (PB8/PB9) | ## Choix de conception diff --git a/docs/design/power.md b/docs/design/power.md index d271dc9..51e1ff2 100644 --- a/docs/design/power.md +++ b/docs/design/power.md @@ -72,7 +72,7 @@ L'entrée peut être 3.7V (batterie) ou 5V (USB). Le TPS63000 peut monter ET des | ------- | ----------- | ------------------------------------ | | 3.3V | 1200 mA | Microcontrôleur, capteurs, affichage | | 3.3V | 150 mA | Régulateur linéaire (STLink) | -| 14.5V | 100 mA | Buzzer piezo | +| 14.5V | 100 mA | Buzzer piézo | | 5V | - | Alimentation Jacdac | ## Voir aussi diff --git a/docs/design/user-interface.md b/docs/design/user-interface.md index 26303d3..30538dc 100644 --- a/docs/design/user-interface.md +++ b/docs/design/user-interface.md @@ -122,10 +122,10 @@ Le système nécessite 7 boutons utilisateur au total. Les boutons directionnels ### Sortie audio (FP10) -Un buzzer piezo permet la génération de sons. Il est alimenté par un boost converter dédié (14.5V) car la tension 3.3V standard est insuffisante pour un transducteur piezo. +Un buzzer piézo permet la génération de sons. Il est alimenté par un boost converter dédié (14.5V) car la tension 3.3V standard est insuffisante pour un transducteur piézo. - **Composant** : PUI Audio SMT-0825-S-HT-R -- **Type** : Transducteur piezo montage en surface +- **Type** : Transducteur piézo montage en surface - **Tension** : 3.6V pic-à-pic - **Signal** : BEEPER_OUT → PA11 (STM32WB55) - **Alimentation** : Boost converter LMR62421 (14.5V) diff --git a/docs/hardware/components/capacitors.md b/docs/hardware/components/capacitors.md index 508f9e4..3d6538c 100644 --- a/docs/hardware/components/capacitors.md +++ b/docs/hardware/components/capacitors.md @@ -23,5 +23,5 @@ import OctopartButton from '@site/src/components/OctopartButton'; | 4.7 uF - 0402 | X5R 16V | [Kyocera AVX](https://www.kyocera-avx.com/) | 0402YD475MAT2A
| 2 | | 10 uF - 0402 | X5R 6.3V | [Murata](https://www.murata.com/) | GRM155R60J106ME15D
| 6 | | 47 uF - 0603 | X5R 4V | [Taiyo Yuden](https://www.yuden.co.jp/eu/) | AMK107BBJ476MA-RE
| 2 | -| 15 uF - 1210 | Tantale polymere 25V | [Panasonic](https://industrial.panasonic.com/ww/products/pt/polymer-capacitors) | 25TQC15MYFB
| 1 | -| 200 mF - 4627 | Supercapacite EDLC 3.3V | [Elna](https://www.elna.co.jp/en/) | - | 1 | +| 15 uF - 1210 | Tantale polymère 25V | [Panasonic](https://industrial.panasonic.com/ww/products/pt/polymer-capacitors) | 25TQC15MYFB
| 1 | +| 200 mF - 4627 | Supercapacité EDLC 3.3V | [Elna](https://www.elna.co.jp/en/) | - | 1 | diff --git a/docs/hardware/components/connectors.md b/docs/hardware/components/connectors.md index e3d9807..99ef91d 100644 --- a/docs/hardware/components/connectors.md +++ b/docs/hardware/components/connectors.md @@ -25,7 +25,7 @@ Le connecteur micro-USB (GCT USB3080-30-00-A) assure : - Alimentation 5V de la carte - Communication USB (DAPLink, WebUSB, Mass Storage) - Programmation du microcontrôleur applicatif -- Port serie virtuel (CDC) +- Port série virtuel (CDC) ### Connecteur batterie @@ -35,7 +35,7 @@ Connecteur 2 broches au pas de 1.25 mm pour batterie LiPo 3.7V. Connecteur FFC/FPC 24 positions pour l'écran OLED Winstar WEO128128BWPP3N00001. -- Type : Slider, angle droit, contact superieur +- Type : Slider, angle droit, contact supérieur - Pas : 0.50 mm ### Connecteurs STEMMA/Qwiic @@ -44,4 +44,4 @@ Deux connecteurs JST 4 broches pour capteurs I2C externes. - Bus : I2C3 (SCL: PC0, SDA: PC1) - Alimentation : 3.3V -- Compatible avec les ecosystemes Adafruit STEMMA QT et SparkFun Qwiic +- Compatible avec les écosystèmes Adafruit STEMMA QT et SparkFun Qwiic diff --git a/docs/hardware/components/display-audio.md b/docs/hardware/components/display-audio.md index 6a11c4b..63a6e62 100644 --- a/docs/hardware/components/display-audio.md +++ b/docs/hardware/components/display-audio.md @@ -25,11 +25,11 @@ import OctopartButton from '@site/src/components/OctopartButton'; | Composant | Description | Fabricant | Reference | Qte | Datasheet | | --------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------- | --- | --------- | -| [SMT-0825-S-HT-R](../main-components/buttons-audio) | Transducteur piezo montage en surface, 3.6V pic-a-pic | [PUI Audio](https://puiaudio.com/products/detail/SMT-0825-S-HT-R) | SMT-0825-S-HT-R
| 1 | — | +| [SMT-0825-S-HT-R](../main-components/buttons-audio) | Transducteur piézo montage en surface, 3.6V pic-a-pic | [PUI Audio](https://puiaudio.com/products/detail/SMT-0825-S-HT-R) | SMT-0825-S-HT-R
| 1 | — | ### Caractéristiques du buzzer -- **Type** : Transducteur piezo SMD +- **Type** : Transducteur piézo SMD - **Tension** : 3.6V pic-a-pic - **Alimentation** : Via convertisseur boost LMR62421 (14.5V) - **Signal** : BEEPER_OUT (PA11 sur STM32WB55) diff --git a/docs/hardware/components/inductors.md b/docs/hardware/components/inductors.md index 01756e8..5b2a79e 100644 --- a/docs/hardware/components/inductors.md +++ b/docs/hardware/components/inductors.md @@ -27,4 +27,4 @@ import OctopartButton from '@site/src/components/OctopartButton'; | Composant | Description | Fabricant | Reference | Qte | | --------- | ------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------- | --- | -| 744230900 | Filtre de mode commun haute frequence | [Wurth](https://www.we-online.com/en/components/products/WE-CNSW) | 744230900
| 1 | +| 744230900 | Filtre de mode commun haute fréquence | [Wurth](https://www.we-online.com/en/components/products/WE-CNSW) | 744230900
| 1 | diff --git a/docs/hardware/components/integrated-circuits.md b/docs/hardware/components/integrated-circuits.md index 78ae0f6..65d4adb 100644 --- a/docs/hardware/components/integrated-circuits.md +++ b/docs/hardware/components/integrated-circuits.md @@ -19,11 +19,11 @@ import OctopartButton from '@site/src/components/OctopartButton'; | Composant | Description | Fabricant | Reference | Qte | Datasheet | | ----------------------------------------------------- | -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --- | ------------------------------------------------------------- | | [ISM330DLCTR](../main-components/sensors/ism330dlc) | Accéléromètre/gyroscope 6 axes + température, I2C/SPI | [STMicroelectronics](https://www.st.com/en/mems-and-sensors/ism330dlc.html) | ISM330DLCTR
| 1 | [PDF](https://www.st.com/resource/en/datasheet/ism330dlc.pdf) | -| [VL53L1CXV0FY/1](../main-components/sensors/vl53l1x) | Capteur de distance Time-of-Flight, portee 4 m, I2C | [STMicroelectronics](https://www.st.com/en/imaging-and-photonics-solutions/vl53l1x.html) | VL53L1CXV0FY/1
| 1 | [PDF](https://www.st.com/resource/en/datasheet/vl53l1x.pdf) | +| [VL53L1CXV0FY/1](../main-components/sensors/vl53l1x) | Capteur de distance Time-of-Flight, portée 4 m, I2C | [STMicroelectronics](https://www.st.com/en/imaging-and-photonics-solutions/vl53l1x.html) | VL53L1CXV0FY/1
| 1 | [PDF](https://www.st.com/resource/en/datasheet/vl53l1x.pdf) | | [LIS2MDLTR](../main-components/sensors/lis2mdl) | Magnétomètre 3 axes, magnétorésistif, I2C | [STMicroelectronics](https://www.st.com/en/mems-and-sensors/lis2mdl.html) | LIS2MDLTR
| 1 | [PDF](https://www.st.com/resource/en/datasheet/lis2mdl.pdf) | | [2511020213301](../main-components/sensors/wsen-pads) | Capteur de pression absolu 26-126 kPa, 24 bits, I2C/SPI | [Wurth Elektronik](https://www.we-online.com/en/components/products/WSEN-PADS_1) | 2511020213301
| 1 | — | | [2525020210001](../main-components/sensors/wsen-hids) | Capteur humidité + température, I2C/SPI | [Wurth Elektronik](https://www.we-online.com/en/components/products/WSEN-HIDS_1) | 2525020210001
| 1 | — | -| [APDS-9960](../main-components/sensors/apds9960) | Capteur lumiere ambiante, couleur, geste, proximite, I2C | [Broadcom](https://www.broadcom.com/products/optical-sensors/integrated-ambient-light-and-proximity-sensors/apds-9960) | APDS-9960
| 1 | — | +| [APDS-9960](../main-components/sensors/apds9960) | Capteur lumière ambiante, couleur, geste, proximité, I2C | [Broadcom](https://www.broadcom.com/products/optical-sensors/integrated-ambient-light-and-proximity-sensors/apds-9960) | APDS-9960
| 1 | — | | [IMP34DT05](../main-components/sensors/imp34dt05) | Microphone MEMS PDM omnidirectionnel | [STMicroelectronics](https://www.st.com/en/mems-and-sensors/imp34dt05.html) | IMP34DT05
| 1 | [PDF](https://www.st.com/resource/en/datasheet/imp34dt05.pdf) | ## Gestion d'alimentation (PMIC) @@ -33,12 +33,12 @@ import OctopartButton from '@site/src/components/OctopartButton'; | [BQ24075RGT](../main-components/power/bq24075) | Chargeur batterie Li-Ion 1.5A avec PowerPath | [Texas Instruments](https://www.ti.com/product/BQ24075) | BQ24075RGT
| 1 | — | | [BQ27441DRZR-G1A](../main-components/power/bq27441) | Jauge de batterie Li-Ion, I2C | [Texas Instruments](https://www.ti.com/product/BQ27441-G1) | BQ27441DRZR-G1A
| 1 | — | | [TPS63000DRCT](../main-components/power/) | Convertisseur buck-boost 1.8A, ajustable | [Texas Instruments](https://www.ti.com/product/TPS63000) | TPS63000DRCT
| 1 | — | -| [LMR62421XMF](../main-components/power/) | Regulateur step-up 24V 2.1A | [Texas Instruments](https://www.ti.com/product/LMR62421) | LMR62421XMF_NOPB
| 1 | — | +| [LMR62421XMF](../main-components/power/) | Régulateur step-up 24V 2.1A | [Texas Instruments](https://www.ti.com/product/LMR62421) | LMR62421XMF_NOPB
| 1 | — | | AP3015AKTR-G1 | Convertisseur step-down double | [Diodes Inc.](https://www.diodes.com/part/view/AP3015A) | AP3015AKTR-G1
| 1 | — | -| [LD3985M33R](../main-components/power/) | Regulateur LDO 3.3V 150 mA | [STMicroelectronics](https://www.st.com/en/power-management/ld3985.html) | LD3985M33R
| 1 | [PDF](https://www.st.com/resource/en/datasheet/ld3985.pdf) | +| [LD3985M33R](../main-components/power/) | Régulateur LDO 3.3V 150 mA | [STMicroelectronics](https://www.st.com/en/power-management/ld3985.html) | LD3985M33R
| 1 | [PDF](https://www.st.com/resource/en/datasheet/ld3985.pdf) | | [DIO7003LEST5](../main-components/power/) | Switch de distribution d'alimentation 5.5V basse perte | [DIOO Microcircuits](https://www.dioo.com/#/ProductsDetail?id=1500) | DIO7003LEST5
| 1 | [PDF](https://www.dioo.com/uploads/product/20210527/39809ef9c4aeae798493447426d5dd7c.pdf) | -## Autres circuits integres +## Autres circuits intégrés | Composant | Description | Fabricant | Reference | Qte | Datasheet | | ------------------------------------------------- | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | --- | --------- | diff --git a/docs/hardware/components/mechanical.md b/docs/hardware/components/mechanical.md index e079aa2..48d912b 100644 --- a/docs/hardware/components/mechanical.md +++ b/docs/hardware/components/mechanical.md @@ -1,11 +1,11 @@ --- sidebar_position: 9 -title: 'Composants mecaniques' +title: 'Composants mécaniques' --- import OctopartButton from '@site/src/components/OctopartButton'; -# Composants mecaniques +# Composants mécaniques ## Boutons et interrupteurs diff --git a/docs/hardware/components/not-fitted.md b/docs/hardware/components/not-fitted.md index b7d9554..1ca1750 100644 --- a/docs/hardware/components/not-fitted.md +++ b/docs/hardware/components/not-fitted.md @@ -11,8 +11,8 @@ Ces composants sont prévus sur le PCB mais ne sont pas montés en production st | --------------------- | ----------------------------------------------------- | --------- | -------------- | --- | | Resistor 0 Ohm - 0603 | Strap non monté | - | - | 17 | | Resistor 0 Ohm - 0402 | Strap non monté | NC | NC | 2 | -| FTS-103-01-F-S | Header bas profil 3 positions 1 rangee, pas 1.27 mm | SAMTEC | FTS-103-01-F-S | 1 | -| FTS-105-01-F-D | Header bas profil 10 positions 2 rangees, pas 1.27 mm | SAMTEC | FTS-105-01-F-D | 1 | +| FTS-103-01-F-S | Header bas profil 3 positions 1 rangée, pas 1.27 mm | SAMTEC | FTS-103-01-F-S | 1 | +| FTS-105-01-F-D | Header bas profil 10 positions 2 rangées, pas 1.27 mm | SAMTEC | FTS-105-01-F-D | 1 | ## Notes diff --git a/docs/hardware/components/semiconductors.md b/docs/hardware/components/semiconductors.md index 2276903..866fcbd 100644 --- a/docs/hardware/components/semiconductors.md +++ b/docs/hardware/components/semiconductors.md @@ -13,7 +13,7 @@ import OctopartButton from '@site/src/components/OctopartButton'; | ------------- | ----------------------------------------------------------- | ---------------------------------------------------------------- | ------------------------------------------------------- | --- | --------- | | WE-TVS_824015 | Protection ESD haute vitesse 5 uA 5 VDC | [Wurth](https://www.we-online.com/en/components/products/WE-TVS) | WE-TVS_824015
| 1 | — | | D5V0H1B2LP-7B | Protection ESD bidirectionnelle TVS | [Diodes Inc.](https://www.diodes.com/) | D5V0H1B2LP-7B
| 5 | — | -| ESD8351XV2T1G | Protection ESD unidirectionnelle, faible capacite, snapback | [onsemi](https://www.onsemi.com/) | ESD8351XV2T1G
| 13 | — | +| ESD8351XV2T1G | Protection ESD unidirectionnelle, faible capacité, snapback | [onsemi](https://www.onsemi.com/) | ESD8351XV2T1G
| 13 | — | ## Diodes Schottky diff --git a/docs/hardware/main-components/index.md b/docs/hardware/main-components/index.md index 5cf26c4..5f5bf54 100644 --- a/docs/hardware/main-components/index.md +++ b/docs/hardware/main-components/index.md @@ -36,7 +36,7 @@ Pour la BOM complète (incluant passifs, connecteurs, etc.), voir la section [BO | --------------------------------- | --------------------------------------------------------------- | --------------------------- | | WEO128128BWPP3N00001 | [Écran OLED](./display) 128x128 blanc, SPI | [Détail →](./display) | | Wurth 150505M173300 + LEDs status | [LEDs](./leds) RGB utilisateur + indicateurs système | [Détail →](./leds) | -| ALPS SKRHABE010 + C&K PTS636 | [Boutons et buzzer](./buttons-audio) — 7 boutons + buzzer piezo | [Détail →](./buttons-audio) | +| ALPS SKRHABE010 + C&K PTS636 | [Boutons et buzzer](./buttons-audio) — 7 boutons + buzzer piézo | [Détail →](./buttons-audio) | ## Alimentation diff --git a/docs/hardware/pin-mapping/external-connectors.md b/docs/hardware/pin-mapping/external-connectors.md index 40a263d..9363c0d 100644 --- a/docs/hardware/pin-mapping/external-connectors.md +++ b/docs/hardware/pin-mapping/external-connectors.md @@ -37,7 +37,7 @@ Le bus I2C3 est partage entre le connecteur STEMMA/Qwiic et les broches P19/P20 ## Connecteur Jacdac -Interface serie pour modules Jacdac. +Interface série pour modules Jacdac. | Broche | Signal | Pin STM32WB55 | Test Point | | ---------------- | --------- | ------------- | ---------- | @@ -48,7 +48,7 @@ Interface serie pour modules Jacdac. ## Port JTAG / SWD -Connecteur de programmation et debogage (header 1 rangee, pas 1.27 mm). +Connecteur de programmation et débogage (header 1 rangée, pas 1.27 mm). | Broche | Signal | Pin STM32F103 | Test Point | | ---------- | ------------ | ------------- | ---------- | @@ -61,7 +61,7 @@ Connecteur de programmation et debogage (header 1 rangee, pas 1.27 mm). ## Connecteur micro-USB - **Composant** : GCT USB3080-30-00-A (Micro-B, Bottom-SMT) -- **Fonctions** : Alimentation 5V, programmation DAPLink, communication serie, WebUSB, stockage de masse +- **Fonctions** : Alimentation 5V, programmation DAPLink, communication série, WebUSB, stockage de masse ## Connecteur batterie diff --git a/docs/hardware/pin-mapping/internal-bus.md b/docs/hardware/pin-mapping/internal-bus.md index a9baf04..178ca99 100644 --- a/docs/hardware/pin-mapping/internal-bus.md +++ b/docs/hardware/pin-mapping/internal-bus.md @@ -69,14 +69,14 @@ Le bus I2C1 connecte les capteurs internes, la jauge de batterie et l'expandeur | -------------------- | ------------- | ---------- | | BEEPER_OUT (SPEAKER) | PA11 | TP70 | -## Communication serie (STM32WB55 - STM32F103) +## Communication série (STM32WB55 - STM32F103) | Signal | Pin STM32WB55 | Test Point | | ---------------------- | ------------- | ---------- | | T_UART2_TX (SERIAL_TX) | PB11 | TP44 | | T_UART2_RX (SERIAL_RX) | PB10 | TP43 | -## Controle alimentation STLink +## Contrôle alimentation STLink | Signal | Pin STM32WB55 | Pin STM32F103 | | ------------------- | ------------- | ------------- | diff --git a/docs/hardware/pin-mapping/power-pins.md b/docs/hardware/pin-mapping/power-pins.md index 087c868..4d92b6d 100644 --- a/docs/hardware/pin-mapping/power-pins.md +++ b/docs/hardware/pin-mapping/power-pins.md @@ -44,7 +44,7 @@ title: 'Alimentation' | PACK_OUT | Sortie batterie avant BQ27441 | TP1 | | VDD | Tension après BQ27441 | TP52 | | +3V3@1200mA | 3.3V principal (TPS63000) | TP2, TP4, TP55, TP60, TP62, TP13, TP14 | -| SYST | Tension avant regulateur TPS63000 | TP3 | +| SYST | Tension avant régulateur TPS63000 | TP3 | | +14V5@100mA | 14.5V boost (LMR62421) pour buzzer | TP5 | | +3V3_STLINK | 3.3V pour le STLink | TP46 | | VBAT_ON_OFF | Signal SYSOFF du BQ24075 | TP51 | diff --git a/docs/hardware/pin-mapping/signals.md b/docs/hardware/pin-mapping/signals.md index fc3ddd1..213db6f 100644 --- a/docs/hardware/pin-mapping/signals.md +++ b/docs/hardware/pin-mapping/signals.md @@ -88,7 +88,7 @@ Liste complète de tous les signaux de la carte STeaMi avec leurs broches associ | MICRO_CLK | MIC_CLK | Horloge microphone (PA3) | | BEEPER_OUT | SPEAKER | Sortie buzzer (PA11) | -## Signaux internes - Communication serie +## Signaux internes - Communication série | Signal | Broche associée | Description | | ------------------- | ------------------- | ---------------------------------- | @@ -96,7 +96,7 @@ Liste complète de tous les signaux de la carte STeaMi avec leurs broches associ | T_UART2_RX | SERIAL_RX | RX depuis F103 (PB10) | | UART2_TX | JACDAC_DATA | Jacdac TX (PB6) | | UART2_RX | JACDAC_DATA | Jacdac RX (PB7) | -| ON/OFF\_+3V3_STLINK | ACTIVATE_3V3_STLINK | Controle alimentation STLink (PB2) | +| ON/OFF\_+3V3_STLINK | ACTIVATE_3V3_STLINK | Contrôle alimentation STLink (PB2) | ## Signaux JTAG @@ -129,7 +129,7 @@ Ces signaux sont uniquement accessibles via les points de test du PCB. | VDD | Tension après jauge | TP52 | | POWER | Sortie BQ24075 | TP49 | | +3V3@1200mA | Rail 3.3V principal | TP2, TP4, TP55, TP60, TP62, TP13, TP14 | -| SYST | Avant regulateur TPS63000 | TP3 | +| SYST | Avant régulateur TPS63000 | TP3 | | +14V5@100mA | Boost 14.5V pour buzzer | TP5 | | +3V3_STLINK | 3.3V STLink | TP46 | | T_NRST | Reset STM32WB55 | TP61 | diff --git a/docs/hardware/pin-mapping/test-points.md b/docs/hardware/pin-mapping/test-points.md index 72368aa..2ec7ff6 100644 --- a/docs/hardware/pin-mapping/test-points.md +++ b/docs/hardware/pin-mapping/test-points.md @@ -18,12 +18,12 @@ Liste complète des points de test disponibles sur le PCB de la carte STeaMi, or | TP49 | POWER | Alimentation après le BQ24075RGT | | TP1 | PACK_OUT | Sortie batterie avant le BQ27441DRZR | | TP52 | VDD | Tension après le BQ27441DRZR | -| TP2 | +3V3@1200mA | 3.3V après regulateur TPS63000DRCT | -| TP3 | SYST | Avant le regulateur TPS63000DRCT | -| TP4 | +3V3@1200mA | 3.3V après regulateur TPS63000DRCT | -| TP55 | +3V3@1200mA | 3.3V après regulateur TPS63000DRCT | -| TP5 | +14V5@100mA | 14.5V après regulateur LMR62421 | -| TP46 | +3V3_STLINK | 3.3V après regulateur STLink | +| TP2 | +3V3@1200mA | 3.3V après régulateur TPS63000DRCT | +| TP3 | SYST | Avant le régulateur TPS63000DRCT | +| TP4 | +3V3@1200mA | 3.3V après régulateur TPS63000DRCT | +| TP55 | +3V3@1200mA | 3.3V après régulateur TPS63000DRCT | +| TP5 | +14V5@100mA | 14.5V après régulateur LMR62421 | +| TP46 | +3V3_STLINK | 3.3V après régulateur STLink | ## Microcontrôleur applicatif (STM32WB55RG) @@ -93,7 +93,7 @@ Liste complète des points de test disponibles sur le PCB de la carte STeaMi, or | ---------- | ---------- | ------------- | | TP70 | BEEPER_OUT | Sortie buzzer | -## Communication serie et Jacdac +## Communication série et Jacdac | Test Point | Signal | Description | | ---------- | ---------- | ------------------------------ | diff --git a/docs/hardware/revisions.md b/docs/hardware/revisions.md index 298cafb..8d0a257 100644 --- a/docs/hardware/revisions.md +++ b/docs/hardware/revisions.md @@ -7,7 +7,7 @@ title: 'Revisions' ## Identifier sa version -La revision et le nom de la carte sont stockes dans la config zone du STM32F103 (DAPLink). Ils peuvent etre lus via le module `steami_config` en MicroPython : +La revision et le nom de la carte sont stockes dans la config zone du STM32F103 (DAPLink). Ils peuvent être lus via le module `steami_config` en MicroPython : ```python from steami_config import SteamiConfig diff --git a/docs/hardware/schematic.md b/docs/hardware/schematic.md index 19bd457..653b0c3 100644 --- a/docs/hardware/schematic.md +++ b/docs/hardware/schematic.md @@ -25,11 +25,11 @@ Les schémas Altium sont organisés par bloc fonctionnel : | FP6 — Microcontrôleur applicatif | [STeaMi-FP6-Microcontroleur.SchDoc](https://github.com/steamicc/steami-reference-design/blob/main/Altium/STeaMi-FP6-Microcontroleur.SchDoc) | | FP7 — Extension GPIO | [STeaMi-FP7-Port_extention.SchDoc](https://github.com/steamicc/steami-reference-design/blob/main/Altium/STeaMi-FP7-Port_extention.SchDoc) | | FP8 — Display et LEDs | [STeaMi-FP8-Display_et_LED_statuts.SchDoc](https://github.com/steamicc/steami-reference-design/blob/main/Altium/STeaMi-FP8-Display_et_LED_statuts.SchDoc) | -| FP9 — Boutons de controle | [STeaMi-FP9-Bouton_de_controle.SchDoc](https://github.com/steamicc/steami-reference-design/blob/main/Altium/STeaMi-FP9-Bouton_de_controle.SchDoc) | +| FP9 — Boutons de contrôle | [STeaMi-FP9-Bouton_de_controle.SchDoc](https://github.com/steamicc/steami-reference-design/blob/main/Altium/STeaMi-FP9-Bouton_de_controle.SchDoc) | | FP10 — Sortie audio | [STeaMi-FP10-Sortie_Audio.SchDoc](https://github.com/steamicc/steami-reference-design/blob/main/Altium/STeaMi-FP10-Sortie_Audio.SchDoc) | | FP11 — Port JTAG/SWD | [STeaMi-FP11-Port_JTAG.SchDoc](https://github.com/steamicc/steami-reference-design/blob/main/Altium/STeaMi-FP11-Port_JTAG.SchDoc) | | FP12 — Capteurs internes | [STeaMi-FP12-Capteur_interne.SchDoc](https://github.com/steamicc/steami-reference-design/blob/main/Altium/STeaMi-FP12-Capteur_interne.SchDoc) | -| FP13 — Ports specifiques | [STeaMi-FP13-Port_Specifique.SchDoc](https://github.com/steamicc/steami-reference-design/blob/main/Altium/STeaMi-FP13-Port_Specifique.SchDoc) | +| FP13 — Ports spécifiques | [STeaMi-FP13-Port_Specifique.SchDoc](https://github.com/steamicc/steami-reference-design/blob/main/Altium/STeaMi-FP13-Port_Specifique.SchDoc) | | FP14 — Microcontrôleur interface | [STeaMi-FP14-Microcontroleur_interface.SchDoc](https://github.com/steamicc/steami-reference-design/blob/main/Altium/STeaMi-FP14-Microcontroleur_interface.SchDoc) | | FP15 — Mémoire flash | [STeaMi-FP15-Memoire_flash.SchDoc](https://github.com/steamicc/steami-reference-design/blob/main/Altium/STeaMi-FP15-Memoire_flash.SchDoc) | diff --git a/docs/overview/pinout.md b/docs/overview/pinout.md index 373d94d..4b81723 100644 --- a/docs/overview/pinout.md +++ b/docs/overview/pinout.md @@ -13,7 +13,7 @@ Le diagramme suivant présente l'ensemble des broches de la carte STeaMi, inclua ## Connecteurs -Vue detaillee des connecteurs disponibles sur la carte : +Vue détaillée des connecteurs disponibles sur la carte : ![Connecteurs STeaMi](/img/pinout/connectors_steami.svg) @@ -82,7 +82,7 @@ Deux connecteurs JST 4 broches au pas de 2 mm pour la connexion de capteurs exte | LED_BLUE | LED_USER_BLUE | PC10 | LED utilisateur bleue | | LED_CHG | LED_CHG_RED | - | Indicateur de charge | | LED_STATUS | LED_STLINK_STATUS | - (STM32F103 PA9) | Statut DAPLink | -| LED_FLASH | LED_COM_GRN | - (STM32F103 PB1) | Activite flash | +| LED_FLASH | LED_COM_GRN | - (STM32F103 PB1) | Activité flash | | LED_DAPLINK | LED_DAP_BLUE | - (STM32F103 PA6) | Indicateur DAPLink | ## Port JTAG diff --git a/package-lock.json b/package-lock.json index 5fdd2b5..44f8d49 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,9 +19,11 @@ "devDependencies": { "@commitlint/cli": "20.5.0", "@commitlint/config-conventional": "20.5.0", + "@cspell/dict-fr-fr": "2.3.2", "@docusaurus/module-type-aliases": "3.9.2", "@docusaurus/types": "3.9.2", "@eslint/js": "9.39.4", + "cspell": "9.7.0", "eslint": "9.39.4", "eslint-plugin-react": "7.37.5", "git-precommit-checks": "3.1.0", @@ -33,7 +35,7 @@ "validate-branch-name": "1.3.2" }, "engines": { - "node": ">=20.17.0" + "node": ">=20.18.0" } }, "node_modules/@algolia/abtesting": { @@ -2343,6 +2345,673 @@ } } }, + "node_modules/@cspell/cspell-bundled-dicts": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-9.7.0.tgz", + "integrity": "sha512-s7h1vo++Q3AsfQa3cs0u/KGwm3SYInuIlC4kjlCBWjQmb4KddiZB5O1u0+3TlA7GycHb5M4CR7MDfHUICgJf+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/dict-ada": "^4.1.1", + "@cspell/dict-al": "^1.1.1", + "@cspell/dict-aws": "^4.0.17", + "@cspell/dict-bash": "^4.2.2", + "@cspell/dict-companies": "^3.2.10", + "@cspell/dict-cpp": "^7.0.2", + "@cspell/dict-cryptocurrencies": "^5.0.5", + "@cspell/dict-csharp": "^4.0.8", + "@cspell/dict-css": "^4.0.19", + "@cspell/dict-dart": "^2.3.2", + "@cspell/dict-data-science": "^2.0.13", + "@cspell/dict-django": "^4.1.6", + "@cspell/dict-docker": "^1.1.17", + "@cspell/dict-dotnet": "^5.0.12", + "@cspell/dict-elixir": "^4.0.8", + "@cspell/dict-en_us": "^4.4.29", + "@cspell/dict-en-common-misspellings": "^2.1.12", + "@cspell/dict-en-gb-mit": "^3.1.18", + "@cspell/dict-filetypes": "^3.0.15", + "@cspell/dict-flutter": "^1.1.1", + "@cspell/dict-fonts": "^4.0.5", + "@cspell/dict-fsharp": "^1.1.1", + "@cspell/dict-fullstack": "^3.2.8", + "@cspell/dict-gaming-terms": "^1.1.2", + "@cspell/dict-git": "^3.1.0", + "@cspell/dict-golang": "^6.0.26", + "@cspell/dict-google": "^1.0.9", + "@cspell/dict-haskell": "^4.0.6", + "@cspell/dict-html": "^4.0.14", + "@cspell/dict-html-symbol-entities": "^4.0.5", + "@cspell/dict-java": "^5.0.12", + "@cspell/dict-julia": "^1.1.1", + "@cspell/dict-k8s": "^1.0.12", + "@cspell/dict-kotlin": "^1.1.1", + "@cspell/dict-latex": "^5.0.0", + "@cspell/dict-lorem-ipsum": "^4.0.5", + "@cspell/dict-lua": "^4.0.8", + "@cspell/dict-makefile": "^1.0.5", + "@cspell/dict-markdown": "^2.0.14", + "@cspell/dict-monkeyc": "^1.0.12", + "@cspell/dict-node": "^5.0.9", + "@cspell/dict-npm": "^5.2.34", + "@cspell/dict-php": "^4.1.1", + "@cspell/dict-powershell": "^5.0.15", + "@cspell/dict-public-licenses": "^2.0.15", + "@cspell/dict-python": "^4.2.25", + "@cspell/dict-r": "^2.1.1", + "@cspell/dict-ruby": "^5.1.0", + "@cspell/dict-rust": "^4.1.2", + "@cspell/dict-scala": "^5.0.9", + "@cspell/dict-shell": "^1.1.2", + "@cspell/dict-software-terms": "^5.1.21", + "@cspell/dict-sql": "^2.2.1", + "@cspell/dict-svelte": "^1.0.7", + "@cspell/dict-swift": "^2.0.6", + "@cspell/dict-terraform": "^1.1.3", + "@cspell/dict-typescript": "^3.2.3", + "@cspell/dict-vue": "^3.0.5", + "@cspell/dict-zig": "^1.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@cspell/cspell-json-reporter": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-9.7.0.tgz", + "integrity": "sha512-6xpGXlMtQA3hV2BCAQcPkpx9eI12I0o01i9eRqSSEDKtxuAnnrejbcCpL+5OboAjTp3/BSeNYSnhuWYLkSITWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/cspell-types": "9.7.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@cspell/cspell-performance-monitor": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-performance-monitor/-/cspell-performance-monitor-9.7.0.tgz", + "integrity": "sha512-w1PZIFXuvjnC6mQHyYAFnrsn5MzKnEcEkcK1bj4OG00bAt7WX2VUA/eNNt9c1iHozCQ+FcRYlfbGxuBmNyzSgw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.18" + } + }, + "node_modules/@cspell/cspell-pipe": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-9.7.0.tgz", + "integrity": "sha512-iiisyRpJciU9SOHNSi0ZEK0pqbEMFRatI/R4O+trVKb+W44p4MNGClLVRWPGUmsFbZKPJL3jDtz0wPlG0/JCZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/@cspell/cspell-resolver": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-9.7.0.tgz", + "integrity": "sha512-uiEgS238mdabDnwavo6HXt8K98jlh/jpm7NONroM9NTr9rzck2VZKD2kXEj85wDNMtRsRXNoywTjwQ8WTB6/+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-directory": "^5.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@cspell/cspell-resolver/node_modules/global-directory": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-5.0.0.tgz", + "integrity": "sha512-1pgFdhK3J2LeM+dVf2Pd424yHx2ou338lC0ErNP2hPx4j8eW1Sp0XqSjNxtk6Tc4Kr5wlWtSvz8cn2yb7/SG/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "6.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@cspell/cspell-resolver/node_modules/ini": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz", + "integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@cspell/cspell-service-bus": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-9.7.0.tgz", + "integrity": "sha512-fkqtaCkg4jY/FotmzjhIavbXuH0AgUJxZk78Ktf4XlhqOZ4wDeUWrCf220bva4mh3TWiLx/ae9lIlpl59Vx6hA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/@cspell/cspell-types": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-9.7.0.tgz", + "integrity": "sha512-Tdfx4eH2uS+gv9V9NCr3Rz+c7RSS6ntXp3Blliud18ibRUlRxO9dTaOjG4iv4x0nAmMeedP1ORkEpeXSkh2QiQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=20" + } + }, + "node_modules/@cspell/cspell-worker": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-worker/-/cspell-worker-9.7.0.tgz", + "integrity": "sha512-cjEApFF0aOAa1vTUk+e7xP8ofK7iC7hsRzj1FmvvVQz8PoLWPRaq+1bT89ypPsZQvavqm5sIgb97S60/aW4TVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cspell-lib": "9.7.0" + }, + "engines": { + "node": ">=20.18" + } + }, + "node_modules/@cspell/dict-ada": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-ada/-/dict-ada-4.1.1.tgz", + "integrity": "sha512-E+0YW9RhZod/9Qy2gxfNZiHJjCYFlCdI69br1eviQQWB8yOTJX0JHXLs79kOYhSW0kINPVUdvddEBe6Lu6CjGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-al": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-al/-/dict-al-1.1.1.tgz", + "integrity": "sha512-sD8GCaZetgQL4+MaJLXqbzWcRjfKVp8x+px3HuCaaiATAAtvjwUQ5/Iubiqwfd1boIh2Y1/3EgM3TLQ7Q8e0wQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-aws": { + "version": "4.0.17", + "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.17.tgz", + "integrity": "sha512-ORcblTWcdlGjIbWrgKF+8CNEBQiLVKdUOFoTn0KPNkAYnFcdPP0muT4892h7H4Xafh3j72wqB4/loQ6Nti9E/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-bash": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.2.2.tgz", + "integrity": "sha512-kyWbwtX3TsCf5l49gGQIZkRLaB/P8g73GDRm41Zu8Mv51kjl2H7Au0TsEvHv7jzcsRLS6aUYaZv6Zsvk1fOz+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/dict-shell": "1.1.2" + } + }, + "node_modules/@cspell/dict-companies": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.2.11.tgz", + "integrity": "sha512-0cmafbcz2pTHXLd59eLR1gvDvN6aWAOM0+cIL4LLF9GX9yB2iKDNrKsvs4tJRqutoaTdwNFBbV0FYv+6iCtebQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-cpp": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-7.0.2.tgz", + "integrity": "sha512-dfbeERiVNeqmo/npivdR6rDiBCqZi3QtjH2Z0HFcXwpdj6i97dX1xaKyK2GUsO/p4u1TOv63Dmj5Vm48haDpuA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-cryptocurrencies": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-5.0.5.tgz", + "integrity": "sha512-R68hYYF/rtlE6T/dsObStzN5QZw+0aQBinAXuWCVqwdS7YZo0X33vGMfChkHaiCo3Z2+bkegqHlqxZF4TD3rUA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-csharp": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@cspell/dict-csharp/-/dict-csharp-4.0.8.tgz", + "integrity": "sha512-qmk45pKFHSxckl5mSlbHxmDitSsGMlk/XzFgt7emeTJWLNSTUK//MbYAkBNRtfzB4uD7pAFiKgpKgtJrTMRnrQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-css": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.1.1.tgz", + "integrity": "sha512-y/Vgo6qY08e1t9OqR56qjoFLBCpi4QfWMf2qzD1l9omRZwvSMQGRPz4x0bxkkkU4oocMAeztjzCsmLew//c/8w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@cspell/dict-dart": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-dart/-/dict-dart-2.3.2.tgz", + "integrity": "sha512-sUiLW56t9gfZcu8iR/5EUg+KYyRD83Cjl3yjDEA2ApVuJvK1HhX+vn4e4k4YfjpUQMag8XO2AaRhARE09+/rqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-data-science": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@cspell/dict-data-science/-/dict-data-science-2.0.13.tgz", + "integrity": "sha512-l1HMEhBJkPmw4I2YGVu2eBSKM89K9pVF+N6qIr5Uo5H3O979jVodtuwP8I7LyPrJnC6nz28oxeGRCLh9xC5CVA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-django": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@cspell/dict-django/-/dict-django-4.1.6.tgz", + "integrity": "sha512-SdbSFDGy9ulETqNz15oWv2+kpWLlk8DJYd573xhIkeRdcXOjskRuxjSZPKfW7O3NxN/KEf3gm3IevVOiNuFS+w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-docker": { + "version": "1.1.17", + "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.17.tgz", + "integrity": "sha512-OcnVTIpHIYYKhztNTyK8ShAnXTfnqs43hVH6p0py0wlcwRIXe5uj4f12n7zPf2CeBI7JAlPjEsV0Rlf4hbz/xQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-dotnet": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-5.0.13.tgz", + "integrity": "sha512-xPp7jMnFpOri7tzmqmm/dXMolXz1t2bhNqxYkOyMqXhvs08oc7BFs+EsbDY0X7hqiISgeFZGNqn0dOCr+ncPYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-elixir": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@cspell/dict-elixir/-/dict-elixir-4.0.8.tgz", + "integrity": "sha512-CyfphrbMyl4Ms55Vzuj+mNmd693HjBFr9hvU+B2YbFEZprE5AG+EXLYTMRWrXbpds4AuZcvN3deM2XVB80BN/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-en_us": { + "version": "4.4.33", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.4.33.tgz", + "integrity": "sha512-zWftVqfUStDA37wO1ZNDN1qMJOfcxELa8ucHW8W8wBAZY3TK5Nb6deLogCK/IJi/Qljf30dwwuqqv84Qqle9Tw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-en-common-misspellings": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.1.12.tgz", + "integrity": "sha512-14Eu6QGqyksqOd4fYPuRb58lK1Va7FQK9XxFsRKnZU8LhL3N+kj7YKDW+7aIaAN/0WGEqslGP6lGbQzNti8Akw==", + "dev": true, + "license": "CC BY-SA 4.0" + }, + "node_modules/@cspell/dict-en-gb-mit": { + "version": "3.1.22", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb-mit/-/dict-en-gb-mit-3.1.22.tgz", + "integrity": "sha512-xE5Vg6gGdMkZ1Ep6z9SJMMioGkkT1GbxS5Mm0U3Ey1/H68P0G7cJcyiVr1CARxFbLqKE4QUpoV1o6jz1Z5Yl9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-filetypes": { + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.18.tgz", + "integrity": "sha512-yU7RKD/x1IWmDLzWeiItMwgV+6bUcU/af23uS0+uGiFUbsY1qWV/D4rxlAAO6Z7no3J2z8aZOkYIOvUrJq0Rcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-flutter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-flutter/-/dict-flutter-1.1.1.tgz", + "integrity": "sha512-UlOzRcH2tNbFhZmHJN48Za/2/MEdRHl2BMkCWZBYs+30b91mWvBfzaN4IJQU7dUZtowKayVIF9FzvLZtZokc5A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-fonts": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@cspell/dict-fonts/-/dict-fonts-4.0.6.tgz", + "integrity": "sha512-aR/0csY01dNb0A1tw/UmN9rKgHruUxsYsvXu6YlSBJFu60s26SKr/k1o4LavpHTQ+lznlYMqAvuxGkE4Flliqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-fr-fr": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-fr-fr/-/dict-fr-fr-2.3.2.tgz", + "integrity": "sha512-cPNjlavSiMfH/bB/Zl5GEF+94s6C77mdvghvVsclco1Ly0VWN3EpH5L9EE3bDGLDpE7m9EnYfRs8TOfZugGrUg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-fsharp": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-fsharp/-/dict-fsharp-1.1.1.tgz", + "integrity": "sha512-imhs0u87wEA4/cYjgzS0tAyaJpwG7vwtC8UyMFbwpmtw+/bgss+osNfyqhYRyS/ehVCWL17Ewx2UPkexjKyaBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-fullstack": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.2.9.tgz", + "integrity": "sha512-diZX+usW5aZ4/b2T0QM/H/Wl9aNMbdODa1Jq0ReBr/jazmNeWjd+PyqeVgzd1joEaHY+SAnjrf/i9CwKd2ZtWQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-gaming-terms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.1.2.tgz", + "integrity": "sha512-9XnOvaoTBscq0xuD6KTEIkk9hhdfBkkvJAIsvw3JMcnp1214OCGW8+kako5RqQ2vTZR3Tnf3pc57o7VgkM0q1Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-git": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-3.1.0.tgz", + "integrity": "sha512-KEt9zGkxqGy2q1nwH4CbyqTSv5nadpn8BAlDnzlRcnL0Xb3LX9xTgSGShKvzb0bw35lHoYyLWN2ZKAqbC4pgGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-golang": { + "version": "6.0.26", + "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.26.tgz", + "integrity": "sha512-YKA7Xm5KeOd14v5SQ4ll6afe9VSy3a2DWM7L9uBq4u3lXToRBQ1W5PRa+/Q9udd+DTURyVVnQ+7b9cnOlNxaRg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-google": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@cspell/dict-google/-/dict-google-1.0.9.tgz", + "integrity": "sha512-biL65POqialY0i4g6crj7pR6JnBkbsPovB2WDYkj3H4TuC/QXv7Pu5pdPxeUJA6TSCHI7T5twsO4VSVyRxD9CA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-haskell": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@cspell/dict-haskell/-/dict-haskell-4.0.6.tgz", + "integrity": "sha512-ib8SA5qgftExpYNjWhpYIgvDsZ/0wvKKxSP+kuSkkak520iPvTJumEpIE+qPcmJQo4NzdKMN8nEfaeci4OcFAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-html": { + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.15.tgz", + "integrity": "sha512-GJYnYKoD9fmo2OI0aySEGZOjThnx3upSUvV7mmqUu8oG+mGgzqm82P/f7OqsuvTaInZZwZbo+PwJQd/yHcyFIw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@cspell/dict-html-symbol-entities": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.5.tgz", + "integrity": "sha512-429alTD4cE0FIwpMucvSN35Ld87HCyuM8mF731KU5Rm4Je2SG6hmVx7nkBsLyrmH3sQukTcr1GaiZsiEg8svPA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@cspell/dict-java": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.12.tgz", + "integrity": "sha512-qPSNhTcl7LGJ5Qp6VN71H8zqvRQK04S08T67knMq9hTA8U7G1sTKzLmBaDOFhq17vNX/+rT+rbRYp+B5Nwza1A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-julia": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-julia/-/dict-julia-1.1.1.tgz", + "integrity": "sha512-WylJR9TQ2cgwd5BWEOfdO3zvDB+L7kYFm0I9u0s9jKHWQ6yKmfKeMjU9oXxTBxIufhCXm92SKwwVNAC7gjv+yA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-k8s": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@cspell/dict-k8s/-/dict-k8s-1.0.12.tgz", + "integrity": "sha512-2LcllTWgaTfYC7DmkMPOn9GsBWsA4DZdlun4po8s2ysTP7CPEnZc1ZfK6pZ2eI4TsZemlUQQ+NZxMe9/QutQxg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-kotlin": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-kotlin/-/dict-kotlin-1.1.1.tgz", + "integrity": "sha512-J3NzzfgmxRvEeOe3qUXnSJQCd38i/dpF9/t3quuWh6gXM+krsAXP75dY1CzDmS8mrJAlBdVBeAW5eAZTD8g86Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-latex": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-5.1.0.tgz", + "integrity": "sha512-qxT4guhysyBt0gzoliXYEBYinkAdEtR2M7goRaUH0a7ltCsoqqAeEV8aXYRIdZGcV77gYSobvu3jJL038tlPAw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-lorem-ipsum": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-4.0.5.tgz", + "integrity": "sha512-9a4TJYRcPWPBKkQAJ/whCu4uCAEgv/O2xAaZEI0n4y1/l18Yyx8pBKoIX5QuVXjjmKEkK7hi5SxyIsH7pFEK9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-lua": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-4.0.8.tgz", + "integrity": "sha512-N4PkgNDMu9JVsRu7JBS/3E/dvfItRgk9w5ga2dKq+JupP2Y3lojNaAVFhXISh4Y0a6qXDn2clA6nvnavQ/jjLA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-makefile": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-makefile/-/dict-makefile-1.0.5.tgz", + "integrity": "sha512-4vrVt7bGiK8Rx98tfRbYo42Xo2IstJkAF4tLLDMNQLkQ86msDlYSKG1ZCk8Abg+EdNcFAjNhXIiNO+w4KflGAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-markdown": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@cspell/dict-markdown/-/dict-markdown-2.0.16.tgz", + "integrity": "sha512-976RRqKv6cwhrxdFCQP2DdnBVB86BF57oQtPHy4Zbf4jF/i2Oy29MCrxirnOBalS1W6KQeto7NdfDXRAwkK4PQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@cspell/dict-css": "^4.1.1", + "@cspell/dict-html": "^4.0.15", + "@cspell/dict-html-symbol-entities": "^4.0.5", + "@cspell/dict-typescript": "^3.2.3" + } + }, + "node_modules/@cspell/dict-monkeyc": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@cspell/dict-monkeyc/-/dict-monkeyc-1.0.12.tgz", + "integrity": "sha512-MN7Vs11TdP5mbdNFQP5x2Ac8zOBm97ARg6zM5Sb53YQt/eMvXOMvrep7+/+8NJXs0jkp70bBzjqU4APcqBFNAw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-node": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-5.0.9.tgz", + "integrity": "sha512-hO+ga+uYZ/WA4OtiMEyKt5rDUlUyu3nXMf8KVEeqq2msYvAPdldKBGH7lGONg6R/rPhv53Rb+0Y1SLdoK1+7wQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-npm": { + "version": "5.2.38", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.38.tgz", + "integrity": "sha512-21ucGRPYYhr91C2cDBoMPTrcIOStQv33xOqJB0JLoC5LAs2Sfj9EoPGhGb+gIFVHz6Ia7JQWE2SJsOVFJD1wmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-php": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.1.1.tgz", + "integrity": "sha512-EXelI+4AftmdIGtA8HL8kr4WlUE11OqCSVlnIgZekmTkEGSZdYnkFdiJ5IANSALtlQ1mghKjz+OFqVs6yowgWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-powershell": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.15.tgz", + "integrity": "sha512-l4S5PAcvCFcVDMJShrYD0X6Huv9dcsQPlsVsBGbH38wvuN7gS7+GxZFAjTNxDmTY1wrNi1cCatSg6Pu2BW4rgg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-public-licenses": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.16.tgz", + "integrity": "sha512-EQRrPvEOmwhwWezV+W7LjXbIBjiy6y/shrET6Qcpnk3XANTzfvWflf9PnJ5kId/oKWvihFy0za0AV1JHd03pSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-python": { + "version": "4.2.26", + "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.2.26.tgz", + "integrity": "sha512-hbjN6BjlSgZOG2dA2DtvYNGBM5Aq0i0dHaZjMOI9K/9vRicVvKbcCiBSSrR3b+jwjhQL5ff7HwG5xFaaci0GQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/dict-data-science": "^2.0.13" + } + }, + "node_modules/@cspell/dict-r": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-r/-/dict-r-2.1.1.tgz", + "integrity": "sha512-71Ka+yKfG4ZHEMEmDxc6+blFkeTTvgKbKAbwiwQAuKl3zpqs1Y0vUtwW2N4b3LgmSPhV3ODVY0y4m5ofqDuKMw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-ruby": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-5.1.1.tgz", + "integrity": "sha512-LHrp84oEV6q1ZxPPyj4z+FdKyq1XAKYPtmGptrd+uwHbrF/Ns5+fy6gtSi7pS+uc0zk3JdO9w/tPK+8N1/7WUA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-rust": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.1.2.tgz", + "integrity": "sha512-O1FHrumYcO+HZti3dHfBPUdnDFkI+nbYK3pxYmiM1sr+G0ebOd6qchmswS0Wsc6ZdEVNiPYJY/gZQR6jfW3uOg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-scala": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-5.0.9.tgz", + "integrity": "sha512-AjVcVAELgllybr1zk93CJ5wSUNu/Zb5kIubymR/GAYkMyBdYFCZ3Zbwn4Zz8GJlFFAbazABGOu0JPVbeY59vGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-shell": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-shell/-/dict-shell-1.1.2.tgz", + "integrity": "sha512-WqOUvnwcHK1X61wAfwyXq04cn7KYyskg90j4lLg3sGGKMW9Sq13hs91pqrjC44Q+lQLgCobrTkMDw9Wyl9nRFA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-software-terms": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-5.2.2.tgz", + "integrity": "sha512-0CaYd6TAsKtEoA7tNswm1iptEblTzEe3UG8beG2cpSTHk7afWIVMtJLgXDv0f/Li67Lf3Z1Jf3JeXR7GsJ2TRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-sql": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-2.2.1.tgz", + "integrity": "sha512-qDHF8MpAYCf4pWU8NKbnVGzkoxMNrFqBHyG/dgrlic5EQiKANCLELYtGlX5auIMDLmTf1inA0eNtv74tyRJ/vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-svelte": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@cspell/dict-svelte/-/dict-svelte-1.0.7.tgz", + "integrity": "sha512-hGZsGqP0WdzKkdpeVLBivRuSNzOTvN036EBmpOwxH+FTY2DuUH7ecW+cSaMwOgmq5JFSdTcbTNFlNC8HN8lhaQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-swift": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@cspell/dict-swift/-/dict-swift-2.0.6.tgz", + "integrity": "sha512-PnpNbrIbex2aqU1kMgwEKvCzgbkHtj3dlFLPMqW1vSniop7YxaDTtvTUO4zA++ugYAEL+UK8vYrBwDPTjjvSnA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-terraform": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-terraform/-/dict-terraform-1.1.3.tgz", + "integrity": "sha512-gr6wxCydwSFyyBKhBA2xkENXtVFToheqYYGFvlMZXWjviynXmh+NK/JTvTCk/VHk3+lzbO9EEQKee6VjrAUSbA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-typescript": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.2.3.tgz", + "integrity": "sha512-zXh1wYsNljQZfWWdSPYwQhpwiuW0KPW1dSd8idjMRvSD0aSvWWHoWlrMsmZeRl4qM4QCEAjua8+cjflm41cQBg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@cspell/dict-vue": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-vue/-/dict-vue-3.0.5.tgz", + "integrity": "sha512-Mqutb8jbM+kIcywuPQCCaK5qQHTdaByoEO2J9LKFy3sqAdiBogNkrplqUK0HyyRFgCfbJUgjz3N85iCMcWH0JA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-zig": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-zig/-/dict-zig-1.0.0.tgz", + "integrity": "sha512-XibBIxBlVosU06+M6uHWkFeT0/pW5WajDRYdXG2CgHnq85b0TI/Ks0FuBJykmsgi2CAD3Qtx8UHFEtl/DSFnAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dynamic-import": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-9.7.0.tgz", + "integrity": "sha512-Ws36IYvtS/8IN3x6K9dPLvTmaArodRJmzTn2Rkf2NaTnIYWhRuFzsP3SVVO59NN3fXswAEbmz5DSbVUe8bPZHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/url": "9.7.0", + "import-meta-resolve": "^4.2.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@cspell/filetypes": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-9.7.0.tgz", + "integrity": "sha512-Ln9e/8wGOyTeL3DCCs6kwd18TSpTw3kxsANjTrzLDASrX4cNmAdvc9J5dcIuBHPaqOAnRQxuZbzUlpRh73Y24w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/@cspell/rpc": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@cspell/rpc/-/rpc-9.7.0.tgz", + "integrity": "sha512-VnZ4ABgQeoS4RwofcePkDP7L6tf3Kh5D7LQKoyRM4R6XtfSsYefym6XKaRl3saGtthH5YyjgNJ0Tgdjen4wAAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.18" + } + }, + "node_modules/@cspell/strong-weak-map": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-9.7.0.tgz", + "integrity": "sha512-5xbvDASjklrmy88O6gmGXgYhpByCXqOj5wIgyvwZe2l83T1bE+iOfGI4pGzZJ/mN+qTn1DNKq8BPBPtDgb7Q2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/@cspell/url": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@cspell/url/-/url-9.7.0.tgz", + "integrity": "sha512-ZaaBr0pTvNxmyUbIn+nVPXPr383VqJzfUDMWicgTjJIeo2+T2hOq2kNpgpvTIrWtZrsZnSP8oXms1+sKTjcvkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, "node_modules/@csstools/cascade-layer-name-parser": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.5.tgz", @@ -6732,6 +7401,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-timsort": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", + "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", + "dev": true, + "license": "MIT" + }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -7397,6 +8073,35 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/chalk-template": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-1.1.2.tgz", + "integrity": "sha512-2bxTP2yUH7AJj/VAXfcA+4IcWGdQ87HwBANLt5XxGTeomo8yG0y95N1um9i5StvhT/Bl0/2cARA5v1PpPXUxUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, + "node_modules/chalk-template/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", @@ -7562,6 +8267,46 @@ "node": ">=6" } }, + "node_modules/clear-module": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/clear-module/-/clear-module-4.1.2.tgz", + "integrity": "sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^2.0.0", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clear-module/node_modules/parent-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", + "integrity": "sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clear-module/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/cli-boxes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", @@ -7856,6 +8601,20 @@ "node": ">= 6" } }, + "node_modules/comment-json": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.6.2.tgz", + "integrity": "sha512-R2rze/hDX30uul4NZoIZ76ImSJLFxn/1/ZxtKC1L77y2X1k+yYu1joKbAtMA2Fg3hZrTOiw0I5mwVMo0cf250w==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-timsort": "^1.0.3", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/common-path-prefix": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", @@ -8275,6 +9034,266 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cspell": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-9.7.0.tgz", + "integrity": "sha512-ftxOnkd+scAI7RZ1/ksgBZRr0ouC7QRKtPQhD/PbLTKwAM62sSvRhE1bFsuW3VKBn/GilWzTjkJ40WmnDqH5iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/cspell-json-reporter": "9.7.0", + "@cspell/cspell-performance-monitor": "9.7.0", + "@cspell/cspell-pipe": "9.7.0", + "@cspell/cspell-types": "9.7.0", + "@cspell/cspell-worker": "9.7.0", + "@cspell/dynamic-import": "9.7.0", + "@cspell/url": "9.7.0", + "ansi-regex": "^6.2.2", + "chalk": "^5.6.2", + "chalk-template": "^1.1.2", + "commander": "^14.0.3", + "cspell-config-lib": "9.7.0", + "cspell-dictionary": "9.7.0", + "cspell-gitignore": "9.7.0", + "cspell-glob": "9.7.0", + "cspell-io": "9.7.0", + "cspell-lib": "9.7.0", + "fast-json-stable-stringify": "^2.1.0", + "flatted": "^3.3.3", + "semver": "^7.7.4", + "tinyglobby": "^0.2.15" + }, + "bin": { + "cspell": "bin.mjs", + "cspell-esm": "bin.mjs" + }, + "engines": { + "node": ">=20.18" + }, + "funding": { + "url": "https://github.com/streetsidesoftware/cspell?sponsor=1" + } + }, + "node_modules/cspell-config-lib": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-9.7.0.tgz", + "integrity": "sha512-pguh8A3+bSJ1OOrKCiQan8bvaaY125de76OEFz7q1Pq309lIcDrkoL/W4aYbso/NjrXaIw6OjkgPMGRBI/IgGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/cspell-types": "9.7.0", + "comment-json": "^4.5.1", + "smol-toml": "^1.6.0", + "yaml": "^2.8.2" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/cspell-dictionary": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-9.7.0.tgz", + "integrity": "sha512-k/Wz0so32+0QEqQe21V9m4BNXM5ZN6lz3Ix/jLCbMxFIPl6wT711ftjOWIEMFhvUOP0TWXsbzcuE9mKtS5mTig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/cspell-performance-monitor": "9.7.0", + "@cspell/cspell-pipe": "9.7.0", + "@cspell/cspell-types": "9.7.0", + "cspell-trie-lib": "9.7.0", + "fast-equals": "^6.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/cspell-gitignore": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-9.7.0.tgz", + "integrity": "sha512-MtoYuH4ah4K6RrmaF834npMcRsTKw0658mC6yvmBacUQOmwB/olqyuxF3fxtbb55HDb7cXDQ35t1XuwwGEQeZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/url": "9.7.0", + "cspell-glob": "9.7.0", + "cspell-io": "9.7.0" + }, + "bin": { + "cspell-gitignore": "bin.mjs" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/cspell-glob": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-9.7.0.tgz", + "integrity": "sha512-LUeAoEsoCJ+7E3TnUmWBscpVQOmdwBejMlFn0JkXy6LQzxrybxXBKf65RSdIv1o5QtrhQIMa358xXYQG0sv/tA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/url": "9.7.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/cspell-glob/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/cspell-grammar": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-9.7.0.tgz", + "integrity": "sha512-oEYME+7MJztfVY1C06aGcJgEYyqBS/v/ETkQGPzf/c6ObSAPRcUbVtsXZgnR72Gru9aBckc70xJcD6bELdoWCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/cspell-pipe": "9.7.0", + "@cspell/cspell-types": "9.7.0" + }, + "bin": { + "cspell-grammar": "bin.mjs" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/cspell-io": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-9.7.0.tgz", + "integrity": "sha512-V7x0JHAUCcJPRCH8c0MQkkaKmZD2yotxVyrNEx2SZTpvnKrYscLEnUUTWnGJIIf9znzISqw116PLnYu2c+zd6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/cspell-service-bus": "9.7.0", + "@cspell/url": "9.7.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/cspell-lib": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-9.7.0.tgz", + "integrity": "sha512-aTx/aLRpnuY1RJnYAu+A8PXfm1oIUdvAQ4W9E66bTgp1LWI+2G2++UtaPxRIgI0olxE9vcXqUnKpjOpO+5W9bQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/cspell-bundled-dicts": "9.7.0", + "@cspell/cspell-performance-monitor": "9.7.0", + "@cspell/cspell-pipe": "9.7.0", + "@cspell/cspell-resolver": "9.7.0", + "@cspell/cspell-types": "9.7.0", + "@cspell/dynamic-import": "9.7.0", + "@cspell/filetypes": "9.7.0", + "@cspell/rpc": "9.7.0", + "@cspell/strong-weak-map": "9.7.0", + "@cspell/url": "9.7.0", + "clear-module": "^4.1.2", + "cspell-config-lib": "9.7.0", + "cspell-dictionary": "9.7.0", + "cspell-glob": "9.7.0", + "cspell-grammar": "9.7.0", + "cspell-io": "9.7.0", + "cspell-trie-lib": "9.7.0", + "env-paths": "^4.0.0", + "gensequence": "^8.0.8", + "import-fresh": "^3.3.1", + "resolve-from": "^5.0.0", + "vscode-languageserver-textdocument": "^1.0.12", + "vscode-uri": "^3.1.0", + "xdg-basedir": "^5.1.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/cspell-lib/node_modules/env-paths": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-4.0.0.tgz", + "integrity": "sha512-pxP8eL2SwwaTRi/KHYwLYXinDs7gL3jxFcBYmEdYfZmZXbaVDvdppd0XBU8qVz03rDfKZMXg1omHCbsJjZrMsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-safe-filename": "^0.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cspell-lib/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cspell-trie-lib": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-9.7.0.tgz", + "integrity": "sha512-a2YqmcraL3g6I/4gY7SYWEZfP73oLluUtxO7wxompk/kOG2K1FUXyQfZXaaR7HxVv10axT1+NrjhOmXpfbI6LA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@cspell/cspell-types": "9.7.0" + } + }, + "node_modules/cspell/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/cspell/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cspell/node_modules/commander": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, "node_modules/css-blank-pseudo": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz", @@ -10197,6 +11216,16 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "license": "MIT" }, + "node_modules/fast-equals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-6.0.0.tgz", + "integrity": "sha512-PFhhIGgdM79r5Uztdj9Zb6Tt1zKafqVfdMGwVca1z5z6fbX7DmsySSuJd8HiP6I1j505DCS83cLxo5rmSNeVEA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", @@ -10664,6 +11693,16 @@ "node": ">= 0.4" } }, + "node_modules/gensequence": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/gensequence/-/gensequence-8.0.8.tgz", + "integrity": "sha512-omMVniXEXpdx/vKxGnPRoO2394Otlze28TyxECbFVyoSpZ9H3EO7lemjcB12OpQJzRW4e5tt/dL1rOxry6aMHg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -12423,6 +13462,19 @@ "node": ">=0.10.0" } }, + "node_modules/is-safe-filename": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-safe-filename/-/is-safe-filename-0.1.1.tgz", + "integrity": "sha512-4SrR7AdnY11LHfDKTZY1u6Ga3RuxZdl3YKWWShO5iyuG5h8QS4GD2tOb04peBJ5I7pXbR+CGBNEhTcwK+FzN3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-set": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", @@ -22084,6 +23136,20 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", + "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", + "dev": true, + "license": "MIT" + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, "node_modules/watchpack": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", diff --git a/package.json b/package.json index 0414afe..8f5f2cf 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "lint:js:fix": "eslint --fix .", "lint:links": "docker run --rm -v $PWD:/input lycheeverse/lychee --config /input/.lychee.toml --root-dir /input/static '/input/docs/**/*.md' '/input/README.md'", "lint:examples": "npm run prebuild && python3 scripts/validate-code-examples.py", + "lint:spell": "cspell", "prepare": "husky" }, "dependencies": { @@ -35,9 +36,11 @@ "devDependencies": { "@commitlint/cli": "20.5.0", "@commitlint/config-conventional": "20.5.0", + "@cspell/dict-fr-fr": "2.3.2", "@docusaurus/module-type-aliases": "3.9.2", "@docusaurus/types": "3.9.2", "@eslint/js": "9.39.4", + "cspell": "9.7.0", "eslint": "9.39.4", "eslint-plugin-react": "7.37.5", "git-precommit-checks": "3.1.0", @@ -61,7 +64,11 @@ ] }, "lint-staged": { - "*.md": "markdownlint", + "*.md": [ + "prettier --check", + "markdownlint", + "cspell --no-must-find-files" + ], "*.{js,jsx}": [ "eslint", "prettier --check" @@ -69,6 +76,6 @@ "*.{json,css,yml,yaml}": "prettier --check" }, "engines": { - "node": ">=20.17.0" + "node": ">=20.18.0" } }