From 2511ba762763c86e54b7ee585f6ed455e1bdb401 Mon Sep 17 00:00:00 2001 From: Niclas Andersson Date: Sat, 19 Mar 2022 01:16:02 +0100 Subject: [PATCH 01/20] Add Node-RED pictures and change ntfy URL to ntfy.sh --- docs/examples.md | 352 +++++++++++++++------------- docs/static/img/nodered-message.png | Bin 0 -> 7582 bytes docs/static/img/nodered-picture.png | Bin 0 -> 10097 bytes 3 files changed, 190 insertions(+), 162 deletions(-) create mode 100644 docs/static/img/nodered-message.png create mode 100644 docs/static/img/nodered-picture.png diff --git a/docs/examples.md b/docs/examples.md index e26092e7..ff23aefc 100644 --- a/docs/examples.md +++ b/docs/examples.md @@ -132,181 +132,209 @@ Some simple bash scripts to achieve this are kindly provided in [nickexyz's repo ## Node-RED You can use the HTTP request node to send messages with [Node-RED](https://nodered.org), some examples: +Example: Send a message + +![Node red message flow](static/img/nodered-message.png)
-Example: Send a message +Expand ``` [ - { - "id": "8f09d37dd5773f88", - "type": "http request", - "z": "ff3ad4e1.d3415", - "name": "ntfy", - "method": "POST", - "ret": "txt", - "paytoqs": "ignore", - "url": "https://example.com/topic", - "tls": "", - "persist": false, - "proxy": "", - "authType": "", - "senderr": false, - "credentials": {}, - "x": 1410, - "y": 740, - "wires": [ - [] - ] - }, - { - "id": "2603f296b25fe351", - "type": "function", - "z": "ff3ad4e1.d3415", - "name": "data", - "func": "msg.payload = \"Something happened\";\nmsg.headers = {};\nmsg.headers['tags'] = 'house';\nmsg.headers['X-Title'] = 'Home Assistant';\n\nreturn msg;", - "outputs": 1, - "noerr": 0, - "initialize": "", - "finalize": "", - "libs": [], - "x": 1290, - "y": 740, - "wires": [ - [ - "8f09d37dd5773f88" - ] - ] - }, - { - "id": "d2351ed0720a239f", - "type": "inject", - "z": "ff3ad4e1.d3415", - "name": "Manual start", - "props": [ - { - "p": "payload" - }, - { - "p": "topic", - "vt": "str" - } - ], - "repeat": "", - "crontab": "", - "once": false, - "onceDelay": "20", - "topic": "", - "payload": "", - "payloadType": "date", - "x": 1150, - "y": 740, - "wires": [ - [ - "2603f296b25fe351" - ] - ] - } + { + "id": "c956e688cc74ad8e", + "type": "http request", + "z": "fabdd7a3.4045a", + "name": "ntfy.sh", + "method": "POST", + "ret": "txt", + "paytoqs": "ignore", + "url": "https://ntfy.sh/mytopic", + "tls": "", + "persist": false, + "proxy": "", + "authType": "", + "senderr": false, + "credentials": + { + "user": "", + "password": "" + }, + "x": 590, + "y": 3160, + "wires": + [ + [] + ] + }, + { + "id": "32ee1eade51fae50", + "type": "function", + "z": "fabdd7a3.4045a", + "name": "data", + "func": "msg.payload = \"Something happened\";\nmsg.headers = {};\nmsg.headers['tags'] = 'house';\nmsg.headers['X-Title'] = 'Home Assistant';\n\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 470, + "y": 3160, + "wires": + [ + [ + "c956e688cc74ad8e" + ] + ] + }, + { + "id": "b287e59cd2311815", + "type": "inject", + "z": "fabdd7a3.4045a", + "name": "Manual start", + "props": + [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": "20", + "topic": "", + "payload": "", + "payloadType": "date", + "x": 330, + "y": 3160, + "wires": + [ + [ + "32ee1eade51fae50" + ] + ] + } ] ```
+Example: Send a picture + +![Node red picture flow](static/img/nodered-picture.png)
-Example: Send a picture +Expand ``` [ - { - "id": "726d0d75d6c0f70e", - "type": "http request", - "z": "ff3ad4e1.d3415", - "name": "Download jpeg", - "method": "GET", - "ret": "bin", - "paytoqs": "ignore", - "url": "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png", - "tls": "", - "persist": false, - "proxy": "", - "authType": "", - "senderr": false, - "credentials": {}, - "x": 1320, - "y": 780, - "wires": [ - [ - "730dbbc9dbf1ed8a" - ] - ] - }, - { - "id": "730dbbc9dbf1ed8a", - "type": "function", - "z": "ff3ad4e1.d3415", - "name": "data", - "func": "msg.payload = msg.payload;\nmsg.headers = {};\nmsg.headers['tags'] = 'house';\nmsg.headers['X-Title'] = 'Home Assistant - Picture';\n\nreturn msg;", - "outputs": 1, - "noerr": 0, - "initialize": "", - "finalize": "", - "libs": [], - "x": 1470, - "y": 780, - "wires": [ - [ - "592f424b37f76f5c" - ] - ] - }, - { - "id": "592f424b37f76f5c", - "type": "http request", - "z": "ff3ad4e1.d3415", - "name": "ntfy", - "method": "PUT", - "ret": "bin", - "paytoqs": "ignore", - "url": "https://example.com/topic", - "tls": "", - "persist": false, - "proxy": "", - "authType": "", - "senderr": false, - "x": 1590, - "y": 780, - "wires": [ - [] - ] - }, - { - "id": "8aa06dda3c902f6a", - "type": "inject", - "z": "ff3ad4e1.d3415", - "name": "Manual start", - "props": [ - { - "p": "payload" - }, - { - "p": "topic", - "vt": "str" - } - ], - "repeat": "", - "crontab": "", - "once": false, - "onceDelay": "20", - "topic": "", - "payload": "", - "payloadType": "date", - "x": 1150, - "y": 780, - "wires": [ - [ - "726d0d75d6c0f70e" - ] - ] - } + { + "id": "d135a13eadeb9d6d", + "type": "http request", + "z": "fabdd7a3.4045a", + "name": "Download image", + "method": "GET", + "ret": "bin", + "paytoqs": "ignore", + "url": "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png", + "tls": "", + "persist": false, + "proxy": "", + "authType": "", + "senderr": false, + "credentials": + { + "user": "", + "password": "" + }, + "x": 490, + "y": 3320, + "wires": + [ + [ + "6e75bc41d2ec4a03" + ] + ] + }, + { + "id": "6e75bc41d2ec4a03", + "type": "function", + "z": "fabdd7a3.4045a", + "name": "data", + "func": "msg.payload = msg.payload;\nmsg.headers = {};\nmsg.headers['tags'] = 'house';\nmsg.headers['X-Title'] = 'Home Assistant - Picture';\n\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 650, + "y": 3320, + "wires": + [ + [ + "eb160615b6ceda98" + ] + ] + }, + { + "id": "eb160615b6ceda98", + "type": "http request", + "z": "fabdd7a3.4045a", + "name": "ntfy.sh", + "method": "PUT", + "ret": "bin", + "paytoqs": "ignore", + "url": "https://ntfy.sh/mytopic", + "tls": "", + "persist": false, + "proxy": "", + "authType": "", + "senderr": false, + "credentials": + { + "user": "", + "password": "" + }, + "x": 770, + "y": 3320, + "wires": + [ + [] + ] + }, + { + "id": "5b8dbf15c8a7a3a5", + "type": "inject", + "z": "fabdd7a3.4045a", + "name": "Manual start", + "props": + [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": "20", + "topic": "", + "payload": "", + "payloadType": "date", + "x": 310, + "y": 3320, + "wires": + [ + [ + "d135a13eadeb9d6d" + ] + ] + } ] ``` diff --git a/docs/static/img/nodered-message.png b/docs/static/img/nodered-message.png new file mode 100644 index 0000000000000000000000000000000000000000..46279087b134f12ee456b7d3687e71cb44fb7403 GIT binary patch literal 7582 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 ONXqi+A8KVS!~YMCln40$ literal 0 HcmV?d00001 From 21fc1245eb8fd92e2c0a2a082ab4a23ae308f62d Mon Sep 17 00:00:00 2001 From: nickexyz Date: Sat, 19 Mar 2022 00:20:56 +0000 Subject: [PATCH 02/20] Update examples.md --- docs/examples.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/examples.md b/docs/examples.md index ff23aefc..fe108182 100644 --- a/docs/examples.md +++ b/docs/examples.md @@ -133,8 +133,6 @@ Some simple bash scripts to achieve this are kindly provided in [nickexyz's repo You can use the HTTP request node to send messages with [Node-RED](https://nodered.org), some examples: Example: Send a message - -![Node red message flow](static/img/nodered-message.png)
Expand @@ -222,9 +220,10 @@ Example: Send a message
-Example: Send a picture +![Node red message flow](static/img/nodered-message.png) -![Node red picture flow](static/img/nodered-picture.png) + +Example: Send a picture
Expand @@ -340,6 +339,8 @@ Example: Send a picture
+![Node red picture flow](static/img/nodered-picture.png) + ## Gatus service health check An example for a custom alert with Gatus From 13d741b89e985ebaaf03b74bba4c829e72e6222b Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Sun, 20 Mar 2022 15:12:06 -0400 Subject: [PATCH 03/20] Changelog --- docs/releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/releases.md b/docs/releases.md index dd2120e8..96a8fa06 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -9,6 +9,7 @@ and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/release * Support for UnifiedPush 2.0 specification (bytes messages, [#130](https://github.com/binwiederhier/ntfy/issues/130)) * Export/import settings and subscriptions ([#115](https://github.com/binwiederhier/ntfy/issues/115), thanks [@cmeis](https://github.com/cmeis) for reporting) +* JSON stream deprecation banner ([#164](https://github.com/binwiederhier/ntfy/issues/164)) **Bug fixes:** From 38072c9cdd7f722b44fad0a189eec6d8f1a083c7 Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Sun, 20 Mar 2022 19:55:32 -0400 Subject: [PATCH 04/20] Release log --- docs/releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/releases.md b/docs/releases.md index 96a8fa06..c6cda2a6 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -9,6 +9,7 @@ and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/release * Support for UnifiedPush 2.0 specification (bytes messages, [#130](https://github.com/binwiederhier/ntfy/issues/130)) * Export/import settings and subscriptions ([#115](https://github.com/binwiederhier/ntfy/issues/115), thanks [@cmeis](https://github.com/cmeis) for reporting) +* Open "Click" link when tapping notification ([#110](https://github.com/binwiederhier/ntfy/issues/110), thanks [@cmeis](https://github.com/cmeis) for reporting) * JSON stream deprecation banner ([#164](https://github.com/binwiederhier/ntfy/issues/164)) **Bug fixes:** From 35cef8386c2a08977a8a2f223bedc12d732a1db7 Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Mon, 21 Mar 2022 23:13:45 -0400 Subject: [PATCH 05/20] Release docs --- docs/releases.md | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/docs/releases.md b/docs/releases.md index c6cda2a6..9b7ccc52 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -3,7 +3,26 @@ Binaries for all releases can be found on the GitHub releases pages for the [ntf and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/releases). + +## ntfy Android app v1.10.0 +Released Mar 21, 2022 **Features:** @@ -16,17 +35,6 @@ and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/release * Display locale-specific times, with AM/PM or 24h format ([#140](https://github.com/binwiederhier/ntfy/issues/140), thanks [@hl2guide](https://github.com/hl2guide) for reporting) -## ntfy server v1.19.0 (UNRELEASED) - -**Documentation:** - -* Overhaul of [developer documentation](https://ntfy.sh/docs/develop/) -* PowerShell examples for [publish documentation](https://ntfy.sh/docs/publish/) ([#138](https://github.com/binwiederhier/ntfy/issues/138), thanks to [@Joeharrison94](https://github.com/Joeharrison94)) -* Additional examples for [NodeRED, Gatus, Sonarr, Radarr, ...](https://ntfy.sh/docs/examples/) (thanks to [@nickexyz](https://github.com/nickexyz)) -* Fixes in developer instructions (thanks to [@Fallenbagel](https://github.com/Fallenbagel) for reporting) - ---> - ## ntfy server v1.18.0 Released Mar 16, 2022 From a3e28e71aaaf156e5f84eb378d428fb648bf10a2 Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Mon, 21 Mar 2022 23:23:46 -0400 Subject: [PATCH 06/20] Bump version --- docs/install.md | 36 ++++++++++++++++++------------------ docs/releases.md | 24 +++++++++++++++--------- 2 files changed, 33 insertions(+), 27 deletions(-) diff --git a/docs/install.md b/docs/install.md index f1fbf0df..64b972b3 100644 --- a/docs/install.md +++ b/docs/install.md @@ -26,28 +26,28 @@ deb/rpm packages. === "x86_64/amd64" ```bash - wget https://github.com/binwiederhier/ntfy/releases/download/v1.18.0/ntfy_1.18.0_linux_x86_64.tar.gz - tar zxvf ntfy_1.18.0_linux_x86_64.tar.gz - sudo cp -a ntfy_1.18.0_linux_x86_64/ntfy /usr/bin/ntfy - sudo mkdir /etc/ntfy && sudo cp ntfy_1.18.0_linux_x86_64/{client,server}/*.yml /etc/ntfy + wget https://github.com/binwiederhier/ntfy/releases/download/v1.18.1/ntfy_1.18.1_linux_x86_64.tar.gz + tar zxvf ntfy_1.18.1_linux_x86_64.tar.gz + sudo cp -a ntfy_1.18.1_linux_x86_64/ntfy /usr/bin/ntfy + sudo mkdir /etc/ntfy && sudo cp ntfy_1.18.1_linux_x86_64/{client,server}/*.yml /etc/ntfy sudo ntfy serve ``` === "armv7/armhf" ```bash - wget https://github.com/binwiederhier/ntfy/releases/download/v1.18.0/ntfy_1.18.0_linux_armv7.tar.gz - tar zxvf ntfy_1.18.0_linux_armv7.tar.gz - sudo cp -a ntfy_1.18.0_linux_armv7/ntfy /usr/bin/ntfy - sudo mkdir /etc/ntfy && sudo cp ntfy_1.18.0_linux_armv7/{client,server}/*.yml /etc/ntfy + wget https://github.com/binwiederhier/ntfy/releases/download/v1.18.1/ntfy_1.18.1_linux_armv7.tar.gz + tar zxvf ntfy_1.18.1_linux_armv7.tar.gz + sudo cp -a ntfy_1.18.1_linux_armv7/ntfy /usr/bin/ntfy + sudo mkdir /etc/ntfy && sudo cp ntfy_1.18.1_linux_armv7/{client,server}/*.yml /etc/ntfy sudo ntfy serve ``` === "arm64" ```bash - wget https://github.com/binwiederhier/ntfy/releases/download/v1.18.0/ntfy_1.18.0_linux_arm64.tar.gz - tar zxvf ntfy_1.18.0_linux_arm64.tar.gz - sudo cp -a ntfy_1.18.0_linux_arm64/ntfy /usr/bin/ntfy - sudo mkdir /etc/ntfy && sudo cp ntfy_1.18.0_linux_arm64/{client,server}/*.yml /etc/ntfy + wget https://github.com/binwiederhier/ntfy/releases/download/v1.18.1/ntfy_1.18.1_linux_arm64.tar.gz + tar zxvf ntfy_1.18.1_linux_arm64.tar.gz + sudo cp -a ntfy_1.18.1_linux_arm64/ntfy /usr/bin/ntfy + sudo mkdir /etc/ntfy && sudo cp ntfy_1.18.1_linux_arm64/{client,server}/*.yml /etc/ntfy sudo ntfy serve ``` @@ -94,7 +94,7 @@ Manually installing the .deb file: === "x86_64/amd64" ```bash - wget https://github.com/binwiederhier/ntfy/releases/download/v1.18.0/ntfy_1.18.0_linux_amd64.deb + wget https://github.com/binwiederhier/ntfy/releases/download/v1.18.1/ntfy_1.18.1_linux_amd64.deb sudo dpkg -i ntfy_*.deb sudo systemctl enable ntfy sudo systemctl start ntfy @@ -102,7 +102,7 @@ Manually installing the .deb file: === "armv7/armhf" ```bash - wget https://github.com/binwiederhier/ntfy/releases/download/v1.18.0/ntfy_1.18.0_linux_armv7.deb + wget https://github.com/binwiederhier/ntfy/releases/download/v1.18.1/ntfy_1.18.1_linux_armv7.deb sudo dpkg -i ntfy_*.deb sudo systemctl enable ntfy sudo systemctl start ntfy @@ -110,7 +110,7 @@ Manually installing the .deb file: === "arm64" ```bash - wget https://github.com/binwiederhier/ntfy/releases/download/v1.18.0/ntfy_1.18.0_linux_arm64.deb + wget https://github.com/binwiederhier/ntfy/releases/download/v1.18.1/ntfy_1.18.1_linux_arm64.deb sudo dpkg -i ntfy_*.deb sudo systemctl enable ntfy sudo systemctl start ntfy @@ -120,21 +120,21 @@ Manually installing the .deb file: === "x86_64/amd64" ```bash - sudo rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v1.18.0/ntfy_1.18.0_linux_amd64.rpm + sudo rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v1.18.1/ntfy_1.18.1_linux_amd64.rpm sudo systemctl enable ntfy sudo systemctl start ntfy ``` === "armv7/armhf" ```bash - sudo rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v1.18.0/ntfy_1.18.0_linux_armv7.rpm + sudo rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v1.18.1/ntfy_1.18.1_linux_armv7.rpm sudo systemctl enable ntfy sudo systemctl start ntfy ``` === "arm64" ```bash - sudo rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v1.18.0/ntfy_1.18.0_linux_arm64.rpm + sudo rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v1.18.1/ntfy_1.18.1_linux_arm64.rpm sudo systemctl enable ntfy sudo systemctl start ntfy ``` diff --git a/docs/releases.md b/docs/releases.md index 9b7ccc52..c1e947b0 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -4,23 +4,29 @@ and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/release +## ntfy server v1.18.1 +Released Mar 21, 2022 +_This release ships no features or bug fixes. It's merely a documentation update._ + +**Documentation:** + +* Overhaul of [developer documentation](https://ntfy.sh/docs/develop/) +* PowerShell examples for [publish documentation](https://ntfy.sh/docs/publish/) ([#138](https://github.com/binwiederhier/ntfy/issues/138), thanks to [@Joeharrison94](https://github.com/Joeharrison94)) +* Additional examples for [NodeRED, Gatus, Sonarr, Radarr, ...](https://ntfy.sh/docs/examples/) (thanks to [@nickexyz](https://github.com/nickexyz)) +* Fixes in developer instructions (thanks to [@Fallenbagel](https://github.com/Fallenbagel) for reporting) + ## ntfy Android app v1.10.0 Released Mar 21, 2022 From d7fa51be2c81291052889a5f32e7174835f886ee Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Tue, 22 Mar 2022 15:26:15 -0400 Subject: [PATCH 07/20] Changelog --- docs/releases.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/releases.md b/docs/releases.md index c1e947b0..bb3fd4f5 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -9,11 +9,17 @@ and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/release **Features:** * Download attachments to cache folder ([#181](https://github.com/binwiederhier/ntfy/issues/181)) +* Regularly delete attachments for deleted notifications ([#142](https://github.com/binwiederhier/ntfy/issues/142)) Bugs: * IllegalStateException: Failed to build unique file ([#177](https://github.com/binwiederhier/ntfy/issues/177), thanks to [@Fallenbagel](https://github.com/Fallenbagel) for reporting) +Thanks: + +* Many thanks to [@cmeis](https://github.com/cmeis), [@Fallenbagel](https://github.com/Fallenbagel), [@Joeharrison94](https://github.com/Joeharrison94), + and [@rogeliodh](https://github.com/rogeliodh) for input on the new attachment logic, and for testing the release + --> ## ntfy server v1.18.1 From 37e14b13a4b7127908f46d05839a6016fab68969 Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Tue, 22 Mar 2022 19:54:20 -0400 Subject: [PATCH 08/20] Update deps --- go.mod | 10 +- go.sum | 17 +- web/package-lock.json | 1079 ++++++++++++++++++++++------------------- 3 files changed, 600 insertions(+), 506 deletions(-) diff --git a/go.mod b/go.mod index bd45a4d4..c50335e4 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/olebedev/when v0.0.0-20211212231525-59bd4edcf9d6 github.com/stretchr/testify v1.7.0 github.com/urfave/cli/v2 v2.4.0 - golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 + golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064 golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 @@ -28,7 +28,7 @@ require ( cloud.google.com/go v0.100.2 // indirect cloud.google.com/go/compute v1.5.0 // indirect cloud.google.com/go/iam v0.3.0 // indirect - github.com/AlekSi/pointer v1.0.0 // indirect + github.com/AlekSi/pointer v1.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/emersion/go-sasl v0.0.0-20211008083017-0b9dcfb154ac // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect @@ -40,12 +40,12 @@ require ( github.com/russross/blackfriday/v2 v2.1.0 // indirect go.opencensus.io v0.23.0 // indirect golang.org/x/net v0.0.0-20220225172249-27dd8689420f // indirect - golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5 // indirect + golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8 // indirect golang.org/x/text v0.3.7 // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106 // indirect + google.golang.org/genproto v0.0.0-20220322021311-435b647f9ef2 // indirect google.golang.org/grpc v1.45.0 // indirect - google.golang.org/protobuf v1.27.1 // indirect + google.golang.org/protobuf v1.28.0 // indirect gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect ) diff --git a/go.sum b/go.sum index fe238256..7b752e3a 100644 --- a/go.sum +++ b/go.sum @@ -61,8 +61,9 @@ cloud.google.com/go/storage v1.21.0/go.mod h1:XmRlxkgPjlBONznT2dDUU/5XlpU2OjMnKu dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= firebase.google.com/go v3.13.0+incompatible h1:3TdYC3DDi6aHn20qoRkxwGqNgdjtblwVAyRLQwGn/+4= firebase.google.com/go v3.13.0+incompatible/go.mod h1:xlah6XbEyW6tbfSklcfe5FHJIwjt8toICdV5Wh9ptHs= -github.com/AlekSi/pointer v1.0.0 h1:KWCWzsvFxNLcmM5XmiqHsGTTsuwZMsLFwWF9Y+//bNE= github.com/AlekSi/pointer v1.0.0/go.mod h1:1kjywbfcPFCmncIxtk6fIEub6LKrfMz3gc5QKVOSOA8= +github.com/AlekSi/pointer v1.2.0 h1:glcy/gc4h8HnG2Z3ZECSzZ1IX1x2JxRVuDzaJwQE0+w= +github.com/AlekSi/pointer v1.2.0/go.mod h1:gZGfd3dpW4vEc/UlyfKKi1roIqcCgwOIvb0tSNSBle0= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.0.0 h1:dtDWrepsVPfW9H/4y7dDgFc2MBUSeJhlaDtK13CxFlU= github.com/BurntSushi/toml v1.0.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= @@ -244,8 +245,9 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064 h1:S25/rfnfsMVgORT4/J61MJ7rdyseOZOyvLIrZEZ7s6s= +golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -317,6 +319,7 @@ golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLd golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f h1:oA4XRj0qtSt8Yo1Zms0CUlsT3KG69V2UGQWPBxujDmc= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -406,8 +409,9 @@ golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5 h1:y/woIyUBFbpQGKS0u1aHF/40WUDnek3fPOyD08H5Vng= golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8 h1:OH54vjqzRWmbJ62fjuhxy7AxFFgoHN0/DPc/UrL8cAs= +golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -604,8 +608,8 @@ google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2 google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106 h1:ErU+UA6wxadoU8nWrsy5MZUVBs75K17zUCsUCIfrXCE= -google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20220322021311-435b647f9ef2 h1:3n0D2NdPGm0g0wrVJzXJWW5CBOoqgGBkDX9cRMJHZAY= +google.golang.org/genproto v0.0.0-20220322021311-435b647f9ef2/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -648,8 +652,9 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/web/package-lock.json b/web/package-lock.json index ce4fa54b..a6e50e94 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -55,17 +55,17 @@ } }, "node_modules/@babel/core": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.7.tgz", - "integrity": "sha512-djHlEfFHnSnTAcPb7dATbiM5HxGOP98+3JLBZtjRb5I7RXrw7kFRoG2dXM8cm3H+o11A8IFH/uprmJpwFynRNQ==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", + "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", "@babel/generator": "^7.17.7", "@babel/helper-compilation-targets": "^7.17.7", "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.7", - "@babel/parser": "^7.17.7", + "@babel/helpers": "^7.17.8", + "@babel/parser": "^7.17.8", "@babel/template": "^7.16.7", "@babel/traverse": "^7.17.3", "@babel/types": "^7.17.0", @@ -442,9 +442,9 @@ } }, "node_modules/@babel/helpers": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.7.tgz", - "integrity": "sha512-TKsj9NkjJfTBxM7Phfy7kv6yYc4ZcOo+AaWGqQOKTPDOmcGkIFb5xNA746eKisQkm4yavUYh4InYM9S+VnO01w==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", + "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", "dependencies": { "@babel/template": "^7.16.7", "@babel/traverse": "^7.17.3", @@ -468,9 +468,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.7.tgz", - "integrity": "sha512-bm3AQf45vR4gKggRfvJdYJ0gFLoCbsPxiFLSH6hTVYABptNHY6l9NrhnucVjQ/X+SPtLANT9lc0fFhikj+VBRA==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", "bin": { "parser": "bin/babel-parser.js" }, @@ -556,11 +556,11 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.2.tgz", - "integrity": "sha512-WH8Z95CwTq/W8rFbMqb9p3hicpt4RX4f0K659ax2VHxgOyT6qQmUaEVEjIh4WR9Eh9NymkVn5vwsrE68fAQNUw==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.8.tgz", + "integrity": "sha512-U69odN4Umyyx1xO1rTII0IDkAEC+RNlcKXtqOblfpzqy1C+aOplb76BQNq0+XdpVkOaPlpEDwd++joY8FNFJKA==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.1", + "@babel/helper-create-class-features-plugin": "^7.17.6", "@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-replace-supers": "^7.16.7", "@babel/plugin-syntax-decorators": "^7.17.0", @@ -1258,12 +1258,12 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", + "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", "dependencies": { "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-module-transforms": "^7.17.7", "@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" @@ -1737,9 +1737,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.7.tgz", - "integrity": "sha512-L6rvG9GDxaLgFjg41K+5Yv9OMrU98sWe+Ykmc6FDJW/+vYZMhdOMKkISgzptMaERHvS2Y2lw9MDRm2gHhlQQoA==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", + "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -1748,9 +1748,9 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.7.tgz", - "integrity": "sha512-TvliGJjhxis5m7xIMvlXH/xG8Oa/LK0SCUCyfKD6nLi42n5fB4WibDJ0g9trmmBB6hwpMNx+Lzbxy9/4gpMaVw==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz", + "integrity": "sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==", "dependencies": { "core-js-pure": "^3.20.2", "regenerator-runtime": "^0.13.4" @@ -2825,14 +2825,14 @@ } }, "node_modules/@mui/base": { - "version": "5.0.0-alpha.72", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.72.tgz", - "integrity": "sha512-WCAooa9eqbsC68LhyKtDBRumH4hV1eRZ0A3SDKFHSwYG9fCOdsFv/H1dIYRJM0rwD45bMnuDiG3Qmx7YsTiptw==", + "version": "5.0.0-alpha.73", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.73.tgz", + "integrity": "sha512-TEUCIIEAWrngAqpIa+dY3nofGSNj70LC3KC9WcCzyXPK3M4AG2GNi7ndd/g/0DtC55kbxrudzlV8TG3vrB2Vjw==", "dependencies": { "@babel/runtime": "^7.17.2", "@emotion/is-prop-valid": "^1.1.2", "@mui/utils": "^5.4.4", - "@popperjs/core": "^2.11.3", + "@popperjs/core": "^2.11.4", "clsx": "^1.1.1", "prop-types": "^15.7.2", "react-is": "^17.0.2" @@ -2881,13 +2881,13 @@ } }, "node_modules/@mui/material": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.5.1.tgz", - "integrity": "sha512-bJSYgymgSZ7btPTNnWFrr2EmGoVQc4A/0WLfP/ESY2dxnhnbFDwt7twiOKmJp3u84YXriEDt5v9EZQLf7A+y0Q==", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.5.2.tgz", + "integrity": "sha512-r4p1u9eDlSqW3TS/Iq9yolifWHpuW6e0BSeqEJW3EEIcKfPVVk4WNUNJ+s8DtN7dBoDcveXxcQVVjYXTIv1d9g==", "dependencies": { "@babel/runtime": "^7.17.2", - "@mui/base": "5.0.0-alpha.72", - "@mui/system": "^5.5.1", + "@mui/base": "5.0.0-alpha.73", + "@mui/system": "^5.5.2", "@mui/types": "^7.1.3", "@mui/utils": "^5.4.4", "@types/react-transition-group": "^4.4.4", @@ -2951,9 +2951,9 @@ } }, "node_modules/@mui/styled-engine": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.4.4.tgz", - "integrity": "sha512-AKx3rSgB6dmt5f7iP4K18mLFlE5/9EfJe/5EH9Pyqez8J/CPkTgYhJ/Va6qtlrcunzpui+uG/vfuf04yAZekSg==", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.5.2.tgz", + "integrity": "sha512-jkz5AHHbA43akBo5L3y1X1/X0f+RvXvCp3eXKt+iOf3qnKSAausbtlVz7gBbC4xIWDnP1Jb/6T+t/0/7gObRYA==", "dependencies": { "@babel/runtime": "^7.17.2", "@emotion/cache": "^11.7.1", @@ -2981,13 +2981,13 @@ } }, "node_modules/@mui/system": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.5.1.tgz", - "integrity": "sha512-2hynI4hN8304hOCT8sc4knJviwUUYJ7XK3mXwQ0nagVGOPnWSOad/nYADm7K0vdlCeUXLIbDbe7oNN3Kaiu2kA==", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.5.2.tgz", + "integrity": "sha512-OATYFI36nliud8xh0u+ZNqDo0jWjxpO0vZLlzqNB+ZtkR5Q/+1X3GgboA9ruiB8Rq+udnJlMBQNGW0qqjvAOHQ==", "dependencies": { "@babel/runtime": "^7.17.2", "@mui/private-theming": "^5.4.4", - "@mui/styled-engine": "^5.4.4", + "@mui/styled-engine": "^5.5.2", "@mui/types": "^7.1.3", "@mui/utils": "^5.4.4", "clsx": "^1.1.1", @@ -3512,9 +3512,9 @@ } }, "node_modules/@types/babel__core": { - "version": "7.1.18", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", - "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0", @@ -3684,9 +3684,9 @@ "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "node_modules/@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" + "version": "17.0.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.22.tgz", + "integrity": "sha512-8FwbVoG4fy+ykY86XCAclKZDORttqE5/s7dyWZKLXTdv3vRy5HozBEinG5IqhvPXXzIZEcTVbuHlQEI6iuwcmw==" }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -3719,9 +3719,9 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "node_modules/@types/react": { - "version": "17.0.40", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.40.tgz", - "integrity": "sha512-UrXhD/JyLH+W70nNSufXqMZNuUD2cXHu6UjCllC6pmOQgBX4SGXOH8fjRka0O0Ee0HrFxapDD8Bwn81Kmiz6jQ==", + "version": "17.0.41", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.41.tgz", + "integrity": "sha512-chYZ9ogWUodyC7VUTRBfblysKLjnohhFY9bGLwvnUFFy48+vB9DikmB3lW0qTFmBcKSzmdglcvkHK71IioOlDA==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3819,13 +3819,13 @@ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.15.0.tgz", - "integrity": "sha512-u6Db5JfF0Esn3tiAKELvoU5TpXVSkOpZ78cEGn/wXtT2RVqs2vkt4ge6N8cRCyw7YVKhmmLDbwI2pg92mlv7cA==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.16.0.tgz", + "integrity": "sha512-SJoba1edXvQRMmNI505Uo4XmGbxCK9ARQpkvOd00anxzri9RNQk0DDCxD+LIl+jYhkzOJiOMMKYEHnHEODjdCw==", "dependencies": { - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/type-utils": "5.15.0", - "@typescript-eslint/utils": "5.15.0", + "@typescript-eslint/scope-manager": "5.16.0", + "@typescript-eslint/type-utils": "5.16.0", + "@typescript-eslint/utils": "5.16.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -3865,11 +3865,11 @@ } }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.15.0.tgz", - "integrity": "sha512-AJOOaBrVqKYWaYDBtgMi9XVDB3YHXlffto/3A4VQ39VVaNqosSOp/nW09G4N/ej8WlzHQB2jTnSfP5wWsXSQJA==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.16.0.tgz", + "integrity": "sha512-bitZtqO13XX64/UOQKoDbVg2H4VHzbHnWWlTRc7ofq7SuQyPCwEycF1Zmn5ZAMTJZ3p5uMS7xJGUdOtZK7LrNw==", "dependencies": { - "@typescript-eslint/utils": "5.15.0" + "@typescript-eslint/utils": "5.16.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3883,13 +3883,13 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.15.0.tgz", - "integrity": "sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.16.0.tgz", + "integrity": "sha512-fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA==", "dependencies": { - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/typescript-estree": "5.15.0", + "@typescript-eslint/scope-manager": "5.16.0", + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/typescript-estree": "5.16.0", "debug": "^4.3.2" }, "engines": { @@ -3909,12 +3909,12 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz", - "integrity": "sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz", + "integrity": "sha512-P+Yab2Hovg8NekLIR/mOElCDPyGgFZKhGoZA901Yax6WR6HVeGLbsqJkZ+Cvk5nts/dAlFKm8PfL43UZnWdpIQ==", "dependencies": { - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/visitor-keys": "5.15.0" + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/visitor-keys": "5.16.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3925,11 +3925,11 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.15.0.tgz", - "integrity": "sha512-KGeDoEQ7gHieLydujGEFLyLofipe9PIzfvA/41urz4hv+xVxPEbmMQonKSynZ0Ks2xDhJQ4VYjB3DnRiywvKDA==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.16.0.tgz", + "integrity": "sha512-SKygICv54CCRl1Vq5ewwQUJV/8padIWvPgCxlWPGO/OgQLCijY9G7lDu6H+mqfQtbzDNlVjzVWQmeqbLMBLEwQ==", "dependencies": { - "@typescript-eslint/utils": "5.15.0", + "@typescript-eslint/utils": "5.16.0", "debug": "^4.3.2", "tsutils": "^3.21.0" }, @@ -3950,9 +3950,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.15.0.tgz", - "integrity": "sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz", + "integrity": "sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g==", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -3962,12 +3962,12 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz", - "integrity": "sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz", + "integrity": "sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ==", "dependencies": { - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/visitor-keys": "5.15.0", + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/visitor-keys": "5.16.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -4002,14 +4002,14 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.15.0.tgz", - "integrity": "sha512-081rWu2IPKOgTOhHUk/QfxuFog8m4wxW43sXNOMSCdh578tGJ1PAaWPsj42LOa7pguh173tNlMigsbrHvh/mtA==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.16.0.tgz", + "integrity": "sha512-iYej2ER6AwmejLWMWzJIHy3nPJeGDuCqf8Jnb+jAQVoPpmWzwQOfa9hWVB8GIQE5gsCv/rfN4T+AYb/V06WseQ==", "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/typescript-estree": "5.15.0", + "@typescript-eslint/scope-manager": "5.16.0", + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/typescript-estree": "5.16.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -4045,11 +4045,11 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz", - "integrity": "sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz", + "integrity": "sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g==", "dependencies": { - "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/types": "5.16.0", "eslint-visitor-keys": "^3.0.0" }, "engines": { @@ -4369,9 +4369,9 @@ } }, "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -4702,12 +4702,12 @@ } }, "node_modules/babel-loader": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", - "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz", + "integrity": "sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==", "dependencies": { "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", + "loader-utils": "^2.0.0", "make-dir": "^3.1.0", "schema-utils": "^2.6.5" }, @@ -4719,30 +4719,6 @@ "webpack": ">=2" } }, - "node_modules/babel-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/babel-loader/node_modules/schema-utils": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", @@ -5210,13 +5186,19 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001317", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001317.tgz", - "integrity": "sha512-xIZLh8gBm4dqNX0gkzrBeyI86J2eCjWzYAs40q88smG844YIrN4tVQl/RhquHvKEKImWWFIVh1Lxe5n1G/N+GQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } + "version": "1.0.30001319", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001319.tgz", + "integrity": "sha512-xjlIAFHucBRSMUo1kb5D4LYgcN1M45qdKP++lhqowDpwJwGkpIRTt5qQqnhxjj1vHcI7nrJxWhCC1ATrCEBTcw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] }, "node_modules/case-sensitive-paths-webpack-plugin": { "version": "2.4.0", @@ -5780,9 +5762,9 @@ } }, "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -5918,11 +5900,11 @@ } }, "node_modules/cssnano": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.4.tgz", - "integrity": "sha512-hbfhVZreEPyzl+NbvRsjNo54JOX80b+j6nqG2biLVLaZHJEiqGyMh4xDGHtwhUKd5p59mj2GlDqlUBwJUuIu5A==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.5.tgz", + "integrity": "sha512-VZO1e+bRRVixMeia1zKagrv0lLN1B/r/u12STGNNUFxnp97LIFgZHQa0JxqlwEkvzUyA9Oz/WnCTAFkdEbONmg==", "dependencies": { - "cssnano-preset-default": "^*", + "cssnano-preset-default": "^5.2.5", "lilconfig": "^2.0.3", "yaml": "^1.10.2" }, @@ -5938,39 +5920,39 @@ } }, "node_modules/cssnano-preset-default": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.4.tgz", - "integrity": "sha512-w1Gg8xsebln6/axZ6qDFQHuglrGfbIHOIx0g4y9+etRlRab8CGpSpe6UMsrgJe4zhCaJ0LwLmc+PhdLRTwnhIA==", + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.5.tgz", + "integrity": "sha512-WopL7PzN7sos3X8B54/QGl+CZUh1f0qN4ds+y2d5EPwRSSc3jsitVw81O+Uyop0pXyOfPfZxnc+LmA8w/Ki/WQ==", "dependencies": { "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^*", + "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", - "postcss-colormin": "^*", - "postcss-convert-values": "^*", - "postcss-discard-comments": "^*", - "postcss-discard-duplicates": "^*", - "postcss-discard-empty": "^*", - "postcss-discard-overridden": "^*", - "postcss-merge-longhand": "^*", - "postcss-merge-rules": "^*", - "postcss-minify-font-values": "^*", - "postcss-minify-gradients": "^*", - "postcss-minify-params": "^*", - "postcss-minify-selectors": "^*", - "postcss-normalize-charset": "^*", - "postcss-normalize-display-values": "^*", - "postcss-normalize-positions": "^*", - "postcss-normalize-repeat-style": "^*", - "postcss-normalize-string": "^*", - "postcss-normalize-timing-functions": "^*", - "postcss-normalize-unicode": "^*", - "postcss-normalize-url": "^*", - "postcss-normalize-whitespace": "^*", - "postcss-ordered-values": "^*", - "postcss-reduce-initial": "^*", - "postcss-reduce-transforms": "^*", - "postcss-svgo": "^*", - "postcss-unique-selectors": "^*" + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.0", + "postcss-discard-comments": "^5.1.1", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.3", + "postcss-merge-rules": "^5.1.1", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.2", + "postcss-minify-selectors": "^5.2.0", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.0", + "postcss-normalize-repeat-style": "^5.1.0", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.1", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -6401,9 +6383,9 @@ } }, "node_modules/domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dependencies": { "domelementtype": "^2.2.0" }, @@ -6474,9 +6456,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.86", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.86.tgz", - "integrity": "sha512-EVTZ+igi8x63pK4bPuA95PXIs2b2Cowi3WQwI9f9qManLiZJOD1Lash1J3W4TvvcUCcIR4o/rgi9o8UicXSO+w==" + "version": "1.4.89", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.89.tgz", + "integrity": "sha512-z1Axg0Fu54fse8wN4fd+GAINdU5mJmLtcl6bqIcYyzNVGONcfHAeeJi88KYMQVKalhXlYuVPzKkFIU5VD0raUw==" }, "node_modules/emittery": { "version": "0.8.1", @@ -8984,12 +8966,12 @@ } }, "node_modules/jake": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "version": "10.8.4", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.4.tgz", + "integrity": "sha512-MtWeTkl1qGsWUtbl/Jsca/8xSoK3x0UmS82sNbjqxxG/de/M/3b1DntdjHgPMC50enlTNwXOCRqPXLLt5cCfZA==", "dependencies": { "async": "0.9.x", - "chalk": "^2.4.2", + "chalk": "^4.0.2", "filelist": "^1.0.1", "minimatch": "^3.0.4" }, @@ -8997,7 +8979,21 @@ "jake": "bin/cli.js" }, "engines": { - "node": "*" + "node": ">=10" + } + }, + "node_modules/jake/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jake/node_modules/async": { @@ -9005,6 +9001,56 @@ "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jake/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jake/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jake/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", @@ -10805,12 +10851,9 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" }, "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dependencies": { - "minimist": "^1.2.5" - }, + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "bin": { "json5": "lib/cli.js" }, @@ -11163,9 +11206,9 @@ } }, "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -11228,16 +11271,16 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dependencies": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" @@ -11304,9 +11347,9 @@ } }, "node_modules/node-forge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz", - "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.0.tgz", + "integrity": "sha512-08ARB91bUi6zNKzVmaj3QO7cr397uiDT2nJ63cHjyNtCTWIgvS47j3eT0WfzUwS9+6Z5YshRaoasFkXCKrIYbA==", "engines": { "node": ">= 6.13.0" } @@ -11987,6 +12030,20 @@ "postcss": "^8.2.2" } }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, "node_modules/postcss-color-functional-notation": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", @@ -12072,9 +12129,9 @@ } }, "node_modules/postcss-custom-properties": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.4.tgz", - "integrity": "sha512-i6AytuTCoDLJkWN/MtAIGriJz3j7UX6bV7Z5t+KgFz+dwZS15/mlTJY1S0kRizlk6ba0V8u8hN50Fz5Nm7tdZw==", + "version": "12.1.5", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.5.tgz", + "integrity": "sha512-FHbbB/hRo/7cxLGkc2NS7cDRIDN1oFqQnUKBiyh4b/gwk8DD8udvmRDpUhEK836kB8ggUCieHVOvZDnF9XhI3g==", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -12173,9 +12230,9 @@ } }, "node_modules/postcss-env-function": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.5.tgz", - "integrity": "sha512-gPUJc71ji9XKyl0WSzAalBeEA/89kU+XpffpPxSaaaZ1c48OL36r1Ep5R6+9XAPkIiDlSvVAwP4io12q/vTcvA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -12393,12 +12450,12 @@ } }, "node_modules/postcss-merge-longhand": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.2.tgz", - "integrity": "sha512-18/bp9DZnY1ai9RlahOfLBbmIUKfKFPASxRCiZ1vlpZqWPCn8qWPFlEozqmWL+kBtcEQmG8W9YqGCstDImvp/Q==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.3.tgz", + "integrity": "sha512-lX8GPGvZ0iGP/IboM7HXH5JwkXvXod1Rr8H8ixwiA372hArk0zP4ZcCy4z4Prg/bfNlbbTf0KCOjCF9kKnpP/w==", "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^*" + "stylehacks": "^5.1.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -12408,9 +12465,9 @@ } }, "node_modules/postcss-merge-rules": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.0.tgz", - "integrity": "sha512-NecukEJovQ0mG7h7xV8wbYAkXGTO3MPKnXvuiXzOKcxoOodfTTKYjeo8TMhAswlSkjcPIBlnKbSFcTuVSDaPyQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz", + "integrity": "sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==", "dependencies": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", @@ -12439,9 +12496,9 @@ } }, "node_modules/postcss-minify-gradients": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.0.tgz", - "integrity": "sha512-J/TMLklkONn3LuL8wCwfwU8zKC1hpS6VcxFkNUNjmVt53uKqrrykR3ov11mdUYyqVMEx67slMce0tE14cE4DTg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", "dependencies": { "colord": "^2.9.1", "cssnano-utils": "^3.1.0", @@ -12455,9 +12512,9 @@ } }, "node_modules/postcss-minify-params": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.1.tgz", - "integrity": "sha512-WCpr+J9Uz8XzMpAfg3UL8z5rde6MifBbh5L8bn8S2F5hq/YDJJzASYCnCHvAB4Fqb94ys8v95ULQkW2EhCFvNg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.2.tgz", + "integrity": "sha512-aEP+p71S/urY48HWaRHasyx4WHQJyOYaKpQ6eXl8k0kxg66Wt/30VR6/woh8THgcpRbonJD5IeD+CzNhPi1L8g==", "dependencies": { "browserslist": "^4.16.6", "cssnano-utils": "^3.1.0", @@ -12732,9 +12789,9 @@ } }, "node_modules/postcss-ordered-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.0.tgz", - "integrity": "sha512-wU4Z4D4uOIH+BUKkYid36gGDJNQtkVJT7Twv8qH6UyfttbbJWyw4/xIPuVEkkCtQLAJ0EdsNSh8dlvqkXb49TA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz", + "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==", "dependencies": { "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" @@ -12780,44 +12837,45 @@ } }, "node_modules/postcss-preset-env": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.2.tgz", - "integrity": "sha512-AmOkb8AeNNQwE/z2fHl1iwOIt8J50V8WR0rmLagcgIDoqlJZWjV3NdtOPnLGco1oN8DZe+Ss5B9ULbBeS6HfeA==", + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.3.tgz", + "integrity": "sha512-dlPA65g9KuGv7YsmGyCKtFkZKCPLkoVMUE3omOl6yM+qrynVHxFvf0tMuippIrXB/sB/MyhL1FgTIbrO+qMERg==", "dependencies": { - "@csstools/postcss-color-function": "^1.0.2", + "@csstools/postcss-color-function": "^1.0.3", "@csstools/postcss-font-format-keywords": "^1.0.0", "@csstools/postcss-hwb-function": "^1.0.0", "@csstools/postcss-ic-unit": "^1.0.0", - "@csstools/postcss-is-pseudo-class": "^2.0.0", + "@csstools/postcss-is-pseudo-class": "^2.0.1", "@csstools/postcss-normalize-display-values": "^1.0.0", - "@csstools/postcss-oklab-function": "^1.0.1", - "@csstools/postcss-progressive-custom-properties": "^1.2.0", - "autoprefixer": "^10.4.2", - "browserslist": "^4.19.3", + "@csstools/postcss-oklab-function": "^1.0.2", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "autoprefixer": "^10.4.4", + "browserslist": "^4.20.2", "css-blank-pseudo": "^3.0.3", "css-has-pseudo": "^3.0.4", "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^6.4.0", + "cssdb": "^6.5.0", "postcss-attribute-case-insensitive": "^5.0.0", + "postcss-clamp": "^4.1.0", "postcss-color-functional-notation": "^4.2.2", "postcss-color-hex-alpha": "^8.0.3", "postcss-color-rebeccapurple": "^7.0.2", "postcss-custom-media": "^8.0.0", - "postcss-custom-properties": "^12.1.4", + "postcss-custom-properties": "^12.1.5", "postcss-custom-selectors": "^6.0.0", "postcss-dir-pseudo-class": "^6.0.4", - "postcss-double-position-gradients": "^3.1.0", - "postcss-env-function": "^4.0.5", + "postcss-double-position-gradients": "^3.1.1", + "postcss-env-function": "^4.0.6", "postcss-focus-visible": "^6.0.4", "postcss-focus-within": "^5.0.4", "postcss-font-variant": "^5.0.0", "postcss-gap-properties": "^3.0.3", "postcss-image-set-function": "^4.0.6", "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.1.1", + "postcss-lab-function": "^4.1.2", "postcss-logical": "^5.0.4", "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.2", + "postcss-nesting": "^10.1.3", "postcss-opacity-percentage": "^1.1.2", "postcss-overflow-shorthand": "^3.0.3", "postcss-page-break": "^3.0.4", @@ -14479,17 +14537,17 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/string.prototype.matchall": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", - "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", + "regexp.prototype.flags": "^1.4.1", "side-channel": "^1.0.4" }, "funding": { @@ -15116,13 +15174,13 @@ "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" }, "node_modules/tsconfig-paths": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz", - "integrity": "sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.1", - "minimist": "^1.2.0", + "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, @@ -15529,9 +15587,9 @@ } }, "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -15629,9 +15687,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -15966,9 +16024,9 @@ } }, "node_modules/workbox-build/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -16360,17 +16418,17 @@ "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==" }, "@babel/core": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.7.tgz", - "integrity": "sha512-djHlEfFHnSnTAcPb7dATbiM5HxGOP98+3JLBZtjRb5I7RXrw7kFRoG2dXM8cm3H+o11A8IFH/uprmJpwFynRNQ==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", + "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", "@babel/generator": "^7.17.7", "@babel/helper-compilation-targets": "^7.17.7", "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.7", - "@babel/parser": "^7.17.7", + "@babel/helpers": "^7.17.8", + "@babel/parser": "^7.17.8", "@babel/template": "^7.16.7", "@babel/traverse": "^7.17.3", "@babel/types": "^7.17.0", @@ -16642,9 +16700,9 @@ } }, "@babel/helpers": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.7.tgz", - "integrity": "sha512-TKsj9NkjJfTBxM7Phfy7kv6yYc4ZcOo+AaWGqQOKTPDOmcGkIFb5xNA746eKisQkm4yavUYh4InYM9S+VnO01w==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", + "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", "requires": { "@babel/template": "^7.16.7", "@babel/traverse": "^7.17.3", @@ -16662,9 +16720,9 @@ } }, "@babel/parser": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.7.tgz", - "integrity": "sha512-bm3AQf45vR4gKggRfvJdYJ0gFLoCbsPxiFLSH6hTVYABptNHY6l9NrhnucVjQ/X+SPtLANT9lc0fFhikj+VBRA==" + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.16.7", @@ -16714,11 +16772,11 @@ } }, "@babel/plugin-proposal-decorators": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.2.tgz", - "integrity": "sha512-WH8Z95CwTq/W8rFbMqb9p3hicpt4RX4f0K659ax2VHxgOyT6qQmUaEVEjIh4WR9Eh9NymkVn5vwsrE68fAQNUw==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.8.tgz", + "integrity": "sha512-U69odN4Umyyx1xO1rTII0IDkAEC+RNlcKXtqOblfpzqy1C+aOplb76BQNq0+XdpVkOaPlpEDwd++joY8FNFJKA==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.1", + "@babel/helper-create-class-features-plugin": "^7.17.6", "@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-replace-supers": "^7.16.7", "@babel/plugin-syntax-decorators": "^7.17.0", @@ -17155,12 +17213,12 @@ } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", + "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", "requires": { "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-module-transforms": "^7.17.7", "@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" @@ -17475,17 +17533,17 @@ } }, "@babel/runtime": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.7.tgz", - "integrity": "sha512-L6rvG9GDxaLgFjg41K+5Yv9OMrU98sWe+Ykmc6FDJW/+vYZMhdOMKkISgzptMaERHvS2Y2lw9MDRm2gHhlQQoA==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", + "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs3": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.7.tgz", - "integrity": "sha512-TvliGJjhxis5m7xIMvlXH/xG8Oa/LK0SCUCyfKD6nLi42n5fB4WibDJ0g9trmmBB6hwpMNx+Lzbxy9/4gpMaVw==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz", + "integrity": "sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==", "requires": { "core-js-pure": "^3.20.2", "regenerator-runtime": "^0.13.4" @@ -18274,14 +18332,14 @@ } }, "@mui/base": { - "version": "5.0.0-alpha.72", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.72.tgz", - "integrity": "sha512-WCAooa9eqbsC68LhyKtDBRumH4hV1eRZ0A3SDKFHSwYG9fCOdsFv/H1dIYRJM0rwD45bMnuDiG3Qmx7YsTiptw==", + "version": "5.0.0-alpha.73", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.73.tgz", + "integrity": "sha512-TEUCIIEAWrngAqpIa+dY3nofGSNj70LC3KC9WcCzyXPK3M4AG2GNi7ndd/g/0DtC55kbxrudzlV8TG3vrB2Vjw==", "requires": { "@babel/runtime": "^7.17.2", "@emotion/is-prop-valid": "^1.1.2", "@mui/utils": "^5.4.4", - "@popperjs/core": "^2.11.3", + "@popperjs/core": "^2.11.4", "clsx": "^1.1.1", "prop-types": "^15.7.2", "react-is": "^17.0.2" @@ -18296,13 +18354,13 @@ } }, "@mui/material": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.5.1.tgz", - "integrity": "sha512-bJSYgymgSZ7btPTNnWFrr2EmGoVQc4A/0WLfP/ESY2dxnhnbFDwt7twiOKmJp3u84YXriEDt5v9EZQLf7A+y0Q==", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.5.2.tgz", + "integrity": "sha512-r4p1u9eDlSqW3TS/Iq9yolifWHpuW6e0BSeqEJW3EEIcKfPVVk4WNUNJ+s8DtN7dBoDcveXxcQVVjYXTIv1d9g==", "requires": { "@babel/runtime": "^7.17.2", - "@mui/base": "5.0.0-alpha.72", - "@mui/system": "^5.5.1", + "@mui/base": "5.0.0-alpha.73", + "@mui/system": "^5.5.2", "@mui/types": "^7.1.3", "@mui/utils": "^5.4.4", "@types/react-transition-group": "^4.4.4", @@ -18325,9 +18383,9 @@ } }, "@mui/styled-engine": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.4.4.tgz", - "integrity": "sha512-AKx3rSgB6dmt5f7iP4K18mLFlE5/9EfJe/5EH9Pyqez8J/CPkTgYhJ/Va6qtlrcunzpui+uG/vfuf04yAZekSg==", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.5.2.tgz", + "integrity": "sha512-jkz5AHHbA43akBo5L3y1X1/X0f+RvXvCp3eXKt+iOf3qnKSAausbtlVz7gBbC4xIWDnP1Jb/6T+t/0/7gObRYA==", "requires": { "@babel/runtime": "^7.17.2", "@emotion/cache": "^11.7.1", @@ -18335,13 +18393,13 @@ } }, "@mui/system": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.5.1.tgz", - "integrity": "sha512-2hynI4hN8304hOCT8sc4knJviwUUYJ7XK3mXwQ0nagVGOPnWSOad/nYADm7K0vdlCeUXLIbDbe7oNN3Kaiu2kA==", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.5.2.tgz", + "integrity": "sha512-OATYFI36nliud8xh0u+ZNqDo0jWjxpO0vZLlzqNB+ZtkR5Q/+1X3GgboA9ruiB8Rq+udnJlMBQNGW0qqjvAOHQ==", "requires": { "@babel/runtime": "^7.17.2", "@mui/private-theming": "^5.4.4", - "@mui/styled-engine": "^5.4.4", + "@mui/styled-engine": "^5.5.2", "@mui/types": "^7.1.3", "@mui/utils": "^5.4.4", "clsx": "^1.1.1", @@ -18646,9 +18704,9 @@ "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" }, "@types/babel__core": { - "version": "7.1.18", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", - "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", "requires": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0", @@ -18818,9 +18876,9 @@ "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" + "version": "17.0.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.22.tgz", + "integrity": "sha512-8FwbVoG4fy+ykY86XCAclKZDORttqE5/s7dyWZKLXTdv3vRy5HozBEinG5IqhvPXXzIZEcTVbuHlQEI6iuwcmw==" }, "@types/parse-json": { "version": "4.0.0", @@ -18853,9 +18911,9 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "@types/react": { - "version": "17.0.40", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.40.tgz", - "integrity": "sha512-UrXhD/JyLH+W70nNSufXqMZNuUD2cXHu6UjCllC6pmOQgBX4SGXOH8fjRka0O0Ee0HrFxapDD8Bwn81Kmiz6jQ==", + "version": "17.0.41", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.41.tgz", + "integrity": "sha512-chYZ9ogWUodyC7VUTRBfblysKLjnohhFY9bGLwvnUFFy48+vB9DikmB3lW0qTFmBcKSzmdglcvkHK71IioOlDA==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -18953,13 +19011,13 @@ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, "@typescript-eslint/eslint-plugin": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.15.0.tgz", - "integrity": "sha512-u6Db5JfF0Esn3tiAKELvoU5TpXVSkOpZ78cEGn/wXtT2RVqs2vkt4ge6N8cRCyw7YVKhmmLDbwI2pg92mlv7cA==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.16.0.tgz", + "integrity": "sha512-SJoba1edXvQRMmNI505Uo4XmGbxCK9ARQpkvOd00anxzri9RNQk0DDCxD+LIl+jYhkzOJiOMMKYEHnHEODjdCw==", "requires": { - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/type-utils": "5.15.0", - "@typescript-eslint/utils": "5.15.0", + "@typescript-eslint/scope-manager": "5.16.0", + "@typescript-eslint/type-utils": "5.16.0", + "@typescript-eslint/utils": "5.16.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -18979,55 +19037,55 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.15.0.tgz", - "integrity": "sha512-AJOOaBrVqKYWaYDBtgMi9XVDB3YHXlffto/3A4VQ39VVaNqosSOp/nW09G4N/ej8WlzHQB2jTnSfP5wWsXSQJA==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.16.0.tgz", + "integrity": "sha512-bitZtqO13XX64/UOQKoDbVg2H4VHzbHnWWlTRc7ofq7SuQyPCwEycF1Zmn5ZAMTJZ3p5uMS7xJGUdOtZK7LrNw==", "requires": { - "@typescript-eslint/utils": "5.15.0" + "@typescript-eslint/utils": "5.16.0" } }, "@typescript-eslint/parser": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.15.0.tgz", - "integrity": "sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.16.0.tgz", + "integrity": "sha512-fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA==", "requires": { - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/typescript-estree": "5.15.0", + "@typescript-eslint/scope-manager": "5.16.0", + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/typescript-estree": "5.16.0", "debug": "^4.3.2" } }, "@typescript-eslint/scope-manager": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz", - "integrity": "sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz", + "integrity": "sha512-P+Yab2Hovg8NekLIR/mOElCDPyGgFZKhGoZA901Yax6WR6HVeGLbsqJkZ+Cvk5nts/dAlFKm8PfL43UZnWdpIQ==", "requires": { - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/visitor-keys": "5.15.0" + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/visitor-keys": "5.16.0" } }, "@typescript-eslint/type-utils": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.15.0.tgz", - "integrity": "sha512-KGeDoEQ7gHieLydujGEFLyLofipe9PIzfvA/41urz4hv+xVxPEbmMQonKSynZ0Ks2xDhJQ4VYjB3DnRiywvKDA==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.16.0.tgz", + "integrity": "sha512-SKygICv54CCRl1Vq5ewwQUJV/8padIWvPgCxlWPGO/OgQLCijY9G7lDu6H+mqfQtbzDNlVjzVWQmeqbLMBLEwQ==", "requires": { - "@typescript-eslint/utils": "5.15.0", + "@typescript-eslint/utils": "5.16.0", "debug": "^4.3.2", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.15.0.tgz", - "integrity": "sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA==" + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz", + "integrity": "sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g==" }, "@typescript-eslint/typescript-estree": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz", - "integrity": "sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz", + "integrity": "sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ==", "requires": { - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/visitor-keys": "5.15.0", + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/visitor-keys": "5.16.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -19046,14 +19104,14 @@ } }, "@typescript-eslint/utils": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.15.0.tgz", - "integrity": "sha512-081rWu2IPKOgTOhHUk/QfxuFog8m4wxW43sXNOMSCdh578tGJ1PAaWPsj42LOa7pguh173tNlMigsbrHvh/mtA==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.16.0.tgz", + "integrity": "sha512-iYej2ER6AwmejLWMWzJIHy3nPJeGDuCqf8Jnb+jAQVoPpmWzwQOfa9hWVB8GIQE5gsCv/rfN4T+AYb/V06WseQ==", "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/typescript-estree": "5.15.0", + "@typescript-eslint/scope-manager": "5.16.0", + "@typescript-eslint/types": "5.16.0", + "@typescript-eslint/typescript-estree": "5.16.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -19075,11 +19133,11 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz", - "integrity": "sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz", + "integrity": "sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g==", "requires": { - "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/types": "5.16.0", "eslint-visitor-keys": "^3.0.0" } }, @@ -19344,9 +19402,9 @@ }, "dependencies": { "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -19578,34 +19636,16 @@ } }, "babel-loader": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", - "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz", + "integrity": "sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==", "requires": { "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", + "loader-utils": "^2.0.0", "make-dir": "^3.1.0", "schema-utils": "^2.6.5" }, "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, "schema-utils": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", @@ -19978,9 +20018,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001317", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001317.tgz", - "integrity": "sha512-xIZLh8gBm4dqNX0gkzrBeyI86J2eCjWzYAs40q88smG844YIrN4tVQl/RhquHvKEKImWWFIVh1Lxe5n1G/N+GQ==" + "version": "1.0.30001319", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001319.tgz", + "integrity": "sha512-xjlIAFHucBRSMUo1kb5D4LYgcN1M45qdKP++lhqowDpwJwGkpIRTt5qQqnhxjj1vHcI7nrJxWhCC1ATrCEBTcw==" }, "case-sensitive-paths-webpack-plugin": { "version": "2.4.0", @@ -20376,9 +20416,9 @@ }, "dependencies": { "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -20472,49 +20512,49 @@ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" }, "cssnano": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.4.tgz", - "integrity": "sha512-hbfhVZreEPyzl+NbvRsjNo54JOX80b+j6nqG2biLVLaZHJEiqGyMh4xDGHtwhUKd5p59mj2GlDqlUBwJUuIu5A==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.5.tgz", + "integrity": "sha512-VZO1e+bRRVixMeia1zKagrv0lLN1B/r/u12STGNNUFxnp97LIFgZHQa0JxqlwEkvzUyA9Oz/WnCTAFkdEbONmg==", "requires": { - "cssnano-preset-default": "^*", + "cssnano-preset-default": "^5.2.5", "lilconfig": "^2.0.3", "yaml": "^1.10.2" } }, "cssnano-preset-default": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.4.tgz", - "integrity": "sha512-w1Gg8xsebln6/axZ6qDFQHuglrGfbIHOIx0g4y9+etRlRab8CGpSpe6UMsrgJe4zhCaJ0LwLmc+PhdLRTwnhIA==", + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.5.tgz", + "integrity": "sha512-WopL7PzN7sos3X8B54/QGl+CZUh1f0qN4ds+y2d5EPwRSSc3jsitVw81O+Uyop0pXyOfPfZxnc+LmA8w/Ki/WQ==", "requires": { "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^*", + "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", - "postcss-colormin": "^*", - "postcss-convert-values": "^*", - "postcss-discard-comments": "^*", - "postcss-discard-duplicates": "^*", - "postcss-discard-empty": "^*", - "postcss-discard-overridden": "^*", - "postcss-merge-longhand": "^*", - "postcss-merge-rules": "^*", - "postcss-minify-font-values": "^*", - "postcss-minify-gradients": "^*", - "postcss-minify-params": "^*", - "postcss-minify-selectors": "^*", - "postcss-normalize-charset": "^*", - "postcss-normalize-display-values": "^*", - "postcss-normalize-positions": "^*", - "postcss-normalize-repeat-style": "^*", - "postcss-normalize-string": "^*", - "postcss-normalize-timing-functions": "^*", - "postcss-normalize-unicode": "^*", - "postcss-normalize-url": "^*", - "postcss-normalize-whitespace": "^*", - "postcss-ordered-values": "^*", - "postcss-reduce-initial": "^*", - "postcss-reduce-transforms": "^*", - "postcss-svgo": "^*", - "postcss-unique-selectors": "^*" + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.0", + "postcss-discard-comments": "^5.1.1", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.3", + "postcss-merge-rules": "^5.1.1", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.2", + "postcss-minify-selectors": "^5.2.0", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.0", + "postcss-normalize-repeat-style": "^5.1.0", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.1", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" } }, "cssnano-utils": { @@ -20845,9 +20885,9 @@ } }, "domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "requires": { "domelementtype": "^2.2.0" } @@ -20900,9 +20940,9 @@ } }, "electron-to-chromium": { - "version": "1.4.86", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.86.tgz", - "integrity": "sha512-EVTZ+igi8x63pK4bPuA95PXIs2b2Cowi3WQwI9f9qManLiZJOD1Lash1J3W4TvvcUCcIR4o/rgi9o8UicXSO+w==" + "version": "1.4.89", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.89.tgz", + "integrity": "sha512-z1Axg0Fu54fse8wN4fd+GAINdU5mJmLtcl6bqIcYyzNVGONcfHAeeJi88KYMQVKalhXlYuVPzKkFIU5VD0raUw==" }, "emittery": { "version": "0.8.1", @@ -22687,20 +22727,63 @@ } }, "jake": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "version": "10.8.4", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.4.tgz", + "integrity": "sha512-MtWeTkl1qGsWUtbl/Jsca/8xSoK3x0UmS82sNbjqxxG/de/M/3b1DntdjHgPMC50enlTNwXOCRqPXLLt5cCfZA==", "requires": { "async": "0.9.x", - "chalk": "^2.4.2", + "chalk": "^4.0.2", "filelist": "^1.0.1", "minimatch": "^3.0.4" }, "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, "async": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -24008,12 +24091,9 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "requires": { - "minimist": "^1.2.5" - } + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" }, "jsonfile": { "version": "6.1.0", @@ -24270,9 +24350,9 @@ }, "dependencies": { "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -24320,16 +24400,16 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "requires": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" } }, "ms": { @@ -24381,9 +24461,9 @@ } }, "node-forge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz", - "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.0.tgz", + "integrity": "sha512-08ARB91bUi6zNKzVmaj3QO7cr397uiDT2nJ63cHjyNtCTWIgvS47j3eT0WfzUwS9+6Z5YshRaoasFkXCKrIYbA==" }, "node-int64": { "version": "0.4.0", @@ -24856,6 +24936,14 @@ "postcss-value-parser": "^4.2.0" } }, + "postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, "postcss-color-functional-notation": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", @@ -24906,9 +24994,9 @@ "requires": {} }, "postcss-custom-properties": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.4.tgz", - "integrity": "sha512-i6AytuTCoDLJkWN/MtAIGriJz3j7UX6bV7Z5t+KgFz+dwZS15/mlTJY1S0kRizlk6ba0V8u8hN50Fz5Nm7tdZw==", + "version": "12.1.5", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.5.tgz", + "integrity": "sha512-FHbbB/hRo/7cxLGkc2NS7cDRIDN1oFqQnUKBiyh4b/gwk8DD8udvmRDpUhEK836kB8ggUCieHVOvZDnF9XhI3g==", "requires": { "postcss-value-parser": "^4.2.0" } @@ -24963,9 +25051,9 @@ } }, "postcss-env-function": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.5.tgz", - "integrity": "sha512-gPUJc71ji9XKyl0WSzAalBeEA/89kU+XpffpPxSaaaZ1c48OL36r1Ep5R6+9XAPkIiDlSvVAwP4io12q/vTcvA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", "requires": { "postcss-value-parser": "^4.2.0" } @@ -25089,18 +25177,18 @@ "requires": {} }, "postcss-merge-longhand": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.2.tgz", - "integrity": "sha512-18/bp9DZnY1ai9RlahOfLBbmIUKfKFPASxRCiZ1vlpZqWPCn8qWPFlEozqmWL+kBtcEQmG8W9YqGCstDImvp/Q==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.3.tgz", + "integrity": "sha512-lX8GPGvZ0iGP/IboM7HXH5JwkXvXod1Rr8H8ixwiA372hArk0zP4ZcCy4z4Prg/bfNlbbTf0KCOjCF9kKnpP/w==", "requires": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^*" + "stylehacks": "^5.1.0" } }, "postcss-merge-rules": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.0.tgz", - "integrity": "sha512-NecukEJovQ0mG7h7xV8wbYAkXGTO3MPKnXvuiXzOKcxoOodfTTKYjeo8TMhAswlSkjcPIBlnKbSFcTuVSDaPyQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz", + "integrity": "sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==", "requires": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", @@ -25117,9 +25205,9 @@ } }, "postcss-minify-gradients": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.0.tgz", - "integrity": "sha512-J/TMLklkONn3LuL8wCwfwU8zKC1hpS6VcxFkNUNjmVt53uKqrrykR3ov11mdUYyqVMEx67slMce0tE14cE4DTg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", "requires": { "colord": "^2.9.1", "cssnano-utils": "^3.1.0", @@ -25127,9 +25215,9 @@ } }, "postcss-minify-params": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.1.tgz", - "integrity": "sha512-WCpr+J9Uz8XzMpAfg3UL8z5rde6MifBbh5L8bn8S2F5hq/YDJJzASYCnCHvAB4Fqb94ys8v95ULQkW2EhCFvNg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.2.tgz", + "integrity": "sha512-aEP+p71S/urY48HWaRHasyx4WHQJyOYaKpQ6eXl8k0kxg66Wt/30VR6/woh8THgcpRbonJD5IeD+CzNhPi1L8g==", "requires": { "browserslist": "^4.16.6", "cssnano-utils": "^3.1.0", @@ -25280,9 +25368,9 @@ "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==" }, "postcss-ordered-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.0.tgz", - "integrity": "sha512-wU4Z4D4uOIH+BUKkYid36gGDJNQtkVJT7Twv8qH6UyfttbbJWyw4/xIPuVEkkCtQLAJ0EdsNSh8dlvqkXb49TA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz", + "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==", "requires": { "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" @@ -25309,44 +25397,45 @@ } }, "postcss-preset-env": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.2.tgz", - "integrity": "sha512-AmOkb8AeNNQwE/z2fHl1iwOIt8J50V8WR0rmLagcgIDoqlJZWjV3NdtOPnLGco1oN8DZe+Ss5B9ULbBeS6HfeA==", + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.3.tgz", + "integrity": "sha512-dlPA65g9KuGv7YsmGyCKtFkZKCPLkoVMUE3omOl6yM+qrynVHxFvf0tMuippIrXB/sB/MyhL1FgTIbrO+qMERg==", "requires": { - "@csstools/postcss-color-function": "^1.0.2", + "@csstools/postcss-color-function": "^1.0.3", "@csstools/postcss-font-format-keywords": "^1.0.0", "@csstools/postcss-hwb-function": "^1.0.0", "@csstools/postcss-ic-unit": "^1.0.0", - "@csstools/postcss-is-pseudo-class": "^2.0.0", + "@csstools/postcss-is-pseudo-class": "^2.0.1", "@csstools/postcss-normalize-display-values": "^1.0.0", - "@csstools/postcss-oklab-function": "^1.0.1", - "@csstools/postcss-progressive-custom-properties": "^1.2.0", - "autoprefixer": "^10.4.2", - "browserslist": "^4.19.3", + "@csstools/postcss-oklab-function": "^1.0.2", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "autoprefixer": "^10.4.4", + "browserslist": "^4.20.2", "css-blank-pseudo": "^3.0.3", "css-has-pseudo": "^3.0.4", "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^6.4.0", + "cssdb": "^6.5.0", "postcss-attribute-case-insensitive": "^5.0.0", + "postcss-clamp": "^4.1.0", "postcss-color-functional-notation": "^4.2.2", "postcss-color-hex-alpha": "^8.0.3", "postcss-color-rebeccapurple": "^7.0.2", "postcss-custom-media": "^8.0.0", - "postcss-custom-properties": "^12.1.4", + "postcss-custom-properties": "^12.1.5", "postcss-custom-selectors": "^6.0.0", "postcss-dir-pseudo-class": "^6.0.4", - "postcss-double-position-gradients": "^3.1.0", - "postcss-env-function": "^4.0.5", + "postcss-double-position-gradients": "^3.1.1", + "postcss-env-function": "^4.0.6", "postcss-focus-visible": "^6.0.4", "postcss-focus-within": "^5.0.4", "postcss-font-variant": "^5.0.0", "postcss-gap-properties": "^3.0.3", "postcss-image-set-function": "^4.0.6", "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.1.1", + "postcss-lab-function": "^4.1.2", "postcss-logical": "^5.0.4", "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.2", + "postcss-nesting": "^10.1.3", "postcss-opacity-percentage": "^1.1.2", "postcss-overflow-shorthand": "^3.0.3", "postcss-page-break": "^3.0.4", @@ -26586,17 +26675,17 @@ } }, "string.prototype.matchall": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", - "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", + "regexp.prototype.flags": "^1.4.1", "side-channel": "^1.0.4" } }, @@ -27047,13 +27136,13 @@ "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" }, "tsconfig-paths": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz", - "integrity": "sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "requires": { "@types/json5": "^0.0.29", "json5": "^1.0.1", - "minimist": "^1.2.0", + "minimist": "^1.2.6", "strip-bom": "^3.0.0" }, "dependencies": { @@ -27368,9 +27457,9 @@ }, "dependencies": { "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -27442,9 +27531,9 @@ }, "dependencies": { "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -27677,9 +27766,9 @@ } }, "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", From 14d3c5e93ea6f9e16fc6c8774c9beaaf164d4de5 Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Tue, 22 Mar 2022 20:31:43 -0400 Subject: [PATCH 09/20] Changelog --- docs/releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/releases.md b/docs/releases.md index bb3fd4f5..2e3c984d 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -14,6 +14,7 @@ and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/release Bugs: * IllegalStateException: Failed to build unique file ([#177](https://github.com/binwiederhier/ntfy/issues/177), thanks to [@Fallenbagel](https://github.com/Fallenbagel) for reporting) +* SQLiteConstraintException: Crash during UP registration ([#185](https://github.com/binwiederhier/ntfy/issues/185)) Thanks: From 806893962c0911eca5d8669f7c492fa00a27568c Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Wed, 23 Mar 2022 11:02:12 -0400 Subject: [PATCH 10/20] Changelog --- docs/releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/releases.md b/docs/releases.md index 2e3c984d..c0946d27 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -15,6 +15,7 @@ Bugs: * IllegalStateException: Failed to build unique file ([#177](https://github.com/binwiederhier/ntfy/issues/177), thanks to [@Fallenbagel](https://github.com/Fallenbagel) for reporting) * SQLiteConstraintException: Crash during UP registration ([#185](https://github.com/binwiederhier/ntfy/issues/185)) +* Refresh preferences screen after settings import (#183, thanks to [@cmeis](https://github.com/cmeis) for reporting) Thanks: From b409c89d3b2108cb9b3e12d5c40b9a650ba0054b Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Wed, 23 Mar 2022 14:29:55 -0400 Subject: [PATCH 11/20] Do not allow comma in topic name in publish via GET endpoint (no ticket) --- docs/releases.md | 10 ++++++++-- server/server.go | 20 ++++++++++---------- server/server_test.go | 8 ++++++++ 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/docs/releases.md b/docs/releases.md index c0946d27..d09dcd0f 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -11,17 +11,23 @@ and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/release * Download attachments to cache folder ([#181](https://github.com/binwiederhier/ntfy/issues/181)) * Regularly delete attachments for deleted notifications ([#142](https://github.com/binwiederhier/ntfy/issues/142)) -Bugs: +**Bugs:** * IllegalStateException: Failed to build unique file ([#177](https://github.com/binwiederhier/ntfy/issues/177), thanks to [@Fallenbagel](https://github.com/Fallenbagel) for reporting) * SQLiteConstraintException: Crash during UP registration ([#185](https://github.com/binwiederhier/ntfy/issues/185)) * Refresh preferences screen after settings import (#183, thanks to [@cmeis](https://github.com/cmeis) for reporting) -Thanks: +**Thanks:** * Many thanks to [@cmeis](https://github.com/cmeis), [@Fallenbagel](https://github.com/Fallenbagel), [@Joeharrison94](https://github.com/Joeharrison94), and [@rogeliodh](https://github.com/rogeliodh) for input on the new attachment logic, and for testing the release +## ntfy server v1.19.0 (UNRELEASED) + +**Bugs:** + +* Do not allow comma in topic name in publish via GET endpoint (no ticket) + --> ## ntfy server v1.18.1 diff --git a/server/server.go b/server/server.go index a0de013d..0e81cb63 100644 --- a/server/server.go +++ b/server/server.go @@ -55,15 +55,15 @@ type handleFunc func(http.ResponseWriter, *http.Request, *visitor) error var ( // If changed, don't forget to update Android App and auth_sqlite.go - topicRegex = regexp.MustCompile(`^[-_A-Za-z0-9]{1,64}$`) // No /! - topicPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}$`) // Regex must match JS & Android app! - extTopicPathRegex = regexp.MustCompile(`^/[^/]+\.[^/]+/[-_A-Za-z0-9]{1,64}$`) // Extended topic path, for web-app, e.g. /example.com/mytopic - jsonPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/json$`) - ssePathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/sse$`) - rawPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/raw$`) - wsPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/ws$`) - authPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/auth$`) - publishPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/(publish|send|trigger)$`) + topicRegex = regexp.MustCompile(`^[-_A-Za-z0-9]{1,64}$`) // No /! + topicPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}$`) // Regex must match JS & Android app! + externalTopicPathRegex = regexp.MustCompile(`^/[^/]+\.[^/]+/[-_A-Za-z0-9]{1,64}$`) // Extended topic path, for web-app, e.g. /example.com/mytopic + jsonPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/json$`) + ssePathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/sse$`) + rawPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/raw$`) + wsPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/ws$`) + authPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/auth$`) + publishPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}/(publish|send|trigger)$`) webConfigPath = "/config.js" staticRegex = regexp.MustCompile(`^/static/.+`) @@ -293,7 +293,7 @@ func (s *Server) handleInternal(w http.ResponseWriter, r *http.Request, v *visit return s.limitRequests(s.authRead(s.handleSubscribeWS))(w, r, v) } else if r.Method == http.MethodGet && authPathRegex.MatchString(r.URL.Path) { return s.limitRequests(s.authRead(s.handleTopicAuth))(w, r, v) - } else if r.Method == http.MethodGet && (topicPathRegex.MatchString(r.URL.Path) || extTopicPathRegex.MatchString(r.URL.Path)) { + } else if r.Method == http.MethodGet && (topicPathRegex.MatchString(r.URL.Path) || externalTopicPathRegex.MatchString(r.URL.Path)) { return s.handleTopic(w, r) } return errHTTPNotFound diff --git a/server/server_test.go b/server/server_test.go index e5106d9c..0827cc90 100644 --- a/server/server_test.go +++ b/server/server_test.go @@ -203,6 +203,14 @@ func TestServer_PublishPriority(t *testing.T) { require.Equal(t, 40007, toHTTPError(t, response.Body.String()).Code) } +func TestServer_PublishGETOnlyOneTopic(t *testing.T) { + // This tests a bug that allowed publishing topics with a comma in the name (no ticket) + + s := newTestServer(t, newTestConfig(t)) + response := request(t, s, "GET", "/mytopic,mytopic2/publish?m=hi", "", nil) + require.Equal(t, 404, response.Code) +} + func TestServer_PublishNoCache(t *testing.T) { s := newTestServer(t, newTestConfig(t)) From 140daec0d3c530d651c814f8b0e1f5e91a1f3598 Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Thu, 24 Mar 2022 13:17:04 -0400 Subject: [PATCH 12/20] Fix date formatting issue in example --- web/src/components/ActionBar.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/web/src/components/ActionBar.js b/web/src/components/ActionBar.js index ca0c8f10..1f9ca7bd 100644 --- a/web/src/components/ActionBar.js +++ b/web/src/components/ActionBar.js @@ -121,13 +121,16 @@ const SettingsIcons = (props) => { "Titles are optional, did you know that?", "ntfy is open source, and will always be free. Cool, right?", "I don't really like apples", - "My favorite TV show is The Wire. You should watch it!" + "My favorite TV show is The Wire. You should watch it!", + "You can attach files and URLs to messages too", + "You can delay messages up to 3 days" ])[0]; + const nowSeconds = Math.round(Date.now()/1000); const message = shuffle([ - `Hello friend, this is a test notification from ntfy web. It's ${formatShortDateTime(Date.now())} right now. Is that early or late?`, + `Hello friend, this is a test notification from ntfy web. It's ${formatShortDateTime(nowSeconds)} right now. Is that early or late?`, `So I heard you like ntfy? If that's true, go to GitHub and star it, or to the Play store and rate it. Thanks! Oh yeah, this is a test notification.`, `It's almost like you want to hear what I have to say. I'm not even a machine. I'm just a sentence that Phil typed on a random Thursday.`, - `Alright then, it's ${formatShortDateTime(Date.now())} already. Boy oh boy, where did the time go? I hope you're alright, friend.`, + `Alright then, it's ${formatShortDateTime(nowSeconds)} already. Boy oh boy, where did the time go? I hope you're alright, friend.`, `There are nine million bicycles in Beijing That's a fact; It's a thing we can't deny. I wonder if that's true ...`, `I'm really excited that you're trying out ntfy. Did you know that there are a few public topics, such as ntfy.sh/stats and ntfy.sh/announcements.`, `It's interesting to hear what people use ntfy for. I've heard people talk about using it for so many cool things. What do you use it for?` From a222f64ee4cafbcdec19619aaffbcf3f8d9cb22d Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Thu, 24 Mar 2022 19:23:30 -0400 Subject: [PATCH 13/20] Hopefully fix the build --- requirements.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index 246f8923..d40f078c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,8 +1,5 @@ # The documentation uses 'mkdocs', which is written in Python -# See https://github.com/squidfunk/mkdocs-material/issues/2030 -jinja2>=2.11.1 - # mkdocs mkdocs mkdocs-material From ee0f448d86339b54d04fa39dfac8e1787b2afa69 Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Thu, 24 Mar 2022 19:25:41 -0400 Subject: [PATCH 14/20] Another try --- requirements.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/requirements.txt b/requirements.txt index d40f078c..78799439 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,8 @@ # The documentation uses 'mkdocs', which is written in Python +# See https://github.com/squidfunk/mkdocs-material/issues/2030 +jinja2>=2.11.1,<3.1 + # mkdocs mkdocs mkdocs-material From 5a99fe8ba2646ecc2948dfeb3413ddacf73740ea Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Thu, 24 Mar 2022 19:27:07 -0400 Subject: [PATCH 15/20] Try it a better way --- requirements.txt | 6 ------ 1 file changed, 6 deletions(-) diff --git a/requirements.txt b/requirements.txt index 78799439..9c2212a8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,9 +1,3 @@ # The documentation uses 'mkdocs', which is written in Python - -# See https://github.com/squidfunk/mkdocs-material/issues/2030 -jinja2>=2.11.1,<3.1 - -# mkdocs -mkdocs mkdocs-material mkdocs-minify-plugin From 5f508e1839d9940112d8ba9e5636c0530e6078fa Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Fri, 25 Mar 2022 13:51:04 -0400 Subject: [PATCH 16/20] Tiny docs changes --- docs/examples.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/examples.md b/docs/examples.md index fe108182..6fd2733a 100644 --- a/docs/examples.md +++ b/docs/examples.md @@ -132,9 +132,9 @@ Some simple bash scripts to achieve this are kindly provided in [nickexyz's repo ## Node-RED You can use the HTTP request node to send messages with [Node-RED](https://nodered.org), some examples: -Example: Send a message +
-Expand +Example: Send a message (click to expand) ``` [ @@ -222,10 +222,8 @@ Example: Send a message ![Node red message flow](static/img/nodered-message.png) - -Example: Send a picture
-Expand +Example: Send a picture (click to expand) ``` [ From 03ad5dcff6407f79a6840ed2dcb3d65cb9eaa517 Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Fri, 25 Mar 2022 17:17:24 -0400 Subject: [PATCH 17/20] Add Allow-Origin: *, because YOLO --- server/server.go | 1 + 1 file changed, 1 insertion(+) diff --git a/server/server.go b/server/server.go index 0e81cb63..c59d1ca0 100644 --- a/server/server.go +++ b/server/server.go @@ -380,6 +380,7 @@ func (s *Server) handleFile(w http.ResponseWriter, r *http.Request, v *visitor) return errHTTPTooManyRequestsAttachmentBandwidthLimit } w.Header().Set("Content-Length", fmt.Sprintf("%d", stat.Size())) + w.Header().Set("Access-Control-Allow-Origin", "*") // CORS, allow cross-origin requests f, err := os.Open(file) if err != nil { return err From 5dc8031ec91e00609bc83e963d18fc6fc5cec90e Mon Sep 17 00:00:00 2001 From: "Philipp C. Heckel" Date: Fri, 25 Mar 2022 18:54:40 -0400 Subject: [PATCH 18/20] Update README.md --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index af7ef67a..c5bb0a9e 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,11 @@ too. [Building](https://ntfy.sh/docs/develop/) ## Contributing -I welcome any and all contributions. Just create a PR or an issue. +I welcome any and all contributions. Just create a PR or an issue. To contribute code, check out +the [build instructions](https://ntfy.sh/docs/develop/) for the server and the Android app. + +Or, if you'd like to help translate ntfy into your language, you can start immediately in +[Hosted Weblate](https://hosted.weblate.org/projects/ntfy/). ## Contact me You can directly contact me **[on Discord](https://discord.gg/cT7ECsZj9w)** or [on Matrix](https://matrix.to/#/#ntfy:matrix.org) From 4cd4e890fe6bc9d5c64596b8c5cef0dbf803e5db Mon Sep 17 00:00:00 2001 From: "Philipp C. Heckel" Date: Fri, 25 Mar 2022 18:56:22 -0400 Subject: [PATCH 19/20] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index c5bb0a9e..78b9f324 100644 --- a/README.md +++ b/README.md @@ -36,8 +36,7 @@ too. ## Contributing I welcome any and all contributions. Just create a PR or an issue. To contribute code, check out the [build instructions](https://ntfy.sh/docs/develop/) for the server and the Android app. - -Or, if you'd like to help translate ntfy into your language, you can start immediately in +Or, if you'd like to help translate πŸ‡©πŸ‡ͺ πŸ‡ΊπŸ‡Έ πŸ‡§πŸ‡¬, you can start immediately in [Hosted Weblate](https://hosted.weblate.org/projects/ntfy/). ## Contact me From a69397552652ffde6863ae99732eb43b4f1a1dce Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Fri, 25 Mar 2022 21:35:40 -0400 Subject: [PATCH 20/20] Email docs and release notes --- docs/config.md | 38 +++++++++++++++++++++++++++++++++++++- docs/releases.md | 11 +++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/docs/config.md b/docs/config.md index 14c125d4..0c6f6fd2 100644 --- a/docs/config.md +++ b/docs/config.md @@ -346,7 +346,7 @@ statuspage.io (though these days most services also support webhooks and HTTP ca To configure the SMTP server, you must at least set `smtp-server-listen` and `smtp-server-domain`: * `smtp-server-listen` defines the IP address and port the SMTP server will listen on, e.g. `:25` or `1.2.3.4:25` -* `smtp-server-domain` is the e-mail domain, e.g. `ntfy.sh` +* `smtp-server-domain` is the e-mail domain, e.g. `ntfy.sh` (must be identical to MX record, see below) * `smtp-server-addr-prefix` is an optional prefix for the e-mail addresses to prevent spam. If set to `ntfy-`, for instance, only e-mails to `ntfy-$topic@ntfy.sh` will be accepted. If this is not set, all emails to `$topic@ntfy.sh` will be accepted (which may obviously be a spam problem). @@ -369,6 +369,42 @@ configured (in [Amazon Route 53](https://aws.amazon.com/route53/)):
DNS records for incoming mail
+You can check if everything is working correctly by sending an email as raw SMTP via `nc`. Create a text file, e.g. +`email.txt` + +``` +EHLO example.com +MAIL FROM: phil@example.com +RCPT TO: ntfy-mytopic@ntfy.sh +DATA +Subject: Email for you +Content-Type: text/plain; charset="UTF-8" + +Hello from πŸ‡©πŸ‡ͺ +. +``` + +And then send the mail via `nc` like this. If you see any lines starting with `451`, those are errors from the +ntfy server. Read them carefully. + +``` +$ cat email.txt | nc -N ntfy.sh 25 +220 ntfy.sh ESMTP Service Ready +250-Hello example.com +... +250 2.0.0 Roger, accepting mail from +250 2.0.0 I'll make sure gets this +``` + +As for the DNS setup, be sure to verify that `dig MX` and `dig A` are returning results similar to this: + +``` +$ dig MX ntfy.sh +short +10 mx1.ntfy.sh. +$ dig A mx1.ntfy.sh +short +3.139.215.220 +``` + ## Behind a proxy (TLS, etc.) !!! warning If you are running ntfy behind a proxy, you must set the `behind-proxy` flag. Otherwise, all visitors are diff --git a/docs/releases.md b/docs/releases.md index d09dcd0f..2de28bc1 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -10,6 +10,7 @@ and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/release * Download attachments to cache folder ([#181](https://github.com/binwiederhier/ntfy/issues/181)) * Regularly delete attachments for deleted notifications ([#142](https://github.com/binwiederhier/ntfy/issues/142)) +* Translations to different languages ([#188](https://github.com/binwiederhier/ntfy/issues/188), thanks to [@StoyanDimitrov](https://github.com/StoyanDimitrov)) **Bugs:** @@ -17,6 +18,11 @@ and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/release * SQLiteConstraintException: Crash during UP registration ([#185](https://github.com/binwiederhier/ntfy/issues/185)) * Refresh preferences screen after settings import (#183, thanks to [@cmeis](https://github.com/cmeis) for reporting) +**Translations:** + +* Bulgarian (thanks to [@StoyanDimitrov](https://github.com/StoyanDimitrov)) +* Spanish (thanks to [@rogeliodh](https://github.com/rogeliodh)) + **Thanks:** * Many thanks to [@cmeis](https://github.com/cmeis), [@Fallenbagel](https://github.com/Fallenbagel), [@Joeharrison94](https://github.com/Joeharrison94), @@ -27,6 +33,11 @@ and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/release **Bugs:** * Do not allow comma in topic name in publish via GET endpoint (no ticket) +* Add "Access-Control-Allow-Origin: *" for attachments (no ticket, thanks to @FrameXX) + +**Documentation:** + +* Improved [e-mail publishing](config.md#e-mail-publishing) documentation -->