diff --git a/.vitepress/theme/index.ts b/.vitepress/theme/index.ts index aef3e6fa..cc5361af 100644 --- a/.vitepress/theme/index.ts +++ b/.vitepress/theme/index.ts @@ -7,6 +7,14 @@ import "./style.css"; import BackToTopButton from "@miletorix/vitepress-back-to-top-button"; import "@miletorix/vitepress-back-to-top-button/style.css"; +function rewrite(path: string): string | null { + // Example: VuePress legacy prefix + if (path.startsWith("/development/")) + return path.replace("/development/", "/module-development/"); + + return null; +} + export default { extends: DefaultTheme, Layout: () => { @@ -16,5 +24,13 @@ export default { }, enhanceApp({ app, router, siteData }) { BackToTopButton(app); + router.onBeforeRouteChange = (to) => { + const next = rewrite(to); + if (next && next !== to) { + // Replace instead of push: avoids back-button loops + router.go(next); + return false; // cancel original navigation + } + }; }, } satisfies Theme; diff --git a/configuration/introduction.md b/configuration/introduction.md index f7aee3e6..f51aba3d 100644 --- a/configuration/introduction.md +++ b/configuration/introduction.md @@ -21,11 +21,11 @@ }; ``` - See [module configuration](/modules/configuration.md) for more information - and examples. + See [module configuration](/modules/configuration) for more information and + examples. 4. Run your magic mirror. Refer back to - [installation](/getting-started/installation.md) if you're not sure how to do + [installation](/getting-started/installation) if you're not sure how to do so. ## More useful configuration of your MagicMirror @@ -56,13 +56,13 @@ The following properties can be configured, place them above the modules item: | `language` | The language of the interface. (Note: Not all elements will be localized.) Possible values are `en`, `nl`, `ru`, `fr`, etc. for the full list see: [List of ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) | `en` | | `timeFormat` | The form of time notation that will be used. Possible values are `12` or `24`. | 24 | | `units` | The units that will be used in the default weather modules. Possible values are `metric` or `imperial`. | `metric` | -| `electronOptions` | An optional array of Electron (browser) options. This allows configuration of e.g. the browser screen size and position (example: `electronOptions: { fullscreen: false, width: 800, height: 600 }`). Kiosk mode can be enabled by setting `kiosk: true`, `autoHideMenuBar: false` and `fullscreen: false`. More options can be found [here](https://github.com/electron/electron/blob/master/docs/api/browser-window.md). This will most likely be used in advanced installations, below. | [] | +| `electronOptions` | An optional array of Electron (browser) options. This allows configuration of e.g. the browser screen size and position (example: `electronOptions: { fullscreen: false, width: 800, height: 600 }`). Kiosk mode can be enabled by setting `kiosk: true`, `autoHideMenuBar: false` and `fullscreen: false`. More options can be found [here](https://github.com/electron/electron/blob/master/docs/api/browser-window). This will most likely be used in advanced installations, below. | [] | | `electronSwitches` | An optional array of Electron switches. This allows configuration of electron app itself.
This properties will not affect the `serveronly` mode. Usually normal `MM` users don't need this property, but if you are a hard-core hacker, you might need this to handle Electron itself over `MagicMirror` provides. More options can be found [here](https://www.electronjs.org/docs/latest/api/command-line-switches) (Not all available switches are described there.)
example:`electronSwitches:["enable-transparent-visuals", "disable-gpu"];` | [] | | `customCss` | The path of the `custom.css` stylesheet. The default is `css/custom.css`. | `css/custom.css` | -| `watchTargets` | An optional array of file paths to monitor when using `node --run server:watch`. When any of these files change, the server automatically restarts and connected browsers reload. Particularly useful when frequently modifying `config.js`, `custom.css`, or module files during development or setup. Example: `watchTargets: ["config/config.js", "css/custom.css", "modules/MMM-MyModule/MMM-MyModule.js"]`. See [Development Mode](/core-development/debugging.md#watch-mode-with-auto-reload) for more details. | `undefined` | +| `watchTargets` | An optional array of file paths to monitor when using `node --run server:watch`. When any of these files change, the server automatically restarts and connected browsers reload. Particularly useful when frequently modifying `config.js`, `custom.css`, or module files during development or setup. Example: `watchTargets: ["config/config.js", "css/custom.css", "modules/MMM-MyModule/MMM-MyModule.js"]`. See [Development Mode](/core-development/debugging#watch-mode-with-auto-reload) for more details. | `undefined` | After the above options, you will then add modules. See -[module configuration](/modules/configuration.md) for more information. +[module configuration](/modules/configuration) for more information. ### Advanced configuration and frequently asked how to configure examples diff --git a/core-development/introduction.md b/core-development/introduction.md index 7de1f774..d24e57d4 100644 --- a/core-development/introduction.md +++ b/core-development/introduction.md @@ -9,7 +9,7 @@ This documentation describes core MagicMirror² development. ## General MagicMirror² is a community-driven development effort, and -[contributions](/about/contributing.md) are welcome! +[contributions](/about/contributing) are welcome! In general, new features and bug fixes should be tracked against an [issue in the MagicMirror repo](https://github.com/MagicMirrorOrg/MagicMirror/issues). diff --git a/enhanceApp.js b/enhanceApp.js deleted file mode 100644 index c36e8f8f..00000000 --- a/enhanceApp.js +++ /dev/null @@ -1,36 +0,0 @@ -export default ({ router }) => { - router.addRoutes([ - { - path: "/development/introduction.html", - redirect: "/module-development/introduction.html", - }, - { - path: "/development/core-module-file.html", - redirect: "/module-development/core-module-file.html", - }, - { - path: "/development/node-helper.html", - redirect: "/module-development/node-helper.html", - }, - { - path: "/development/helper-methods.html", - redirect: "/module-development/helper-methods.html", - }, - { - path: "/development/logger.html", - redirect: "/module-development/logger.html", - }, - { - path: "/development/notifications.html", - redirect: "/module-development/notifications.html", - }, - { - path: "/development/weather-provider.html", - redirect: "/module-development/weather-provider.html", - }, - { - path: "/development/documentation.html", - redirect: "/module-development/documentation.html", - }, - ]); -}; diff --git a/getting-started/installation.md b/getting-started/installation.md index 99023176..8ae5158e 100644 --- a/getting-started/installation.md +++ b/getting-started/installation.md @@ -143,7 +143,7 @@ controlled by settings inside the `config/config.js` file by interface and ip: - Change `ipWhitelist` to the list of IP's you want to allow to connect Sample Configuration below -[and link to full configuration options](/configuration/introduction.md) +[and link to full configuration options](/configuration/introduction) ```js let config = { diff --git a/getting-started/requirements.md b/getting-started/requirements.md index ff44db42..ea48450c 100644 --- a/getting-started/requirements.md +++ b/getting-started/requirements.md @@ -9,7 +9,7 @@ Raspberry Pi. _Electron_, the app wrapper around MagicMirror², only supports the Raspberry Pi 2, 3, 4 & 5. The Raspberry Pi 0/1 is currently **not** supported. If you want to run this on a Raspberry Pi 1, use the -[server only](/getting-started/installation.md#server-only) feature and setup a +[server only](/getting-started/installation#server-only) feature and setup a fullscreen browser yourself. (Yes, people have managed to run MM² also on a Pi0, so if you insist, search in the forums.) @@ -20,7 +20,7 @@ You will need to install the latest full version of Raspbian). If you want to run the software on other Operating Systems, take a look at -[this section](/getting-started/installation.md#alternative-installation-methods) +[this section](/getting-started/installation#alternative-installation-methods) ::: warning NOTE You **do** need a desktop environment to run Electron! diff --git a/module-development/core-module-file.md b/module-development/core-module-file.md index df81f85e..4b24c383 100644 --- a/module-development/core-module-file.md +++ b/module-development/core-module-file.md @@ -206,7 +206,7 @@ system calls the getDom method. This method should therefore return a dom object. Read more about Rendering Components -[in the Rendering Component documentation](/module-development/rendering.md). +[in the Rendering Component documentation](/module-development/rendering). **Example:** @@ -232,7 +232,7 @@ An example of a default module that uses this method is [newsfeed](https://github.com/MagicMirrorOrg/MagicMirror/blob/master/modules/default/newsfeed/newsfeed.js). Read more about Rendering Components -[in the Rendering Component documentation](/module-development/rendering.md). +[in the Rendering Component documentation](/module-development/rendering). **Example:** @@ -283,7 +283,7 @@ getTemplateData: function() { Whenever the MagicMirror needs to update the information on screen (because it starts, or because your module asked a refresh using `this.updateDom()`), the system calls the getHeader method to retrieve the module's header. This method -should therefor return a string. If this method is not subclassed, this function +should therefore return a string. If this method is not subclassed, this function will return the user's configured header. If you want to use the original user's configured header, reference @@ -394,9 +394,9 @@ the content update will be animated, but only if the content will really change. Note that the rendering of the updated dom on the screen will happen asynchronously. You can listen for the -[`DOM_OBJECTS_UPDATED` notification](/module-development/notifications.md) to -know when the rendering is complete and the new dom is safe to interact with. -This notification only fires if the content will really change. +[`DOM_OBJECTS_UPDATED` notification](/module-development/notifications) to know +when the rendering is complete and the new dom is safe to interact with. This +notification only fires if the content will really change. **Example:** @@ -422,10 +422,10 @@ module needs to be updated **animate Object** -| animate | type | description | -| ------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -| in | String | Animate name when module will be shown (after dom update), it will use an `animateIn` type name (see [Animation Guide](/modules/animate.md#animatein)) | -| out | String | Animate name when module will be hidden (before dom update), it will use an `animateOut` type name (see [Animation Guide](/modules/animate.md#animateout)) | +| animate | type | description | +| ------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| in | String | Animate name when module will be shown (after dom update), it will use an `animateIn` type name (see [Animation Guide](/modules/animate#animatein)) | +| out | String | Animate name when module will be hidden (before dom update), it will use an `animateOut` type name (see [Animation Guide](/modules/animate#animateout)) | **Example:** @@ -499,7 +499,7 @@ Possible configurable options: - `animate` - String - (_Introduced in version: 2.25.0._) Hide the module with a special animate. It will use an `animateOut` type name. All animations name - are available in [Animation Guide](/modules/animate.md#animateout) + are available in [Animation Guide](/modules/animate#animateout) ::: warning Notes: @@ -542,7 +542,7 @@ Possible configurable options: object, if specified in the options (_Introduced in version: 2.15.0_). - `animate` - String - (_Introduced in version: 2.25.0._) Show the module with a special animation. It will use an `animateIn` type name. All animations name - are available in [Animation Guide](/modules/animate.md#animatein) + are available in [Animation Guide](/modules/animate#animatein) ::: warning Notes: diff --git a/module-development/helper-methods.md b/module-development/helper-methods.md index 7a0976ea..47069bc8 100644 --- a/module-development/helper-methods.md +++ b/module-development/helper-methods.md @@ -20,7 +20,7 @@ for more info. **Note:** This method returns an empty array if not all modules are started yet. Wait for the `ALL_MODULES_STARTED` -[notification](/module-development/core-module-file.md#notificationreceived-notification-payload-sender). +[notification](/module-development/core-module-file#notificationreceived-notification-payload-sender). #### `.withClass(classnames)` diff --git a/module-development/introduction.md b/module-development/introduction.md index 21c620ee..a5bec8e8 100644 --- a/module-development/introduction.md +++ b/module-development/introduction.md @@ -23,7 +23,7 @@ information in your README file.** it free?) - **Do not use `new Date()` for the current timestamp, instead prefer `new Date(Date.now())` as it can be more - [easily overridden for debugging](/core-development/debugging.md#date)**. + [easily overridden for debugging](/core-development/debugging#date)**. Surely this also help you get better recognition and feedback for your work. diff --git a/module-development/node-helper.md b/module-development/node-helper.md index e60d7f4c..082b4e5b 100644 --- a/module-development/node-helper.md +++ b/module-development/node-helper.md @@ -130,7 +130,7 @@ When this method is called, it has 2 arguments: **Note:** The socket connection is established as soon as the module sends its first message using -[sendSocketNotification](/module-development/core-module-file.md#this-sendsocketnotification-notification-payload). +[sendSocketNotification](/module-development/core-module-file#this-sendsocketnotification-notification-payload). **Example:** diff --git a/module-development/notifications.md b/module-development/notifications.md index ababe032..7d53e964 100644 --- a/module-development/notifications.md +++ b/module-development/notifications.md @@ -8,21 +8,21 @@ The MagicMirror core has the ability to send notifications to modules. Or even better: the modules have the possibility to send notifications to other modules. Additional technical information on the notifications can be found in the -[modules' documentation](/module-development/introduction.md#general-advice): +[modules' documentation](/module-development/introduction#general-advice): -- [notificationReceived](/module-development/core-module-file.md#notificationreceived-notification-payload-sender) -- [sendNotification](/module-development/core-module-file.md#module-instance-methods) +- [notificationReceived](/module-development/core-module-file#notificationreceived-notification-payload-sender) +- [sendNotification](/module-development/core-module-file#module-instance-methods) # System notifications The system sends three notifications when starting up: -| Notification | Payload | Description | -| --------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `ALL_MODULES_STARTED` | _none_ | All modules are started. You can now send notifications to other modules. | -| `DOM_OBJECTS_CREATED` | _none_ | All dom objects are created. The system is now ready to perform visual changes. | -| `MODULE_DOM_CREATED` | _none_ | This module's dom has been fully loaded. You can now access your module's dom objects. | -| `MODULE_DOM_UPDATED` | _none_ | This module's dom has been updated and re-rendered. You can now access your module's (updated) dom objects. This notification is sent in response to a call to [`updateDom`](/module-development/core-module-file.md#this-updatedom-speed-options). | +| Notification | Payload | Description | +| --------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `ALL_MODULES_STARTED` | _none_ | All modules are started. You can now send notifications to other modules. | +| `DOM_OBJECTS_CREATED` | _none_ | All dom objects are created. The system is now ready to perform visual changes. | +| `MODULE_DOM_CREATED` | _none_ | This module's dom has been fully loaded. You can now access your module's dom objects. | +| `MODULE_DOM_UPDATED` | _none_ | This module's dom has been updated and re-rendered. You can now access your module's (updated) dom objects. This notification is sent in response to a call to [`updateDom`](/module-development/core-module-file#this-updatedom-speed-options). | # Default module notifications diff --git a/module-development/rendering.md b/module-development/rendering.md index db9f5d18..0f428bda 100644 --- a/module-development/rendering.md +++ b/module-development/rendering.md @@ -6,7 +6,7 @@ engine. With both approaches, rendering is first triggered when the module is first loaded. When your module's data changes, you can call -[`this.updateDom()`](/module-development/core-module-file.md#this-updatedom-speed-options) +[`this.updateDom()`](/module-development/core-module-file#this-updatedom-speed-options) to trigger a re-render. ## Using `getDom` @@ -86,7 +86,7 @@ template. MagicMirror provides a `translate` filter which can be used to access the same functionality available in the -[`this.translate` module instance method](/module-development/core-module-file.md#this-translate-identifier). +[`this.translate` module instance method](/module-development/core-module-file#this-translate-identifier). ```nunjucks {{ "INFO" | translate }} diff --git a/modules/animate.md b/modules/animate.md index 8802e4f0..8a6e46e1 100644 --- a/modules/animate.md +++ b/modules/animate.md @@ -11,12 +11,12 @@ animation name result. ::: warning Where animation can be used? -- [global module configuration](/modules/configuration.md#animated) of a module -- [this.hide()](/module-development/core-module-file.md#this-hide-speed-callback-options) +- [global module configuration](/modules/configuration#animated) of a module +- [this.hide()](/module-development/core-module-file#this-hide-speed-callback-options) function in core module file -- [this.show()](/module-development/core-module-file.md#this-show-speed-callback-options) +- [this.show()](/module-development/core-module-file#this-show-speed-callback-options) function in core module file -- [this.updateDom()](/module-development/core-module-file.md#this-updatedom-speed-options) +- [this.updateDom()](/module-development/core-module-file#this-updatedom-speed-options) function in core module file ::: diff --git a/modules/configuration.md b/modules/configuration.md index e90adee4..045da847 100644 --- a/modules/configuration.md +++ b/modules/configuration.md @@ -1,7 +1,7 @@ # Module Configuration The module configuration is used as part of the main configuration file. Please -see [configuration](/configuration/introduction.md) for more information. +see [configuration](/configuration/introduction) for more information. | **Option** | **Description** | | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -74,7 +74,7 @@ Animated feature allows to define an animation to a module - `animateIn`: When module appears - `animateOut`: When module should hide -The whole of animation names are available [there](/modules/animate.md). +The whole of animation names are available [there](/modules/animate). ::: tip Preview of animations diff --git a/modules/introduction.md b/modules/introduction.md index 03ba0709..ad41a4c6 100644 --- a/modules/introduction.md +++ b/modules/introduction.md @@ -6,18 +6,18 @@ title: Introduction The following modules are installed by default. -- [**Clock**](/modules/clock.md) -- [**Calendar**](/modules/calendar.md) -- [**Weather**](/modules/weather.md) -- [**News Feed**](/modules/newsfeed.md) -- [**Compliments**](/modules/compliments.md) -- [**Hello World**](/modules/helloworld.md) -- [**Alert**](/modules/alert.md) +- [**Clock**](/modules/clock) +- [**Calendar**](/modules/calendar) +- [**Weather**](/modules/weather) +- [**News Feed**](/modules/newsfeed) +- [**Compliments**](/modules/compliments) +- [**Hello World**](/modules/helloworld) +- [**Alert**](/modules/alert) For more available modules, check out out the wiki page [MagicMirror² 3rd Party Modules](https://github.com/MagicMirrorOrg/MagicMirror/wiki/3rd-party-modules). If you want to build your own modules, check out the -[MagicMirror² Module Development Documentation](/module-development/introduction.md) +[MagicMirror² Module Development Documentation](/module-development/introduction) and don't forget to add it to the [wiki](https://github.com/MagicMirrorOrg/MagicMirror/wiki) and the [forum](https://forum.magicmirror.builders/category/7/showcase)! diff --git a/modules/weather.md b/modules/weather.md index 9475026f..5ddd96f5 100755 --- a/modules/weather.md +++ b/modules/weather.md @@ -41,29 +41,29 @@ The following properties can be configured: ### General options -| Option | Description | -| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `weatherProvider` | Which weather provider should be used.

**Possible values:** `openweathermap` , `pirateweather` , `weathergov`, `ukmetofficedatahub`, `weatherbit`, `envcanada`, `openmeteo`, `weatherflow`, `SMHI` or `yr`
**Default value:** `openweathermap` | -| `type` | Which type of weather data should be displayed.

**Possible values:** `current` , `hourly` , `daily` , or `forecast`
**Default value:** `current`

**Note:** The `daily` type is another name for the `forecast` type, and the two are interchangeable.

The `hourly` type is currently only implemented for these provider:
- **Environment Canada** (`envcanada`)
- **Openmeteo**
- **OpenWeatherMap** (`openweathermap`), and only when `/onecall` is used as the specified endpoint. Latitude and longitude [(see below)](/modules/weather.md#openweathermap-options) are **required** for `hourly`. The locationID and location options are ignored when the OpenWeatherMap One Call API is used and you will get wrong weather information.
- **Weather.gov** (`weathergov`)
- **Yr** (`yr`) | -| `units` | What units to use. Specified by config.js

**Possible values:** `config.units` = Specified by config.js, `metric` = Celsius, `imperial` = Fahrenheit
**Default value:** `config.units` | -| `tempUnits` | What units to use for temperature. If not specified, the module uses the `units` value from `config.js`.

**Possible values:** `config.units` = Specified by config.js, `metric` = Celsius, `imperial` = Fahrenheit
**Default value:** `config.units` | -| `windUnits` | What units to use for wind speed. If not specified, the module uses the `units` value from `config.js`.

**Possible values:** `config.units` = Specified by config.js, `mps` or `metric` = metres per second, `kmh` = kilometers per hour, `mph` or `imperial` = miles per hour, `beaufort` = use beaufort scale, `knots` = show wind in knots
**Default value:** `units` | -| `roundTemp` | Round temperature value to nearest integer.

**Possible values:** `true` (round to integer) or `false` (display exact value with decimal point)
**Default value:** `false` | -| `degreeLabel` | Show the degree label for your chosen units (Metric = C, Imperial = F).

**Possible values:** `true` or `false`
**Default value:** `false` | -| `updateInterval` | How often does the content needs to be fetched? (Milliseconds)

**Possible values:** `1000` - `86400000`
**Default value:** `600000` (10 minutes) | -| `animationSpeed` | Speed of the update animation. (Milliseconds)

**Possible values:** `0` - `5000`
**Default value:** `1000` (1 second) | -| `timeFormat` | Use 12 or 24 hour format.

**Possible values:** `12` or `24`
**Default value:** uses value of _config.timeFormat_ | -| `showPeriod` | Show the period (am/pm) with 12 hour format

**Possible values:** `true` or `false`
**Default value:** `true` | -| `showPeriodUpper` | Show the period (AM/PM) with 12 hour format as uppercase

**Possible values:** `true` or `false`
**Default value:** `false` | -| `showPrecipitationAmount` | Show the amount of rain/snow.

Not supported by all providers, and some providers do not support all `type`s. Supported providers are `envcanada`, `openmeteo`, `openweathermap`, `smhi`, `weatherbit` and `yr`.

**Possible values:** `true` or `false`
**Default value:** `false` | -| `showPrecipitationProbability` | Show the probability of rain/snow.

Not supported by all providers, and some providers do not support all `type`s. Supported providers are `envcanada`, `openmeteo`, `openweathermap`, `ukmetofficedatahub`, `weatherbit`, `weatherflow`, `weathergov` and `yr`.

**Possible values:** `true` or `false`
**Default value:** `false` | -| `showUVIndex` | Show the UV Index.

Not supported by all providers. Implemented provider is `openmeteo` but others could have support.

**Possible values:** `true` or `false`
**Default value:** `false` | -| `lang` | The language of the days.

**Possible values:** `en`, `nl`, `ru`, etc ...
**Default value:** uses value of _config.language_ | -| `decimalSymbol` | The decimal symbol to use.

**Possible values:** `.`, `,` or any other symbol.
**Default value:** `.` | -| `initialLoadDelay` | The initial delay before loading. If you have multiple modules that use the same API key, you might want to delay one of the requests. (Milliseconds)

**Possible values:** `1000` - `5000`
**Default value:** `0` | -| `appendLocationNameToHeader` | If set to `true`, the returned location name will be appended to the header of the module, if the header is enabled. This is mainly interesting when using calender based weather.

**Default value:** `true` | -| `calendarClass` | The class for the calender module to base the event based weather information on.

**Default value:** `'calendar'` | -| `useCorsProxy` | Some weather modules need a cors proxy to get their api running.

**Possible values:** true or false
**Default value:** `false` (except providers `pirateweather` and `envcanada`) | +| Option | Description | +| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `weatherProvider` | Which weather provider should be used.

**Possible values:** `openweathermap` , `pirateweather` , `weathergov`, `ukmetofficedatahub`, `weatherbit`, `envcanada`, `openmeteo`, `weatherflow`, `SMHI` or `yr`
**Default value:** `openweathermap` | +| `type` | Which type of weather data should be displayed.

**Possible values:** `current` , `hourly` , `daily` , or `forecast`
**Default value:** `current`

**Note:** The `daily` type is another name for the `forecast` type, and the two are interchangeable.

The `hourly` type is currently only implemented for these provider:
- **Environment Canada** (`envcanada`)
- **Openmeteo**
- **OpenWeatherMap** (`openweathermap`), and only when `/onecall` is used as the specified endpoint. Latitude and longitude [(see below)](/modules/weather#openweathermap-options) are **required** for `hourly`. The locationID and location options are ignored when the OpenWeatherMap One Call API is used and you will get wrong weather information.
- **Weather.gov** (`weathergov`)
- **Yr** (`yr`) | +| `units` | What units to use. Specified by config.js

**Possible values:** `config.units` = Specified by config.js, `metric` = Celsius, `imperial` = Fahrenheit
**Default value:** `config.units` | +| `tempUnits` | What units to use for temperature. If not specified, the module uses the `units` value from `config.js`.

**Possible values:** `config.units` = Specified by config.js, `metric` = Celsius, `imperial` = Fahrenheit
**Default value:** `config.units` | +| `windUnits` | What units to use for wind speed. If not specified, the module uses the `units` value from `config.js`.

**Possible values:** `config.units` = Specified by config.js, `mps` or `metric` = metres per second, `kmh` = kilometers per hour, `mph` or `imperial` = miles per hour, `beaufort` = use beaufort scale, `knots` = show wind in knots
**Default value:** `units` | +| `roundTemp` | Round temperature value to nearest integer.

**Possible values:** `true` (round to integer) or `false` (display exact value with decimal point)
**Default value:** `false` | +| `degreeLabel` | Show the degree label for your chosen units (Metric = C, Imperial = F).

**Possible values:** `true` or `false`
**Default value:** `false` | +| `updateInterval` | How often does the content needs to be fetched? (Milliseconds)

**Possible values:** `1000` - `86400000`
**Default value:** `600000` (10 minutes) | +| `animationSpeed` | Speed of the update animation. (Milliseconds)

**Possible values:** `0` - `5000`
**Default value:** `1000` (1 second) | +| `timeFormat` | Use 12 or 24 hour format.

**Possible values:** `12` or `24`
**Default value:** uses value of _config.timeFormat_ | +| `showPeriod` | Show the period (am/pm) with 12 hour format

**Possible values:** `true` or `false`
**Default value:** `true` | +| `showPeriodUpper` | Show the period (AM/PM) with 12 hour format as uppercase

**Possible values:** `true` or `false`
**Default value:** `false` | +| `showPrecipitationAmount` | Show the amount of rain/snow.

Not supported by all providers, and some providers do not support all `type`s. Supported providers are `envcanada`, `openmeteo`, `openweathermap`, `smhi`, `weatherbit` and `yr`.

**Possible values:** `true` or `false`
**Default value:** `false` | +| `showPrecipitationProbability` | Show the probability of rain/snow.

Not supported by all providers, and some providers do not support all `type`s. Supported providers are `envcanada`, `openmeteo`, `openweathermap`, `ukmetofficedatahub`, `weatherbit`, `weatherflow`, `weathergov` and `yr`.

**Possible values:** `true` or `false`
**Default value:** `false` | +| `showUVIndex` | Show the UV Index.

Not supported by all providers. Implemented provider is `openmeteo` but others could have support.

**Possible values:** `true` or `false`
**Default value:** `false` | +| `lang` | The language of the days.

**Possible values:** `en`, `nl`, `ru`, etc ...
**Default value:** uses value of _config.language_ | +| `decimalSymbol` | The decimal symbol to use.

**Possible values:** `.`, `,` or any other symbol.
**Default value:** `.` | +| `initialLoadDelay` | The initial delay before loading. If you have multiple modules that use the same API key, you might want to delay one of the requests. (Milliseconds)

**Possible values:** `1000` - `5000`
**Default value:** `0` | +| `appendLocationNameToHeader` | If set to `true`, the returned location name will be appended to the header of the module, if the header is enabled. This is mainly interesting when using calender based weather.

**Default value:** `true` | +| `calendarClass` | The class for the calender module to base the event based weather information on.

**Default value:** `'calendar'` | +| `useCorsProxy` | Some weather modules need a cors proxy to get their api running.

**Possible values:** true or false
**Default value:** `false` (except providers `pirateweather` and `envcanada`) | #### Current weather options @@ -224,4 +224,4 @@ update. ## API Provider Development If you want to add another API provider checkout the -[Guide](/module-development/weather-provider.md). +[Guide](/module-development/weather-provider). diff --git a/package-lock.json b/package-lock.json index 73e5e66f..03af29bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,12 +5,13 @@ "requires": true, "packages": { "": { + "name": "MagicMirror-Documentation", "version": "2.31.0", "dependencies": { "@miletorix/vitepress-back-to-top-button": "^1.0.3" }, "devDependencies": { - "cspell": "^9.6.0", + "cspell": "^9.6.2", "prettier": "^3.8.1", "prettier-plugin-vitepress": "^0.0.10", "vitepress": "^1.6.4", @@ -304,9 +305,9 @@ } }, "node_modules/@cspell/cspell-bundled-dicts": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-9.6.0.tgz", - "integrity": "sha512-gLNe9bB+5gMsTEhR9YPE0Wt122HR2EV+Q1j9W+MbwbeBJmpTWrgAP1ZdpvHOg+6LF6x/bD/EC9HfWdd/om8wXA==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-9.6.2.tgz", + "integrity": "sha512-s5u/3nhQUftKibPIbRLLAf4M5JG1NykqkPCxS0STMmri0hzVMZbAOCyHjdLoOCqPUn0xZzLA8fgeYg3b7QuHpg==", "dev": true, "license": "MIT", "dependencies": { @@ -326,15 +327,15 @@ "@cspell/dict-dotnet": "^5.0.11", "@cspell/dict-elixir": "^4.0.8", "@cspell/dict-en_us": "^4.4.27", - "@cspell/dict-en-common-misspellings": "^2.1.11", + "@cspell/dict-en-common-misspellings": "^2.1.12", "@cspell/dict-en-gb-mit": "^3.1.16", "@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.7", + "@cspell/dict-fullstack": "^3.2.8", "@cspell/dict-gaming-terms": "^1.1.2", - "@cspell/dict-git": "^3.0.7", + "@cspell/dict-git": "^3.1.0", "@cspell/dict-golang": "^6.0.26", "@cspell/dict-google": "^1.0.9", "@cspell/dict-haskell": "^4.0.6", @@ -344,14 +345,14 @@ "@cspell/dict-julia": "^1.1.1", "@cspell/dict-k8s": "^1.0.12", "@cspell/dict-kotlin": "^1.1.1", - "@cspell/dict-latex": "^4.0.4", + "@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.8", - "@cspell/dict-npm": "^5.2.29", + "@cspell/dict-node": "^5.0.9", + "@cspell/dict-npm": "^5.2.31", "@cspell/dict-php": "^4.1.1", "@cspell/dict-powershell": "^5.0.15", "@cspell/dict-public-licenses": "^2.0.15", @@ -375,22 +376,32 @@ } }, "node_modules/@cspell/cspell-json-reporter": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-9.6.0.tgz", - "integrity": "sha512-5sY1lgAXS5xEOsjT5rREMADj7pHIt56XOL7xR80nNl0TwlpZbeBHhoB2aH5sirVTeodJFN5iraXNbVOYPPupPw==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-9.6.2.tgz", + "integrity": "sha512-8TCD7KOG9ppo5BoJOe2diACfB6I6UpJmYmjLOxMy0o8y3ruWFoDKaDEsf5tIi4T7cdVb8MjGbHjw9ksCwRRMjA==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-types": "9.6.0" + "@cspell/cspell-types": "9.6.2" }, "engines": { "node": ">=20" } }, + "node_modules/@cspell/cspell-performance-monitor": { + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-performance-monitor/-/cspell-performance-monitor-9.6.2.tgz", + "integrity": "sha512-MZuhYy59zFCVsX3PzW02/3TqPsPw87MELOJuZfpWDcGgxrweTrVjMdmJ0/w7COJ6zEAqtgGjNMAEmK4xJnrQjQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.18" + } + }, "node_modules/@cspell/cspell-pipe": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-9.6.0.tgz", - "integrity": "sha512-YNuY8NNXfE+8Qzknm2ps6QbrZLZu6rSZTZr3dYW3K6TK7+IFVlJ6e2Z9iKJTqp6aZ4AGU/r9QYGmNX4Oq4gZ0A==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-9.6.2.tgz", + "integrity": "sha512-Wt6Cf4b/E0QJ/TkbOMjXSGrccASgbc8xZq3c+8+kCXM5JT92NP2Lx67m3UA1g+BDv7E4DNPuwm1fM7o/2zum5w==", "dev": true, "license": "MIT", "engines": { @@ -398,9 +409,9 @@ } }, "node_modules/@cspell/cspell-resolver": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-9.6.0.tgz", - "integrity": "sha512-Gb2UWNmRpTOQGpYL4Q/LMw+b50KcRZcf/wJg6w0Yl3IT+F/uDNhNh1f5rHuTyGsbMsMxHJhsb2AoP+73GlbIfw==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-9.6.2.tgz", + "integrity": "sha512-u7P4ErApEcSP+Si2HaeotFQXjuCopAa+wPF1fDzuJzpotPxsDwNDanGGn2qUMjOyVI4UiI84MPI6ZuGLj5EDyQ==", "dev": true, "license": "MIT", "dependencies": { @@ -411,9 +422,9 @@ } }, "node_modules/@cspell/cspell-service-bus": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-9.6.0.tgz", - "integrity": "sha512-DCuKKkySTEB8MPLTdoPMdmakYcx7XCsHz1YEMbzOcLqJCxXsRlRZg4qE9kRBee/2QY7eYA2kaYNgn/TDMooa4g==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-9.6.2.tgz", + "integrity": "sha512-T4LBWe3NYpKPD/fIkYAL56z5pr8Cgh//UZDl4afDTJNuTkdE6ZL93MBAUXggONHqY8B9dRXlQKrD4PD+kHabtw==", "dev": true, "license": "MIT", "engines": { @@ -421,15 +432,28 @@ } }, "node_modules/@cspell/cspell-types": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-9.6.0.tgz", - "integrity": "sha512-JTqrD47tV+rWc1y2W8T0NTfWLQMlSWX4OF64/Jf3WbsOD+4UXVIfjRlzPry7+1Zekm6pa38+23jkDBytYpu8yw==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-9.6.2.tgz", + "integrity": "sha512-RsUFrSB0oQHEBnR8yarKIReUPwSu2ROpbjhdVKi4T/nQhMaS+TnIQPBwkMtb2r8A1KS2Hijw4D/4bV/XHoFQWw==", "dev": true, "license": "MIT", "engines": { "node": ">=20" } }, + "node_modules/@cspell/cspell-worker": { + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-worker/-/cspell-worker-9.6.2.tgz", + "integrity": "sha512-1xq8jmt6YZ7MVPESydjYJ3p67vi+YWgi5qow1xyZzeQWFXVCCFi9pQSxC0bzGQwWrYGNWSAIbYZB3Sq5ntYz4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cspell-lib": "9.6.2" + }, + "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", @@ -539,23 +563,23 @@ "license": "MIT" }, "node_modules/@cspell/dict-en_us": { - "version": "4.4.27", - "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.4.27.tgz", - "integrity": "sha512-0y4vH2i5cFmi8sxkc4OlD2IlnqDznOtKczm4h6jA288g5VVrm3bhkYK6vcB8b0CoRKtYWKet4VEmHBP1yI+Qfw==", + "version": "4.4.28", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.4.28.tgz", + "integrity": "sha512-/rzhbZaZDsDWmXbc9Fmmr4/ngmaNcG2b+TGT+ZjGqpOXVQYI75yZ9+XduyI43xJ5O38QcX3QIbJY5GWaJqxPEg==", "dev": true, "license": "MIT" }, "node_modules/@cspell/dict-en-common-misspellings": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.1.11.tgz", - "integrity": "sha512-2jcY494If1udvzd7MT2z/QH/RACUo/I02vIY4ttNdZhgYvUmRKhg8OBdrbzYo0lJOcc7XUb8rhIFQRHzxOSVeA==", + "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.16", - "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb-mit/-/dict-en-gb-mit-3.1.16.tgz", - "integrity": "sha512-4PPdapCJslytxAVJu35Mv97qDyGmAQxtDE790T2bWNhcqN6gvRVAc/eTRaXkUIf21q1xCxxNNqpH4VfMup69rQ==", + "version": "3.1.17", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb-mit/-/dict-en-gb-mit-3.1.17.tgz", + "integrity": "sha512-MLx+3XN9rj+EGwLIFmh0gpEDNalCyQqjcszp+WkedCHcvTCzQgWXQMZK6cPuhO/OKYyW9GOwsx4t0wjU5tRVNg==", "dev": true, "license": "MIT" }, @@ -672,9 +696,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-latex": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-4.0.4.tgz", - "integrity": "sha512-YdTQhnTINEEm/LZgTzr9Voz4mzdOXH7YX+bSFs3hnkUHCUUtX/mhKgf1CFvZ0YNM2afjhQcmLaR9bDQVyYBvpA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-5.0.0.tgz", + "integrity": "sha512-HUrIqUVohM6P0+5b7BsdAdb0STIv0aaFBvguI7pLcreljlcX3FSPUxea7ticzNlCNeVrEaiEn/ws9m6rYUeuNw==", "dev": true, "license": "MIT" }, @@ -727,9 +751,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-npm": { - "version": "5.2.30", - "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.30.tgz", - "integrity": "sha512-GHgl3wAkoi87y3AXE1Bogwt0wHCB3uydOx6p8ujjXg9Ba9twlOK2SzD6LrClHoWrnADuGZZIxLnesDA6GtlH4w==", + "version": "5.2.32", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.32.tgz", + "integrity": "sha512-H0XD0eg4d96vevle8VUKVoPhsgsw003ByJ47XzipyiMKoQTZ2IAUW+VTkQq8wU1floarNjmThQJOoKL9J4UYuw==", "dev": true, "license": "MIT" }, @@ -779,9 +803,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-rust": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.1.1.tgz", - "integrity": "sha512-fXiXnZH0wOaEVTKFRNaz6TsUGhuB8dAT0ubYkDNzRQCaV5JGSOebGb1v2x5ZrOSVp+moxWM/vdBfiNU6KOEaFQ==", + "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" }, @@ -856,13 +880,13 @@ "license": "MIT" }, "node_modules/@cspell/dynamic-import": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-9.6.0.tgz", - "integrity": "sha512-Lkn82wyGj2ltxeYfH2bEjshdes1fx3ouYUZxeW5i6SBBvEVJoSmr43AygI8A317UMIQxVj59qVBorrtGYcRI1w==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-9.6.2.tgz", + "integrity": "sha512-DY/X6lsdK4aeJ4erPVZoU1ccEXqtnYqWCMUXZOsMeIsZlXwZz/ocNNd09A4ga9IzGj1lYsB13UG4GVe8lSMAXQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "9.6.0", + "@cspell/url": "9.6.2", "import-meta-resolve": "^4.2.0" }, "engines": { @@ -870,9 +894,9 @@ } }, "node_modules/@cspell/filetypes": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-9.6.0.tgz", - "integrity": "sha512-CaWyk5j20H6sr+HCArtUY95jUQb7A/6W0GC4B4umnqoWvgqwR72duowLFa+w1K2C7tZg3GoV4Wf2cUn9jjt5FA==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-9.6.2.tgz", + "integrity": "sha512-XYAuGZoRCUf4Y12YP+K0BpU3QUMj4Z4SkKpi08Dwx/bQlq/NqycHKkUWYhlViHLav1+MJbWxcvDIHxGNv0UIaA==", "dev": true, "license": "MIT", "engines": { @@ -880,9 +904,9 @@ } }, "node_modules/@cspell/strong-weak-map": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-9.6.0.tgz", - "integrity": "sha512-9g8LCLv/2RrprGeGnFAaBETWq7ESnBcoMbvgNu+vZE58iF+pbFvP0qGgKvVeKEEpc2LZhNuHLsUH37MUS6DOQg==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-9.6.2.tgz", + "integrity": "sha512-7zpnLkpT91wsH4aU3oAprnzrURvBWKq97j5i/SWXGuNKf36XNEO4HaeaPp6L2oVq4OzdUOdm0tUK1gB0HhMWSg==", "dev": true, "license": "MIT", "engines": { @@ -890,9 +914,9 @@ } }, "node_modules/@cspell/url": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/@cspell/url/-/url-9.6.0.tgz", - "integrity": "sha512-257WOxh9vOYHAVgBNXRCdLEd+ldzlVbzcc9u+6DYoCDCNGe0OvOWOGsAfnUbMc9xEw48XgBlDYgOlPbjWGLOTg==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@cspell/url/-/url-9.6.2.tgz", + "integrity": "sha512-625EiP1jUOQZ6UQuTUV1XB8Bxa18z3EtC1qA6PJyM3TqUD8PD8Tz183j9av6d/Dq52+7w0F4ovuqjUcTXTfD6g==", "dev": true, "license": "MIT", "engines": { @@ -2260,27 +2284,29 @@ "license": "MIT" }, "node_modules/cspell": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-9.6.0.tgz", - "integrity": "sha512-Mpf0oT2KAHTIb3YPAXWhW64/4CZKW5Lka4j1YxCLK3jM3nenmIsY/ocrJvqCMF4+1eejRF0N55sT3XmrijI5YQ==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-9.6.2.tgz", + "integrity": "sha512-EmkSGhStMbSh2BcyMqbVDOF48fSPWL3adjqajUVCwfnlZD7mzUWPx9pR8pt2dOQaFEE47rlOQGXdd3wTqL5dnQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-json-reporter": "9.6.0", - "@cspell/cspell-pipe": "9.6.0", - "@cspell/cspell-types": "9.6.0", - "@cspell/dynamic-import": "9.6.0", - "@cspell/url": "9.6.0", + "@cspell/cspell-json-reporter": "9.6.2", + "@cspell/cspell-performance-monitor": "9.6.2", + "@cspell/cspell-pipe": "9.6.2", + "@cspell/cspell-types": "9.6.2", + "@cspell/cspell-worker": "9.6.2", + "@cspell/dynamic-import": "9.6.2", + "@cspell/url": "9.6.2", "ansi-regex": "^6.2.2", "chalk": "^5.6.2", "chalk-template": "^1.1.2", "commander": "^14.0.2", - "cspell-config-lib": "9.6.0", - "cspell-dictionary": "9.6.0", - "cspell-gitignore": "9.6.0", - "cspell-glob": "9.6.0", - "cspell-io": "9.6.0", - "cspell-lib": "9.6.0", + "cspell-config-lib": "9.6.2", + "cspell-dictionary": "9.6.2", + "cspell-gitignore": "9.6.2", + "cspell-glob": "9.6.2", + "cspell-io": "9.6.2", + "cspell-lib": "9.6.2", "fast-json-stable-stringify": "^2.1.0", "flatted": "^3.3.3", "semver": "^7.7.3", @@ -2291,20 +2317,20 @@ "cspell-esm": "bin.mjs" }, "engines": { - "node": ">=20" + "node": ">=20.18" }, "funding": { "url": "https://github.com/streetsidesoftware/cspell?sponsor=1" } }, "node_modules/cspell-config-lib": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-9.6.0.tgz", - "integrity": "sha512-5ztvheawkmFXNHGN82iOOntU3T5mmlQBP/plgoKdBZ6+lSYrOJLkOyqxYyi7MrUBDtWrXPzFllkBrPNRDlbX/A==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-9.6.2.tgz", + "integrity": "sha512-VQB+xmqGqCJrt5k/o0rRG9v0X0CA96CEd9FsmBAm5+9DvNiRzXOqewZSdsOM2Y0SX7YKcvG82PfRsujhYltcfQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-types": "9.6.0", + "@cspell/cspell-types": "9.6.2", "comment-json": "^4.5.1", "smol-toml": "^1.6.0", "yaml": "^2.8.2" @@ -2314,15 +2340,16 @@ } }, "node_modules/cspell-dictionary": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-9.6.0.tgz", - "integrity": "sha512-wW0m1kLrbK6bRY/GrLUGKUUJ1Z4ZUgIb8LD4zNaECcvGviv9V7VcR3mEwUip3ZjoHa3ClzEoWgQ9gXrtac80Wg==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-9.6.2.tgz", + "integrity": "sha512-J55/9+AtkRzfSVn+KaqoWxsS4O66szKP6LrDW0O2qWnuvVvO1BoAMsINynD845IIzrd1n1yTOHS/DbjmHd4//A==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-pipe": "9.6.0", - "@cspell/cspell-types": "9.6.0", - "cspell-trie-lib": "9.6.0", + "@cspell/cspell-performance-monitor": "9.6.2", + "@cspell/cspell-pipe": "9.6.2", + "@cspell/cspell-types": "9.6.2", + "cspell-trie-lib": "9.6.2", "fast-equals": "^6.0.0" }, "engines": { @@ -2330,15 +2357,15 @@ } }, "node_modules/cspell-gitignore": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-9.6.0.tgz", - "integrity": "sha512-8GfmJuRBBvibyPHnNE2wYJAiQ/ceDYLD1X1sUQaCyj6hPMR7ChJiVhFPtS11hMqkjZ46OBMYTMGWqO792L9fEQ==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-9.6.2.tgz", + "integrity": "sha512-vtwc9AAA9m3aZPtbvPPRTLXIqwryljxEgQTkpr92mFZaGftvnLfNVb2z++NvWbXq9azGKN/7oiLjecb9dhYnfA==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "9.6.0", - "cspell-glob": "9.6.0", - "cspell-io": "9.6.0" + "@cspell/url": "9.6.2", + "cspell-glob": "9.6.2", + "cspell-io": "9.6.2" }, "bin": { "cspell-gitignore": "bin.mjs" @@ -2348,13 +2375,13 @@ } }, "node_modules/cspell-glob": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-9.6.0.tgz", - "integrity": "sha512-KmEbKN0qdEamsEYbkFu7zjLYfw3hMmn9kmeh94IHr2kq6vWq5vNP5l1BuqmrUeFZlbNd07vj08IKAZHYsoGheQ==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-9.6.2.tgz", + "integrity": "sha512-5j+g4JzcWjW16ZAtcPHpG138CEfpp1YmuYJoYtze3lIZLgttt+k2gXJsqyWaP/6MdVknI0Q1afGSKYRtH8mLRA==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "9.6.0", + "@cspell/url": "9.6.2", "picomatch": "^4.0.3" }, "engines": { @@ -2362,14 +2389,14 @@ } }, "node_modules/cspell-grammar": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-9.6.0.tgz", - "integrity": "sha512-jZVIM5/3eB9rWURDq+VXdYip+DmPuFzO+bqaRtzqT8w6YoOIGYbiIxdwvyyA9xdH7SmW8uqHJP5x4pzZju1lNQ==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-9.6.2.tgz", + "integrity": "sha512-JTH92+1VGFPb3UsDT+Ezur/ouR8t+XOZkETUkk8eoSBzli9hWgPHW7kl2T8Chcn+Dq/6FLlvezYbBvhSauqJRw==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-pipe": "9.6.0", - "@cspell/cspell-types": "9.6.0" + "@cspell/cspell-pipe": "9.6.2", + "@cspell/cspell-types": "9.6.2" }, "bin": { "cspell-grammar": "bin.mjs" @@ -2379,41 +2406,42 @@ } }, "node_modules/cspell-io": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-9.6.0.tgz", - "integrity": "sha512-wZuZzKOYIb698kVEINYjGaNFQu+AFZ945TORM3hapmPjez+vsHwl8m/pPpCHeGMpQtHMEDkX84AbQ7R55MRIwg==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-9.6.2.tgz", + "integrity": "sha512-VRBkAfUdbaq5yDYoVMvodQF3bIdBL6Gy4tiMvf+UI9C16am47AuThg1gGXRzwi5hCEXnCfevAmuVdaQP3onkow==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-service-bus": "9.6.0", - "@cspell/url": "9.6.0" + "@cspell/cspell-service-bus": "9.6.2", + "@cspell/url": "9.6.2" }, "engines": { "node": ">=20" } }, "node_modules/cspell-lib": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-9.6.0.tgz", - "integrity": "sha512-m9rIv8hkQ3Dio4s80HQbM9cdxENcd6pS8j2AHWL50OSjJf3Xhw6/wMrIAGbwLHP15K6QZVU2eJ/abCzIJwjA4w==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-9.6.2.tgz", + "integrity": "sha512-LvValIwqDAwVp2Www+7PPJ7UbVurYtKGPddpGH7GN+0u+UWzR4oUXR80gY8lHgSrIQ3EkdLhFAItPcyMjGjzIg==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-bundled-dicts": "9.6.0", - "@cspell/cspell-pipe": "9.6.0", - "@cspell/cspell-resolver": "9.6.0", - "@cspell/cspell-types": "9.6.0", - "@cspell/dynamic-import": "9.6.0", - "@cspell/filetypes": "9.6.0", - "@cspell/strong-weak-map": "9.6.0", - "@cspell/url": "9.6.0", + "@cspell/cspell-bundled-dicts": "9.6.2", + "@cspell/cspell-performance-monitor": "9.6.2", + "@cspell/cspell-pipe": "9.6.2", + "@cspell/cspell-resolver": "9.6.2", + "@cspell/cspell-types": "9.6.2", + "@cspell/dynamic-import": "9.6.2", + "@cspell/filetypes": "9.6.2", + "@cspell/strong-weak-map": "9.6.2", + "@cspell/url": "9.6.2", "clear-module": "^4.1.2", - "cspell-config-lib": "9.6.0", - "cspell-dictionary": "9.6.0", - "cspell-glob": "9.6.0", - "cspell-grammar": "9.6.0", - "cspell-io": "9.6.0", - "cspell-trie-lib": "9.6.0", + "cspell-config-lib": "9.6.2", + "cspell-dictionary": "9.6.2", + "cspell-glob": "9.6.2", + "cspell-grammar": "9.6.2", + "cspell-io": "9.6.2", + "cspell-trie-lib": "9.6.2", "env-paths": "^3.0.0", "gensequence": "^8.0.8", "import-fresh": "^3.3.1", @@ -2427,16 +2455,16 @@ } }, "node_modules/cspell-trie-lib": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-9.6.0.tgz", - "integrity": "sha512-L7GSff5F9cF60QT78WsebVlb3sppi6jbvTHwsw7WF1jUN/ioAo7OzBYtYB7xkYeejcdVEpqfvf/ZOXPDp8x2Wg==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-9.6.2.tgz", + "integrity": "sha512-JpCHpMdxo680yEkb6U1y3wrhZGHltgCnaQ8Zj6yKE8KE0BTLVl9UQGisP5De1wlFn4GtpPCf7WtQ8+M5aqq3YQ==", "dev": true, "license": "MIT", "engines": { "node": ">=20" }, "peerDependencies": { - "@cspell/cspell-types": "9.6.0" + "@cspell/cspell-types": "9.6.2" } }, "node_modules/csstype": { diff --git a/package.json b/package.json index c0033543..c47c39e6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "version": "2.31.0", "devDependencies": { - "cspell": "^9.6.0", + "cspell": "^9.6.2", "prettier": "^3.8.1", "prettier-plugin-vitepress": "^0.0.10", "vitepress": "^1.6.4",