refactores frontend styling, updates some dependencies

This commit is contained in:
Lars Berning 2022-01-28 19:52:21 +01:00
parent 2df753f165
commit 426f982683
No known key found for this signature in database
GPG Key ID: 028E73C9E1D8A0B3
9 changed files with 400 additions and 359 deletions

View File

@ -32,10 +32,4 @@ export class AppElement extends LitElement {
})
)
}
// currently we do not use shadow root since there is still a global style file
// but maybe one day we dissolve it into the components and use shadow dom instead
createRenderRoot () {
return this
}
}

View File

@ -0,0 +1,40 @@
'use strict'
/*
Open Rowing Monitor, https://github.com/laberning/openrowingmonitor
Component that renders a battery indicator
*/
import { AppElement, svg, css } from './AppElement.js'
import { customElement, property } from 'lit/decorators.js'
@customElement('battery-icon')
export class DashboardMetric extends AppElement {
static styles = css`
.icon {
height: 1.2em;
}
.low-battery {
color: var(--theme-warning-color)
}
`
@property({ type: String })
batteryLevel = ''
render () {
// 416 is the max width value of the battery bar in the SVG graphic
const batteryWidth = this.batteryLevel * 416 / 100
// if battery level is low, highlight the battery icon
const iconClass = this.batteryLevel > 25 ? 'icon' : 'icon low-battery'
return svg`
<svg aria-hidden="true" focusable="false" class="${iconClass}" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
<path fill="currentColor" d="M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z"></path>
<rect fill="currentColor" x="96" y="192" width=${batteryWidth} height="128"></rect>
</svg>
`
}
}

View File

@ -11,39 +11,71 @@ import { icon_undo, icon_expand, icon_compress, icon_poweroff, icon_bluetooth }
@customElement('dashboard-actions')
export class DashboardActions extends AppElement {
static get styles () {
return css`
`
}
static styles = css`
button {
outline:none;
background-color: var(--theme-button-color);
border: 0;
color: var(--theme-font-color);
padding: 0.5em 0.9em 0.3em 0.9em;
margin: 0.2em 0;
font-size: 60%;
text-align: center;
text-decoration: none;
display: inline-block;
width: 3.5em;
}
#windowed-icon {
display: none;
}
.icon {
height: 1.8em;
}
.peripheral-mode {
font-size: 80%;
}
@media (display-mode: fullscreen) {
#fullscreen-icon {
display: none;
}
#windowed-icon {
display: inline;
}
}
`
render () {
return html`
<button @click=${this.reset}>${icon_undo}</button>
${this.renderOptionalButtons()}
<button @click=${this.switchPeripheralMode}>${icon_bluetooth}</button>
<div class="metric-unit">${this.peripheralMode()}</div>
`
<div class="peripheral-mode">${this.peripheralMode()}</div>
`
}
renderOptionalButtons () {
const buttons = []
// changing to fullscreen mode only makes sence when the app is openend in a regular
// webbrowser (kiosk and standalone mode are always in fullscreen view) and the browser
// supports this feature
// webbrowser (kiosk and standalone mode are always in fullscreen view) and if the
// browser supports this feature
if (this.appState.appMode === 'BROWSER' && document.documentElement.requestFullscreen) {
buttons.push(html`
<button @click=${this.toggleFullscreen}>
<button @click=${this.toggleFullscreen}>
<div id="fullscreen-icon">${icon_expand}</div>
<div id="windowed-icon">${icon_compress}</div>
</button>
`)
</button>
`)
}
// a shutdown button only makes sence when the app is openend as app on a mobile
// device. at some point we might also think of using this to power down the raspi
// when we are running in kiosk mode
if (this.appState.appMode === 'STANDALONE') {
buttons.push(html`
<button @click=${this.close} id="close-button">${icon_poweroff}</button>
<button @click=${this.close}>${icon_poweroff}</button>
`)
}
return buttons

View File

@ -5,15 +5,34 @@
Component that renders a metric of the dashboard
*/
import { AppElement, html, svg, css } from './AppElement.js'
import { AppElement, html, css } from './AppElement.js'
import { customElement, property } from 'lit/decorators.js'
@customElement('dashboard-metric')
export class DashboardMetric extends AppElement {
static get styles () {
return css`
`
}
static styles = css`
.label, .content {
padding: 0.1em 0;
}
.icon {
height: 1.8em;
}
.metric-value {
font-size: 150%;
}
.metric-unit {
font-size: 80%;
}
::slotted(*) {
right: 0.2em;
bottom: 0;
position: absolute;
}
`
@property({ type: Object })
icon
@ -24,9 +43,6 @@ export class DashboardMetric extends AppElement {
@property({ type: String })
value = ''
@property({ type: String })
batteryLevel = ''
render () {
return html`
<div class="label">${this.icon}</div>
@ -34,22 +50,7 @@ export class DashboardMetric extends AppElement {
<span class="metric-value">${this.value !== undefined ? this.value : '--'}</span>
<span class="metric-unit">${this.unit}</span>
</div>
${this.batteryLevel &&
html`<div id="heartrate-battery-container">${this.batteryIcon}</div>`
}
`
}
get batteryIcon () {
// 416 is the max width value of the battery bar in the SVG graphic
const batteryWidth = this.batteryLevel * 416 / 100
return svg`
<svg aria-hidden="true" focusable="false" class="icon" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
<path fill="currentColor" d="M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z"></path>
<rect fill="currentColor" id="battery-level" x="96" y="192" width=${batteryWidth} height="128"></rect>
</svg>
<slot></slot>
`
}
}

View File

@ -10,14 +10,39 @@ import { APP_STATE } from '../store/appState.js'
import { customElement, property } from 'lit/decorators.js'
import './DashboardMetric.js'
import './DashboardActions.js'
import './BatteryIcon.js'
import { icon_route, icon_stopwatch, icon_bolt, icon_paddle, icon_heartbeat, icon_fire, icon_clock } from '../lib/icons.js'
@customElement('performance-dashboard')
export class PerformanceDashboard extends AppElement {
static get styles () {
return css`
`
}
static styles = css`
:host {
display: grid;
height: calc(100vh - 2vw);
padding: 1vw;
grid-gap: 1vw;
grid-template-columns: repeat(4, minmax(0, 1fr));
grid-template-rows: repeat(2, minmax(0, 1fr));
}
@media (orientation: portrait) {
:host {
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-template-rows: repeat(4, minmax(0, 1fr));
}
}
dashboard-metric, dashboard-actions {
background: var(--theme-widget-color);
text-align: center;
position: relative;
padding: 0.5em 0.2em 0 0.2em;
}
dashboard-actions {
padding: 0.5em 0 0 0;
}
`
@property({ type: Object })
metrics
@ -33,9 +58,15 @@ export class PerformanceDashboard extends AppElement {
<dashboard-metric .icon=${icon_bolt} unit="watt" .value=${metrics?.power?.value}></dashboard-metric>
<dashboard-metric .icon=${icon_paddle} unit="/min" .value=${metrics?.strokesPerMinute?.value}></dashboard-metric>
${metrics?.heartrate?.value
? html`<dashboard-metric .icon=${icon_heartbeat} unit="bpm"
.value=${metrics?.heartrate?.value}
.batteryLevel=${metrics?.heartrateBatteryLevel?.value}></dashboard-metric>`
? html`
<dashboard-metric .icon=${icon_heartbeat} unit="bpm" .value=${metrics?.heartrate?.value}>
${metrics?.heartrateBatteryLevel?.value
? html`
<battery-icon .batteryLevel=${metrics?.heartrateBatteryLevel?.value}></battery-icon>
`
: ''
}
</dashboard-metric>`
: html`<dashboard-metric .icon=${icon_paddle} unit="total" .value=${metrics?.strokesTotal?.value}></dashboard-metric>`}
<dashboard-metric .icon=${icon_fire} unit="kcal" .value=${metrics?.caloriesTotal?.value}></dashboard-metric>
<dashboard-metric .icon=${icon_clock} .value=${metrics?.durationTotalFormatted?.value}></dashboard-metric>
@ -43,6 +74,8 @@ export class PerformanceDashboard extends AppElement {
`
}
// todo: so far this is just a port of the formatter from the initial proof of concept client
// we could split this up to make it more readable and testable
calculateFormattedMetrics (metrics) {
const fieldFormatter = {
distanceTotal: (value) => value >= 10000

View File

@ -1,5 +1,6 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@ -7,16 +8,45 @@
<meta name="author" content="Lars Berning">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<link rel="manifest" href="manifest.json" crossorigin="use-credentials">
<link rel="stylesheet" href="style.css">
<link rel="icon" sizes="192x192" href="icon.png">
<title>Open Rowing Monitor</title>
<style>
/* defines the theme of Open Rowing Monitor, edit this if you want other colors.. */
html {
--theme-background-color: #00091c;
--theme-widget-color: #002b57;
--theme-button-color: #365080;
--theme-font-family: Verdana, "Lucida Sans Unicode", sans-serif;
--theme-font-color: #f5f5f5;
--theme-warning-color: #ff0000;
}
body {
background-color: var(--theme-background-color);
color: var(--theme-font-color);
margin: 0;
font-size: calc(16px + (60 - 16) * ((100vw - 300px) / (1920 - 300)));
font-family: var(--theme-font-family);
user-select: none;
overscroll-behavior: contain;
}
@media (orientation: portrait) {
body {
font-size: calc(16px + (60 - 16) * ((100vh - 300px) / (1920 - 300)));
}
}
</style>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<web-app></web-app>
<script type="module" src="index.js"></script>
</body>
</html>

View File

@ -1,95 +0,0 @@
/*
Open Rowing Monitor, https://github.com/laberning/openrowingmonitor
*/
body {
background-color: #00091c;
color: white;
margin: 0;
font-size: calc(16px + (60 - 16) * ((100vw - 300px) / (1920 - 300)));
font-family: Verdana, "Lucida Sans Unicode", sans-serif;
user-select: none;
overscroll-behavior: contain;
}
performance-dashboard {
display: grid;
height: calc(100vh - 2vw);
padding: 1vw;
grid-gap: 1vw;
grid-template-columns: repeat(4, minmax(0, 1fr));
grid-template-rows: repeat(2, minmax(0, 1fr));
}
dashboard-metric, dashboard-actions {
background: #002b57;
text-align: center;
position: relative;
padding: 0.5em 0.2em 0 0.2em;
}
dashboard-actions {
padding: 0.5em 0 0 0;
}
@media (orientation: portrait) {
performance-dashboard {
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-template-rows: repeat(4, minmax(0, 1fr));
}
body {
font-size: calc(16px + (60 - 16) * ((100vh - 300px) / (1920 - 300)));
}
}
#windowed-icon {
display: none;
}
@media (display-mode: fullscreen) {
#fullscreen-icon {
display: none;
}
#windowed-icon {
display: inline;
}
}
div.label, div.content {
padding: 0.1em 0;
}
.icon {
height: 1.8em;
}
#heartrate-battery-container .icon {
height: 1.2em;
}
#heartrate-battery-container {
right: 0.2em;
bottom: 0;
position: absolute;
}
.metric-value {
font-size: 150%;
}
.metric-unit {
font-size: 80%;
}
button {
outline:none;
background-color: #365080;
border: 0;
color: white;
padding: 0.5em 0.9em 0.3em 0.9em;
margin: 0.2em 0;
font-size: 60%;
text-align: center;
text-decoration: none;
display: inline-block;
width: 3.5em;
}

422
package-lock.json generated
View File

@ -13,18 +13,18 @@
"@abandonware/noble": "1.9.2-15",
"ant-plus": "0.1.24",
"finalhandler": "1.1.2",
"lit": "2.1.1",
"lit": "2.1.2",
"loglevel": "1.8.0",
"nosleep.js": "0.12.0",
"onoff": "6.0.3",
"serve-static": "1.14.2",
"ws": "8.4.0",
"ws": "8.4.2",
"xml2js": "0.4.23"
},
"devDependencies": {
"@babel/eslint-parser": "7.16.5",
"@babel/plugin-proposal-decorators": "7.16.7",
"@babel/preset-env": "7.16.7",
"@babel/preset-env": "7.16.11",
"@rollup/plugin-babel": "5.3.0",
"@rollup/plugin-commonjs": "21.0.1",
"@rollup/plugin-node-resolve": "13.1.3",
@ -41,7 +41,7 @@
"markdownlint-cli": "0.30.0",
"nodemon": "2.0.15",
"npm-run-all": "4.1.5",
"rollup": "2.63.0",
"rollup": "2.66.1",
"rollup-plugin-summary": "1.3.0",
"rollup-plugin-terser": "7.0.2",
"simple-git-hooks": "2.7.0",
@ -168,20 +168,20 @@
}
},
"node_modules/@babel/core": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.7.tgz",
"integrity": "sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA==",
"version": "7.16.12",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz",
"integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.16.7",
"@babel/generator": "^7.16.7",
"@babel/generator": "^7.16.8",
"@babel/helper-compilation-targets": "^7.16.7",
"@babel/helper-module-transforms": "^7.16.7",
"@babel/helpers": "^7.16.7",
"@babel/parser": "^7.16.7",
"@babel/parser": "^7.16.12",
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.16.7",
"@babel/types": "^7.16.7",
"@babel/traverse": "^7.16.10",
"@babel/types": "^7.16.8",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@ -273,9 +273,9 @@
}
},
"node_modules/@babel/helper-create-class-features-plugin": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.7.tgz",
"integrity": "sha512-kIFozAvVfK05DM4EVQYKK+zteWvY85BFdGBRQBytRyY3y+6PX0DkDOn/CZ3lEuczCfrCxEzwt0YtP/87YPTWSw==",
"version": "7.16.10",
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz",
"integrity": "sha512-wDeej0pu3WN/ffTxMNCPW5UCiOav8IcLRxSIyp/9+IF2xJUM9h/OYjg0IJLHaL6F8oU8kqMz9nc1vryXhMsgXg==",
"dev": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.7",
@ -568,9 +568,9 @@
}
},
"node_modules/@babel/highlight": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz",
"integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==",
"version": "7.16.10",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz",
"integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==",
"dev": true,
"dependencies": {
"@babel/helper-validator-identifier": "^7.16.7",
@ -582,9 +582,9 @@
}
},
"node_modules/@babel/parser": {
"version": "7.16.8",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz",
"integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==",
"version": "7.16.12",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz",
"integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==",
"dev": true,
"bin": {
"parser": "bin/babel-parser.js"
@ -841,12 +841,12 @@
}
},
"node_modules/@babel/plugin-proposal-private-methods": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.7.tgz",
"integrity": "sha512-7twV3pzhrRxSwHeIvFE6coPgvo+exNDOiGUMg39o2LiLo1Y+4aKpfkcLGcg1UHonzorCt7SNXnoMyCnnIOA8Sw==",
"version": "7.16.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz",
"integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==",
"dev": true,
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.16.7",
"@babel/helper-create-class-features-plugin": "^7.16.10",
"@babel/helper-plugin-utils": "^7.16.7"
},
"engines": {
@ -1589,18 +1589,18 @@
}
},
"node_modules/@babel/preset-env": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.7.tgz",
"integrity": "sha512-urX3Cee4aOZbRWOSa3mKPk0aqDikfILuo+C7qq7HY0InylGNZ1fekq9jmlr3pLWwZHF4yD7heQooc2Pow2KMyQ==",
"version": "7.16.11",
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz",
"integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==",
"dev": true,
"dependencies": {
"@babel/compat-data": "^7.16.4",
"@babel/compat-data": "^7.16.8",
"@babel/helper-compilation-targets": "^7.16.7",
"@babel/helper-plugin-utils": "^7.16.7",
"@babel/helper-validator-option": "^7.16.7",
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7",
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7",
"@babel/plugin-proposal-async-generator-functions": "^7.16.7",
"@babel/plugin-proposal-async-generator-functions": "^7.16.8",
"@babel/plugin-proposal-class-properties": "^7.16.7",
"@babel/plugin-proposal-class-static-block": "^7.16.7",
"@babel/plugin-proposal-dynamic-import": "^7.16.7",
@ -1612,7 +1612,7 @@
"@babel/plugin-proposal-object-rest-spread": "^7.16.7",
"@babel/plugin-proposal-optional-catch-binding": "^7.16.7",
"@babel/plugin-proposal-optional-chaining": "^7.16.7",
"@babel/plugin-proposal-private-methods": "^7.16.7",
"@babel/plugin-proposal-private-methods": "^7.16.11",
"@babel/plugin-proposal-private-property-in-object": "^7.16.7",
"@babel/plugin-proposal-unicode-property-regex": "^7.16.7",
"@babel/plugin-syntax-async-generators": "^7.8.4",
@ -1630,7 +1630,7 @@
"@babel/plugin-syntax-private-property-in-object": "^7.14.5",
"@babel/plugin-syntax-top-level-await": "^7.14.5",
"@babel/plugin-transform-arrow-functions": "^7.16.7",
"@babel/plugin-transform-async-to-generator": "^7.16.7",
"@babel/plugin-transform-async-to-generator": "^7.16.8",
"@babel/plugin-transform-block-scoped-functions": "^7.16.7",
"@babel/plugin-transform-block-scoping": "^7.16.7",
"@babel/plugin-transform-classes": "^7.16.7",
@ -1644,10 +1644,10 @@
"@babel/plugin-transform-literals": "^7.16.7",
"@babel/plugin-transform-member-expression-literals": "^7.16.7",
"@babel/plugin-transform-modules-amd": "^7.16.7",
"@babel/plugin-transform-modules-commonjs": "^7.16.7",
"@babel/plugin-transform-modules-commonjs": "^7.16.8",
"@babel/plugin-transform-modules-systemjs": "^7.16.7",
"@babel/plugin-transform-modules-umd": "^7.16.7",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.16.7",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8",
"@babel/plugin-transform-new-target": "^7.16.7",
"@babel/plugin-transform-object-super": "^7.16.7",
"@babel/plugin-transform-parameters": "^7.16.7",
@ -1662,11 +1662,11 @@
"@babel/plugin-transform-unicode-escapes": "^7.16.7",
"@babel/plugin-transform-unicode-regex": "^7.16.7",
"@babel/preset-modules": "^0.1.5",
"@babel/types": "^7.16.7",
"@babel/types": "^7.16.8",
"babel-plugin-polyfill-corejs2": "^0.3.0",
"babel-plugin-polyfill-corejs3": "^0.4.0",
"babel-plugin-polyfill-corejs3": "^0.5.0",
"babel-plugin-polyfill-regenerator": "^0.3.0",
"core-js-compat": "^3.19.1",
"core-js-compat": "^3.20.2",
"semver": "^6.3.0"
},
"engines": {
@ -1719,9 +1719,9 @@
}
},
"node_modules/@babel/traverse": {
"version": "7.16.8",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.8.tgz",
"integrity": "sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ==",
"version": "7.16.10",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz",
"integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.16.7",
@ -1730,7 +1730,7 @@
"@babel/helper-function-name": "^7.16.7",
"@babel/helper-hoist-variables": "^7.16.7",
"@babel/helper-split-export-declaration": "^7.16.7",
"@babel/parser": "^7.16.8",
"@babel/parser": "^7.16.10",
"@babel/types": "^7.16.8",
"debug": "^4.1.0",
"globals": "^11.1.0"
@ -1820,9 +1820,9 @@
"dev": true
},
"node_modules/@lit/reactive-element": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.2.0.tgz",
"integrity": "sha512-7i/Fz8enAQ2AN5DyJ2i2AFERufjP6x1NjuHoNgDyJkjjHxEoo8kVyyHxu1A9YyeShlksjt5FvpvENBDuivQHLA=="
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.2.1.tgz",
"integrity": "sha512-03FYfMguIWo9E1y1qcTpXzoO8Ukpn0j5o4GjNFq/iHqJEPY6pYopsU44e7NSFIgCTorr8wdUU5PfVy8VeD6Rwg=="
},
"node_modules/@mapbox/node-pre-gyp": {
"version": "1.0.8",
@ -2351,9 +2351,9 @@
"dev": true
},
"node_modules/@sindresorhus/is": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.1.tgz",
"integrity": "sha512-BrzrgtaqEre0qfvI8sMTaEvx+bayuhPmfe2rfeUGPPHYr/PLxCOqkOe4TQTDPb+qcqgNcsAtXV/Ew74mcDIE8w==",
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.4.0.tgz",
"integrity": "sha512-QppPM/8l3Mawvh4rn9CNEYIU9bxpXUCRMaX9yUpvBk1nMKusLKpfXGDEKExKaPhLzcn3lzil7pR6rnJ11HgeRQ==",
"dev": true,
"engines": {
"node": ">=10"
@ -2433,9 +2433,9 @@
}
},
"node_modules/@types/node": {
"version": "17.0.8",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.8.tgz",
"integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==",
"version": "17.0.13",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.13.tgz",
"integrity": "sha512-Y86MAxASe25hNzlDbsviXl8jQHb0RDvKt4c40ZJQ1Don0AAL0STLZSs4N+6gLEO55pedy7r2cLwS+ZDxPm/2Bw==",
"dev": true
},
"node_modules/@types/parse-json": {
@ -2836,13 +2836,13 @@
}
},
"node_modules/babel-plugin-polyfill-corejs3": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz",
"integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==",
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz",
"integrity": "sha512-TihqEe4sQcb/QcPJvxe94/9RZuLQuF1+To4WqQcRvc+3J3gLCPIPgDKzGLG6zmQLfH3nn25heRuDNkS2KR4I8A==",
"dev": true,
"dependencies": {
"@babel/helper-define-polyfill-provider": "^0.3.0",
"core-js-compat": "^3.18.0"
"@babel/helper-define-polyfill-provider": "^0.3.1",
"core-js-compat": "^3.20.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
@ -3294,9 +3294,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001299",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001299.tgz",
"integrity": "sha512-iujN4+x7QzqA2NCSrS5VUy+4gLmRd4xv6vbBBsmfVqTx8bLAD8097euLqQgKxSVLvxjSDcvF1T/i9ocgnUFexw==",
"version": "1.0.30001303",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz",
"integrity": "sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==",
"dev": true,
"funding": {
"type": "opencollective",
@ -3361,10 +3361,16 @@
}
},
"node_modules/chokidar": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
"integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
"dev": true,
"funding": [
{
"type": "individual",
"url": "https://paulmillr.com/funding/"
}
],
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@ -3403,9 +3409,9 @@
"dev": true
},
"node_modules/clean-css": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.2.tgz",
"integrity": "sha512-/eR8ru5zyxKzpBLv9YZvMXgTSSQn7AdkMItMYynsFgGwTveCRVam9IUPFloE85B4vAIj05IuKmmEoV7/AQjT0w==",
"version": "5.2.3",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.3.tgz",
"integrity": "sha512-qjywD7LvpZJ5+E16lf00GnMVUX5TEVBcKW1/vtGPgAerHwRwE4JP4p1Y40zbLnup2ZfWsd30P2bHdoAKH93XxA==",
"dev": true,
"dependencies": {
"source-map": "~0.6.0"
@ -4104,9 +4110,9 @@
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"node_modules/electron-to-chromium": {
"version": "1.4.46",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.46.tgz",
"integrity": "sha512-UtV0xUA/dibCKKP2JMxOpDtXR74zABevuUEH4K0tvduFSIoxRVcYmQsbB51kXsFTX8MmOyWMt8tuZAlmDOqkrQ==",
"version": "1.4.56",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.56.tgz",
"integrity": "sha512-0k/S0FQqRRpJbX7YUjwCcLZ8D42RqGKtaiq90adXBOYgTIWwLA/g3toO8k9yEpqU8iC4QyaWYYWSTBIna8WV4g==",
"dev": true
},
"node_modules/emoji-regex": {
@ -4530,9 +4536,9 @@
}
},
"node_modules/eslint-module-utils": {
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz",
"integrity": "sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==",
"version": "2.7.3",
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz",
"integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==",
"dev": true,
"dependencies": {
"debug": "^3.2.7",
@ -5035,9 +5041,9 @@
"dev": true
},
"node_modules/fdir": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-5.1.0.tgz",
"integrity": "sha512-IgTtZwL52tx2wqWeuGDzXYTnNsEjNLahZpJw30hCQDyVnoHXwY5acNDnjGImTTL1R0z1PCyLw20VAbE5qLic3Q==",
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-5.2.0.tgz",
"integrity": "sha512-skyI2Laxtj9GYzmktPgY6DT8uswXq+VoxH26SskykvEhTSbi7tRM/787uZt/p8maxrQCJdzC90zX1btbxiJ6lw==",
"dev": true
},
"node_modules/file-entry-cache": {
@ -5151,9 +5157,9 @@
}
},
"node_modules/flatted": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz",
"integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==",
"version": "3.2.5",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz",
"integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
"dev": true
},
"node_modules/forever-agent": {
@ -6618,9 +6624,9 @@
}
},
"node_modules/lit": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/lit/-/lit-2.1.1.tgz",
"integrity": "sha512-yqDqf36IhXwOxIQSFqCMgpfvDCRdxLCLZl7m/+tO5C9W/OBHUj17qZpiMBT35v97QMVKcKEi1KZ3hZRyTwBNsQ==",
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/lit/-/lit-2.1.2.tgz",
"integrity": "sha512-XacK89dJXF7BJbpiZSMvzT4RxHag7Wt+yNx7tErEVgGVlOFAeN871bj7ivotCMgYeBFWVp/hjKF/PDTk6L7gMA==",
"dependencies": {
"@lit/reactive-element": "^1.1.0",
"lit-element": "^3.1.0",
@ -6628,18 +6634,18 @@
}
},
"node_modules/lit-element": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.1.1.tgz",
"integrity": "sha512-14ClnMAU8EXnzC+M2/KDd3SFmNUn1QUw1+GxWkEMwGV3iaH8ObunMlO5svzvaWlkSV0WlxJCi40NGnDVJ2XZKQ==",
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.1.2.tgz",
"integrity": "sha512-5VLn5a7anAFH7oz6d7TRG3KiTZQ5GEFsAgOKB8Yc+HDyuDUGOT2cL1CYTz/U4b/xlJxO+euP14pyji+z3Z3kOg==",
"dependencies": {
"@lit/reactive-element": "^1.1.0",
"lit-html": "^2.1.0"
}
},
"node_modules/lit-html": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.1.1.tgz",
"integrity": "sha512-E4BImK6lopAYanJpvcGaAG8kQFF1ccIulPu2BRNZI7acFB6i4ujjjsnaPVFT1j/4lD9r8GKih0Y8d7/LH8SeyQ==",
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.1.2.tgz",
"integrity": "sha512-fp7oBzUdc7SEmOoSUNUZ6PM8se8eaIvc3pviQ5M+iCYuCpv9E23Nnb4hlxVzGhLWMnHSrnRVooNio0aAgjjrFw==",
"dependencies": {
"@types/trusted-types": "^2.0.2"
}
@ -7209,9 +7215,9 @@
}
},
"node_modules/negotiator": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
"dev": true,
"engines": {
"node": ">= 0.6"
@ -8707,9 +8713,9 @@
}
},
"node_modules/postcss-selector-parser": {
"version": "6.0.8",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz",
"integrity": "sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ==",
"version": "6.0.9",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz",
"integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==",
"dev": true,
"dependencies": {
"cssesc": "^3.0.0",
@ -9157,12 +9163,12 @@
}
},
"node_modules/resolve": {
"version": "1.21.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz",
"integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==",
"version": "1.22.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
"integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
"dev": true,
"dependencies": {
"is-core-module": "^2.8.0",
"is-core-module": "^2.8.1",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
@ -9222,9 +9228,9 @@
}
},
"node_modules/rollup": {
"version": "2.63.0",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.63.0.tgz",
"integrity": "sha512-nps0idjmD+NXl6OREfyYXMn/dar3WGcyKn+KBzPdaLecub3x/LrId0wUcthcr8oZUAcZAR8NKcfGGFlNgGL1kQ==",
"version": "2.66.1",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.66.1.tgz",
"integrity": "sha512-crSgLhSkLMnKr4s9iZ/1qJCplgAgrRY+igWv8KhG/AjKOJ0YX/WpmANyn8oxrw+zenF3BXWDLa7Xl/QZISH+7w==",
"dev": true,
"bin": {
"rollup": "dist/bin/rollup"
@ -10124,9 +10130,9 @@
}
},
"node_modules/source-map-js": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz",
"integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==",
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
"dev": true,
"engines": {
"node": ">=0.10.0"
@ -10940,9 +10946,9 @@
}
},
"node_modules/usb/node_modules/node-addon-api": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.2.0.tgz",
"integrity": "sha512-eazsqzwG2lskuzBqCGPi7Ac2UgOoMz8JVOXVhTvvPDYhthvNpefx8jWD8Np7Gv+2Sz0FlPWZk0nJV0z598Wn8Q=="
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz",
"integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ=="
},
"node_modules/utf-8-validate": {
"version": "5.0.8",
@ -11267,9 +11273,9 @@
}
},
"node_modules/ws": {
"version": "8.4.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.4.0.tgz",
"integrity": "sha512-IHVsKe2pjajSUIl4KYMQOdlyliovpEPquKkqbwswulszzI7r0SfQrxnXdWAEqOlDCLrVSJzo+O1hAwdog2sKSQ==",
"version": "8.4.2",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz",
"integrity": "sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==",
"engines": {
"node": ">=10.0.0"
},
@ -11519,20 +11525,20 @@
"dev": true
},
"@babel/core": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.7.tgz",
"integrity": "sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA==",
"version": "7.16.12",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz",
"integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.16.7",
"@babel/generator": "^7.16.7",
"@babel/generator": "^7.16.8",
"@babel/helper-compilation-targets": "^7.16.7",
"@babel/helper-module-transforms": "^7.16.7",
"@babel/helpers": "^7.16.7",
"@babel/parser": "^7.16.7",
"@babel/parser": "^7.16.12",
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.16.7",
"@babel/types": "^7.16.7",
"@babel/traverse": "^7.16.10",
"@babel/types": "^7.16.8",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@ -11595,9 +11601,9 @@
}
},
"@babel/helper-create-class-features-plugin": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.7.tgz",
"integrity": "sha512-kIFozAvVfK05DM4EVQYKK+zteWvY85BFdGBRQBytRyY3y+6PX0DkDOn/CZ3lEuczCfrCxEzwt0YtP/87YPTWSw==",
"version": "7.16.10",
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz",
"integrity": "sha512-wDeej0pu3WN/ffTxMNCPW5UCiOav8IcLRxSIyp/9+IF2xJUM9h/OYjg0IJLHaL6F8oU8kqMz9nc1vryXhMsgXg==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.7",
@ -11818,9 +11824,9 @@
}
},
"@babel/highlight": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz",
"integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==",
"version": "7.16.10",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz",
"integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.16.7",
@ -11829,9 +11835,9 @@
}
},
"@babel/parser": {
"version": "7.16.8",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz",
"integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==",
"version": "7.16.12",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz",
"integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==",
"dev": true
},
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
@ -11992,12 +11998,12 @@
}
},
"@babel/plugin-proposal-private-methods": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.7.tgz",
"integrity": "sha512-7twV3pzhrRxSwHeIvFE6coPgvo+exNDOiGUMg39o2LiLo1Y+4aKpfkcLGcg1UHonzorCt7SNXnoMyCnnIOA8Sw==",
"version": "7.16.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz",
"integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==",
"dev": true,
"requires": {
"@babel/helper-create-class-features-plugin": "^7.16.7",
"@babel/helper-create-class-features-plugin": "^7.16.10",
"@babel/helper-plugin-utils": "^7.16.7"
}
},
@ -12473,18 +12479,18 @@
}
},
"@babel/preset-env": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.7.tgz",
"integrity": "sha512-urX3Cee4aOZbRWOSa3mKPk0aqDikfILuo+C7qq7HY0InylGNZ1fekq9jmlr3pLWwZHF4yD7heQooc2Pow2KMyQ==",
"version": "7.16.11",
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz",
"integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==",
"dev": true,
"requires": {
"@babel/compat-data": "^7.16.4",
"@babel/compat-data": "^7.16.8",
"@babel/helper-compilation-targets": "^7.16.7",
"@babel/helper-plugin-utils": "^7.16.7",
"@babel/helper-validator-option": "^7.16.7",
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7",
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7",
"@babel/plugin-proposal-async-generator-functions": "^7.16.7",
"@babel/plugin-proposal-async-generator-functions": "^7.16.8",
"@babel/plugin-proposal-class-properties": "^7.16.7",
"@babel/plugin-proposal-class-static-block": "^7.16.7",
"@babel/plugin-proposal-dynamic-import": "^7.16.7",
@ -12496,7 +12502,7 @@
"@babel/plugin-proposal-object-rest-spread": "^7.16.7",
"@babel/plugin-proposal-optional-catch-binding": "^7.16.7",
"@babel/plugin-proposal-optional-chaining": "^7.16.7",
"@babel/plugin-proposal-private-methods": "^7.16.7",
"@babel/plugin-proposal-private-methods": "^7.16.11",
"@babel/plugin-proposal-private-property-in-object": "^7.16.7",
"@babel/plugin-proposal-unicode-property-regex": "^7.16.7",
"@babel/plugin-syntax-async-generators": "^7.8.4",
@ -12514,7 +12520,7 @@
"@babel/plugin-syntax-private-property-in-object": "^7.14.5",
"@babel/plugin-syntax-top-level-await": "^7.14.5",
"@babel/plugin-transform-arrow-functions": "^7.16.7",
"@babel/plugin-transform-async-to-generator": "^7.16.7",
"@babel/plugin-transform-async-to-generator": "^7.16.8",
"@babel/plugin-transform-block-scoped-functions": "^7.16.7",
"@babel/plugin-transform-block-scoping": "^7.16.7",
"@babel/plugin-transform-classes": "^7.16.7",
@ -12528,10 +12534,10 @@
"@babel/plugin-transform-literals": "^7.16.7",
"@babel/plugin-transform-member-expression-literals": "^7.16.7",
"@babel/plugin-transform-modules-amd": "^7.16.7",
"@babel/plugin-transform-modules-commonjs": "^7.16.7",
"@babel/plugin-transform-modules-commonjs": "^7.16.8",
"@babel/plugin-transform-modules-systemjs": "^7.16.7",
"@babel/plugin-transform-modules-umd": "^7.16.7",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.16.7",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8",
"@babel/plugin-transform-new-target": "^7.16.7",
"@babel/plugin-transform-object-super": "^7.16.7",
"@babel/plugin-transform-parameters": "^7.16.7",
@ -12546,11 +12552,11 @@
"@babel/plugin-transform-unicode-escapes": "^7.16.7",
"@babel/plugin-transform-unicode-regex": "^7.16.7",
"@babel/preset-modules": "^0.1.5",
"@babel/types": "^7.16.7",
"@babel/types": "^7.16.8",
"babel-plugin-polyfill-corejs2": "^0.3.0",
"babel-plugin-polyfill-corejs3": "^0.4.0",
"babel-plugin-polyfill-corejs3": "^0.5.0",
"babel-plugin-polyfill-regenerator": "^0.3.0",
"core-js-compat": "^3.19.1",
"core-js-compat": "^3.20.2",
"semver": "^6.3.0"
}
},
@ -12588,9 +12594,9 @@
}
},
"@babel/traverse": {
"version": "7.16.8",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.8.tgz",
"integrity": "sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ==",
"version": "7.16.10",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz",
"integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.16.7",
@ -12599,7 +12605,7 @@
"@babel/helper-function-name": "^7.16.7",
"@babel/helper-hoist-variables": "^7.16.7",
"@babel/helper-split-export-declaration": "^7.16.7",
"@babel/parser": "^7.16.8",
"@babel/parser": "^7.16.10",
"@babel/types": "^7.16.8",
"debug": "^4.1.0",
"globals": "^11.1.0"
@ -12673,9 +12679,9 @@
"dev": true
},
"@lit/reactive-element": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.2.0.tgz",
"integrity": "sha512-7i/Fz8enAQ2AN5DyJ2i2AFERufjP6x1NjuHoNgDyJkjjHxEoo8kVyyHxu1A9YyeShlksjt5FvpvENBDuivQHLA=="
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.2.1.tgz",
"integrity": "sha512-03FYfMguIWo9E1y1qcTpXzoO8Ukpn0j5o4GjNFq/iHqJEPY6pYopsU44e7NSFIgCTorr8wdUU5PfVy8VeD6Rwg=="
},
"@mapbox/node-pre-gyp": {
"version": "1.0.8",
@ -13085,9 +13091,9 @@
}
},
"@sindresorhus/is": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.1.tgz",
"integrity": "sha512-BrzrgtaqEre0qfvI8sMTaEvx+bayuhPmfe2rfeUGPPHYr/PLxCOqkOe4TQTDPb+qcqgNcsAtXV/Ew74mcDIE8w==",
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.4.0.tgz",
"integrity": "sha512-QppPM/8l3Mawvh4rn9CNEYIU9bxpXUCRMaX9yUpvBk1nMKusLKpfXGDEKExKaPhLzcn3lzil7pR6rnJ11HgeRQ==",
"dev": true
},
"@snowpack/plugin-babel": {
@ -13155,9 +13161,9 @@
}
},
"@types/node": {
"version": "17.0.8",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.8.tgz",
"integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==",
"version": "17.0.13",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.13.tgz",
"integrity": "sha512-Y86MAxASe25hNzlDbsviXl8jQHb0RDvKt4c40ZJQ1Don0AAL0STLZSs4N+6gLEO55pedy7r2cLwS+ZDxPm/2Bw==",
"dev": true
},
"@types/parse-json": {
@ -13485,13 +13491,13 @@
}
},
"babel-plugin-polyfill-corejs3": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz",
"integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==",
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz",
"integrity": "sha512-TihqEe4sQcb/QcPJvxe94/9RZuLQuF1+To4WqQcRvc+3J3gLCPIPgDKzGLG6zmQLfH3nn25heRuDNkS2KR4I8A==",
"dev": true,
"requires": {
"@babel/helper-define-polyfill-provider": "^0.3.0",
"core-js-compat": "^3.18.0"
"@babel/helper-define-polyfill-provider": "^0.3.1",
"core-js-compat": "^3.20.0"
}
},
"babel-plugin-polyfill-regenerator": {
@ -13833,9 +13839,9 @@
"dev": true
},
"caniuse-lite": {
"version": "1.0.30001299",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001299.tgz",
"integrity": "sha512-iujN4+x7QzqA2NCSrS5VUy+4gLmRd4xv6vbBBsmfVqTx8bLAD8097euLqQgKxSVLvxjSDcvF1T/i9ocgnUFexw==",
"version": "1.0.30001303",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz",
"integrity": "sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==",
"dev": true
},
"caseless": {
@ -13884,9 +13890,9 @@
}
},
"chokidar": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
"integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
"dev": true,
"requires": {
"anymatch": "~3.1.2",
@ -13918,9 +13924,9 @@
"dev": true
},
"clean-css": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.2.tgz",
"integrity": "sha512-/eR8ru5zyxKzpBLv9YZvMXgTSSQn7AdkMItMYynsFgGwTveCRVam9IUPFloE85B4vAIj05IuKmmEoV7/AQjT0w==",
"version": "5.2.3",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.3.tgz",
"integrity": "sha512-qjywD7LvpZJ5+E16lf00GnMVUX5TEVBcKW1/vtGPgAerHwRwE4JP4p1Y40zbLnup2ZfWsd30P2bHdoAKH93XxA==",
"dev": true,
"requires": {
"source-map": "~0.6.0"
@ -14450,9 +14456,9 @@
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"electron-to-chromium": {
"version": "1.4.46",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.46.tgz",
"integrity": "sha512-UtV0xUA/dibCKKP2JMxOpDtXR74zABevuUEH4K0tvduFSIoxRVcYmQsbB51kXsFTX8MmOyWMt8tuZAlmDOqkrQ==",
"version": "1.4.56",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.56.tgz",
"integrity": "sha512-0k/S0FQqRRpJbX7YUjwCcLZ8D42RqGKtaiq90adXBOYgTIWwLA/g3toO8k9yEpqU8iC4QyaWYYWSTBIna8WV4g==",
"dev": true
},
"emoji-regex": {
@ -14862,9 +14868,9 @@
}
},
"eslint-module-utils": {
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz",
"integrity": "sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==",
"version": "2.7.3",
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz",
"integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==",
"dev": true,
"requires": {
"debug": "^3.2.7",
@ -15158,9 +15164,9 @@
"dev": true
},
"fdir": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-5.1.0.tgz",
"integrity": "sha512-IgTtZwL52tx2wqWeuGDzXYTnNsEjNLahZpJw30hCQDyVnoHXwY5acNDnjGImTTL1R0z1PCyLw20VAbE5qLic3Q==",
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-5.2.0.tgz",
"integrity": "sha512-skyI2Laxtj9GYzmktPgY6DT8uswXq+VoxH26SskykvEhTSbi7tRM/787uZt/p8maxrQCJdzC90zX1btbxiJ6lw==",
"dev": true
},
"file-entry-cache": {
@ -15252,9 +15258,9 @@
}
},
"flatted": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz",
"integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==",
"version": "3.2.5",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz",
"integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
"dev": true
},
"forever-agent": {
@ -16356,9 +16362,9 @@
}
},
"lit": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/lit/-/lit-2.1.1.tgz",
"integrity": "sha512-yqDqf36IhXwOxIQSFqCMgpfvDCRdxLCLZl7m/+tO5C9W/OBHUj17qZpiMBT35v97QMVKcKEi1KZ3hZRyTwBNsQ==",
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/lit/-/lit-2.1.2.tgz",
"integrity": "sha512-XacK89dJXF7BJbpiZSMvzT4RxHag7Wt+yNx7tErEVgGVlOFAeN871bj7ivotCMgYeBFWVp/hjKF/PDTk6L7gMA==",
"requires": {
"@lit/reactive-element": "^1.1.0",
"lit-element": "^3.1.0",
@ -16366,18 +16372,18 @@
}
},
"lit-element": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.1.1.tgz",
"integrity": "sha512-14ClnMAU8EXnzC+M2/KDd3SFmNUn1QUw1+GxWkEMwGV3iaH8ObunMlO5svzvaWlkSV0WlxJCi40NGnDVJ2XZKQ==",
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.1.2.tgz",
"integrity": "sha512-5VLn5a7anAFH7oz6d7TRG3KiTZQ5GEFsAgOKB8Yc+HDyuDUGOT2cL1CYTz/U4b/xlJxO+euP14pyji+z3Z3kOg==",
"requires": {
"@lit/reactive-element": "^1.1.0",
"lit-html": "^2.1.0"
}
},
"lit-html": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.1.1.tgz",
"integrity": "sha512-E4BImK6lopAYanJpvcGaAG8kQFF1ccIulPu2BRNZI7acFB6i4ujjjsnaPVFT1j/4lD9r8GKih0Y8d7/LH8SeyQ==",
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.1.2.tgz",
"integrity": "sha512-fp7oBzUdc7SEmOoSUNUZ6PM8se8eaIvc3pviQ5M+iCYuCpv9E23Nnb4hlxVzGhLWMnHSrnRVooNio0aAgjjrFw==",
"requires": {
"@types/trusted-types": "^2.0.2"
}
@ -16829,9 +16835,9 @@
}
},
"negotiator": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
"dev": true
},
"nice-try": {
@ -17966,9 +17972,9 @@
}
},
"postcss-selector-parser": {
"version": "6.0.8",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz",
"integrity": "sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ==",
"version": "6.0.9",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz",
"integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==",
"dev": true,
"requires": {
"cssesc": "^3.0.0",
@ -18329,12 +18335,12 @@
"dev": true
},
"resolve": {
"version": "1.21.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz",
"integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==",
"version": "1.22.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
"integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
"dev": true,
"requires": {
"is-core-module": "^2.8.0",
"is-core-module": "^2.8.1",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
}
@ -18376,9 +18382,9 @@
}
},
"rollup": {
"version": "2.63.0",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.63.0.tgz",
"integrity": "sha512-nps0idjmD+NXl6OREfyYXMn/dar3WGcyKn+KBzPdaLecub3x/LrId0wUcthcr8oZUAcZAR8NKcfGGFlNgGL1kQ==",
"version": "2.66.1",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.66.1.tgz",
"integrity": "sha512-crSgLhSkLMnKr4s9iZ/1qJCplgAgrRY+igWv8KhG/AjKOJ0YX/WpmANyn8oxrw+zenF3BXWDLa7Xl/QZISH+7w==",
"dev": true,
"requires": {
"fsevents": "~2.3.2"
@ -19029,9 +19035,9 @@
"dev": true
},
"source-map-js": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz",
"integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==",
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
"dev": true
},
"source-map-support": {
@ -19666,9 +19672,9 @@
},
"dependencies": {
"node-addon-api": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.2.0.tgz",
"integrity": "sha512-eazsqzwG2lskuzBqCGPi7Ac2UgOoMz8JVOXVhTvvPDYhthvNpefx8jWD8Np7Gv+2Sz0FlPWZk0nJV0z598Wn8Q=="
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz",
"integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ=="
}
}
},
@ -19938,9 +19944,9 @@
}
},
"ws": {
"version": "8.4.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.4.0.tgz",
"integrity": "sha512-IHVsKe2pjajSUIl4KYMQOdlyliovpEPquKkqbwswulszzI7r0SfQrxnXdWAEqOlDCLrVSJzo+O1hAwdog2sKSQ==",
"version": "8.4.2",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz",
"integrity": "sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==",
"requires": {}
},
"xdg-basedir": {

View File

@ -31,12 +31,12 @@
"@abandonware/noble": "1.9.2-15",
"ant-plus": "0.1.24",
"finalhandler": "1.1.2",
"lit": "2.1.1",
"lit": "2.1.2",
"loglevel": "1.8.0",
"nosleep.js": "0.12.0",
"onoff": "6.0.3",
"serve-static": "1.14.2",
"ws": "8.4.0",
"ws": "8.4.2",
"xml2js": "0.4.23"
},
"optionalDependencies": {
@ -45,7 +45,7 @@
"devDependencies": {
"@babel/eslint-parser": "7.16.5",
"@babel/plugin-proposal-decorators": "7.16.7",
"@babel/preset-env": "7.16.7",
"@babel/preset-env": "7.16.11",
"@rollup/plugin-babel": "5.3.0",
"@rollup/plugin-commonjs": "21.0.1",
"@rollup/plugin-node-resolve": "13.1.3",
@ -62,7 +62,7 @@
"markdownlint-cli": "0.30.0",
"nodemon": "2.0.15",
"npm-run-all": "4.1.5",
"rollup": "2.63.0",
"rollup": "2.66.1",
"rollup-plugin-summary": "1.3.0",
"rollup-plugin-terser": "7.0.2",
"simple-git-hooks": "2.7.0",