1
0
mirror of https://github.com/tormachris/cf-workers-status-page.git synced 2025-09-21 16:35:15 +02:00

27 Commits
v1.2.0 ... e/w2

Author SHA1 Message Date
4394c872f5 fail open on kv create 2022-05-06 13:30:06 +01:00
998e3a9db9 fix wrangler version 2022-05-06 13:26:23 +01:00
beb4dc4220 test wrangler2 actions 2022-05-06 13:21:58 +01:00
7813ff93ac Replace all '-' for monitor name.
Signed-off-by: corvofeng <corvofeng@gmail.com>
2022-02-15 22:08:15 +00:00
596d30389f Increment failed checks at least once
Currently, a failure is only recorded if a monitor transitions from operational
to not in a given day. If the monitor is non-operational at the start of the day,
or remains non-operational for a full day, the failure will not be recorded.
2021-11-18 11:22:15 +00:00
1189e708da Supply fallback text for Slack message
This is used as a plain-text summary of the attachment, e.g. in push notifications.

Docs: https://api.slack.com/reference/messaging/attachments#legacy_fields
2021-10-11 14:21:30 +01:00
de0cfaf504 Update wrangler.toml
Add "compatibility_date" for Cloudflare to prevent jq json parse issues.
2021-10-11 14:20:37 +01:00
f0b27a8446 Add more data centre locations
The full list of locations was generated from the [Cloudflare Status Page](https://www.cloudflarestatus.com/):

```bash
{
  echo 'export const locations = {';
  curl -ks https://www.cloudflarestatus.com/ | grep -- '- (' | while read line; do
    code=$(awk -F '[()]' '{print $2}' <<< "$line");
    city=$(awk -F '[,-]' '{print $1}' <<< "$line");
    echo "  $code: '${city//\'/’}',";
  done | sort;
  echo '}';
} > src/functions/locations.js
```
2021-10-11 14:13:49 +01:00
a8cfe25c9a chore(deps): bump y18n from 4.0.0 to 4.0.3
Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.3.
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/y18n-v4.0.3/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/compare/v4.0.0...y18n-v4.0.3)

---
updated-dependencies:
- dependency-name: y18n
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-23 09:34:13 +02:00
df64cdc113 chore(deps): bump color-string from 1.5.4 to 1.6.0
Bumps [color-string](https://github.com/Qix-/color-string) from 1.5.4 to 1.6.0.
- [Release notes](https://github.com/Qix-/color-string/releases)
- [Changelog](https://github.com/Qix-/color-string/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Qix-/color-string/compare/1.5.4...1.6.0)

---
updated-dependencies:
- dependency-name: color-string
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-23 09:34:07 +02:00
d87223f292 Added documentation 2021-07-23 09:19:34 +02:00
a5a65a7582 Updated config to reflect linkable option 2021-07-23 09:19:34 +02:00
23673587c2 Update monitorCard.js 2021-07-23 09:19:34 +02:00
fa9d865cc1 Added documentation on how to get running locally 2021-07-23 09:17:54 +02:00
0fac88d7f8 chore(deps): bump ws from 6.2.1 to 6.2.2
Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/6.2.1...6.2.2)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-08 22:48:47 +02:00
7a9a2f90ef chore(deps-dev): bump postcss from 8.1.8 to 8.2.10
Bumps [postcss](https://github.com/postcss/postcss) from 8.1.8 to 8.2.10.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.1.8...8.2.10)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-08 22:48:39 +02:00
c337b55c37 chore(deps): bump hosted-git-info from 2.8.8 to 2.8.9
Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9.
- [Release notes](https://github.com/npm/hosted-git-info/releases)
- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)
- [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.8...v2.8.9)

---
updated-dependencies:
- dependency-name: hosted-git-info
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-08 22:48:22 +02:00
f0a4974e92 chore(deps): bump elliptic from 6.5.3 to 6.5.4
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4)

---
updated-dependencies:
- dependency-name: elliptic
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-08 22:48:17 +02:00
cb15831994 chore(deps): bump browserslist from 4.14.7 to 4.16.6
Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.14.7 to 4.16.6.
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/browserslist/browserslist/compare/4.14.7...4.16.6)

---
updated-dependencies:
- dependency-name: browserslist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-08 22:48:04 +02:00
2868f9820c chore(deps): bump lodash from 4.17.20 to 4.17.21
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21)

---
updated-dependencies:
- dependency-name: lodash
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-08 22:47:49 +02:00
48d78d117a chore(deps): bump url-parse from 1.4.7 to 1.5.1
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.4.7 to 1.5.1.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.4.7...1.5.1)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-08 22:47:25 +02:00
c7f642cd8c chore(deps): bump dns-packet from 1.3.1 to 1.3.4
Bumps [dns-packet](https://github.com/mafintosh/dns-packet) from 1.3.1 to 1.3.4.
- [Release notes](https://github.com/mafintosh/dns-packet/releases)
- [Changelog](https://github.com/mafintosh/dns-packet/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mafintosh/dns-packet/compare/v1.3.1...v1.3.4)

---
updated-dependencies:
- dependency-name: dns-packet
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-08 22:47:16 +02:00
54bdd42fc1 chore(deps): bump ssri from 6.0.1 to 6.0.2
Bumps [ssri](https://github.com/npm/ssri) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/npm/ssri/releases)
- [Changelog](https://github.com/npm/ssri/blob/v6.0.2/CHANGELOG.md)
- [Commits](https://github.com/npm/ssri/compare/v6.0.1...v6.0.2)

---
updated-dependencies:
- dependency-name: ssri
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-08 22:47:05 +02:00
bbf9def61f Update README.md 2021-03-07 23:43:12 +01:00
ccec34ff5d Add Discord notification (#35)
add discord notification
2021-02-23 13:32:08 +01:00
ee586c9e64 Add focus ring and remove default focus outline 2021-01-29 18:33:26 +01:00
8d70a0f992 Create FUNDING.yml 2021-01-23 20:20:18 +01:00
14 changed files with 425 additions and 107 deletions

4
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,4 @@
# These are supported funding model platforms
github: eidam
ko_fi: eidam

View File

@ -4,6 +4,7 @@ on:
push: push:
branches: branches:
- main - main
- e/w2
repository_dispatch: repository_dispatch:
schedule: schedule:
- cron: '0 0 1 * *' - cron: '0 0 1 * *'
@ -22,11 +23,13 @@ jobs:
env: env:
NODE_ENV: production NODE_ENV: production
- name: Publish - name: Publish
uses: cloudflare/wrangler-action@1.3.0 uses: WalshyDev/wrangler-action@walshy/pages-996-support-wrangler2
with: with:
apiToken: ${{ secrets.CF_API_TOKEN }} apiToken: ${{ secrets.CF_API_TOKEN }}
command: publish --env production
wranglerVersion: beta
preCommands: | preCommands: |
wrangler kv:namespace create KV_STATUS_PAGE wrangler kv:namespace create KV_STATUS_PAGE || echo "KV namespace already exists"
apt-get update && apt-get install -y jq apt-get update && apt-get install -y jq
export KV_NAMESPACE_ID=$(wrangler kv:namespace list | jq -c 'map(select(.title | contains("KV_STATUS_PAGE")))' | jq -r ".[0].id") export KV_NAMESPACE_ID=$(wrangler kv:namespace list | jq -c 'map(select(.title | contains("KV_STATUS_PAGE")))' | jq -r ".[0].id")
echo "[env.production]" >> wrangler.toml echo "[env.production]" >> wrangler.toml
@ -34,15 +37,17 @@ jobs:
[ -z "$SECRET_SLACK_WEBHOOK_URL" ] && echo "Secret SECRET_SLACK_WEBHOOK_URL not set, creating dummy one..." && SECRET_SLACK_WEBHOOK_URL="default-gh-action-secret" || true [ -z "$SECRET_SLACK_WEBHOOK_URL" ] && echo "Secret SECRET_SLACK_WEBHOOK_URL not set, creating dummy one..." && SECRET_SLACK_WEBHOOK_URL="default-gh-action-secret" || true
[ -z "$SECRET_TELEGRAM_API_TOKEN" ] && echo "Secret SECRET_TELEGRAM_API_TOKEN not set, creating dummy one..." && SECRET_TELEGRAM_API_TOKEN="default-gh-action-secret" || true [ -z "$SECRET_TELEGRAM_API_TOKEN" ] && echo "Secret SECRET_TELEGRAM_API_TOKEN not set, creating dummy one..." && SECRET_TELEGRAM_API_TOKEN="default-gh-action-secret" || true
[ -z "$SECRET_TELEGRAM_CHAT_ID" ] && echo "Secret SECRET_TELEGRAM_CHAT_ID not set, creating dummy one..." && SECRET_TELEGRAM_CHAT_ID="default-gh-action-secret" || true [ -z "$SECRET_TELEGRAM_CHAT_ID" ] && echo "Secret SECRET_TELEGRAM_CHAT_ID not set, creating dummy one..." && SECRET_TELEGRAM_CHAT_ID="default-gh-action-secret" || true
[ -z "$SECRET_DISCORD_WEBHOOK_URL" ] && echo "Secret SECRET_DISCORD_WEBHOOK_URL not set, creating dummy one..." && SECRET_DISCORD_WEBHOOK_URL="default-gh-action-secret" || true
postCommands: | postCommands: |
yarn kv-gc yarn kv-gc
secrets: | secrets: |
SECRET_SLACK_WEBHOOK_URL SECRET_SLACK_WEBHOOK_URL
SECRET_TELEGRAM_API_TOKEN SECRET_TELEGRAM_API_TOKEN
SECRET_TELEGRAM_CHAT_ID SECRET_TELEGRAM_CHAT_ID
environment: production SECRET_DISCORD_WEBHOOK_URL
env: env:
CF_ACCOUNT_ID: ${{ secrets.CF_ACCOUNT_ID }} CF_ACCOUNT_ID: ${{ secrets.CF_ACCOUNT_ID }}
SECRET_SLACK_WEBHOOK_URL: ${{secrets.SECRET_SLACK_WEBHOOK_URL}} SECRET_SLACK_WEBHOOK_URL: ${{secrets.SECRET_SLACK_WEBHOOK_URL}}
SECRET_TELEGRAM_API_TOKEN: ${{secrets.SECRET_TELEGRAM_API_TOKEN}} SECRET_TELEGRAM_API_TOKEN: ${{secrets.SECRET_TELEGRAM_API_TOKEN}}
SECRET_TELEGRAM_CHAT_ID: ${{secrets.SECRET_TELEGRAM_CHAT_ID}} SECRET_TELEGRAM_CHAT_ID: ${{secrets.SECRET_TELEGRAM_CHAT_ID}}
SECRET_DISCORD_WEBHOOK_URL: ${{secrets.SECRET_DISCORD_WEBHOOK_URL}}

View File

@ -19,6 +19,7 @@ Also, prepare the following secrets
- Cloudflare API token with `Edit Cloudflare Workers` permissions - Cloudflare API token with `Edit Cloudflare Workers` permissions
- Slack incoming webhook \(optional\) - Slack incoming webhook \(optional\)
- Discord incoming webhook \(optional\)
## Getting started ## Getting started
@ -38,6 +39,9 @@ You can either deploy with **Cloudflare Deploy Button** using GitHub Actions or
- Name: SECRET_SLACK_WEBHOOK_URL (optional) - Name: SECRET_SLACK_WEBHOOK_URL (optional)
- Value: your-slack-webhook-url - Value: your-slack-webhook-url
- Name: SECRET_DISCORD_WEBHOOK_URL (optional)
- Value: your-discord-webhook-url
``` ```
3. Navigate to the **Actions** settings in your repository and enable them 3. Navigate to the **Actions** settings in your repository and enable them
@ -46,7 +50,7 @@ You can either deploy with **Cloudflare Deploy Button** using GitHub Actions or
```yaml ```yaml
settings: settings:
title: 'Status Page' title: 'Status Page'
url: 'https://status-page.eidam.dev' # used for Slack messages url: 'https://status-page.eidam.dev' # used for Slack & Discord messages
logo: logo-192x192.png # image in ./public/ folder logo: logo-192x192.png # image in ./public/ folder
daysInHistogram: 90 # number of days you want to display in histogram daysInHistogram: 90 # number of days you want to display in histogram
collectResponseTimes: false # experimental feature, enable only for <5 monitors or on paid plans collectResponseTimes: false # experimental feature, enable only for <5 monitors or on paid plans
@ -70,6 +74,7 @@ You can either deploy with **Cloudflare Deploy Button** using GitHub Actions or
method: GET # default=GET method: GET # default=GET
expectStatus: 200 # operational status, default=200 expectStatus: 200 # operational status, default=200
followRedirect: false # should fetch follow redirects, default=false followRedirect: false # should fetch follow redirects, default=false
linkable: false # should the titles be links to the service, default=true
``` ```
5. Push to `main` branch to trigger the deployment 5. Push to `main` branch to trigger the deployment
@ -96,6 +101,7 @@ You can clone the repository yourself and use Wrangler CLI to develop/deploy, ex
- create KV namespace and add the `KV_STATUS_PAGE` binding to [wrangler.toml](./wrangler.toml) - create KV namespace and add the `KV_STATUS_PAGE` binding to [wrangler.toml](./wrangler.toml)
- create Worker secrets _\(optional\)_ - create Worker secrets _\(optional\)_
- `SECRET_SLACK_WEBHOOK_URL` - `SECRET_SLACK_WEBHOOK_URL`
- `SECRET_DISCORD_WEBHOOK_URL`
## Workers KV free tier ## Workers KV free tier
@ -115,6 +121,50 @@ The Workers Free plan includes limited KV usage, but the quota is sufficient for
## Future plans ## Future plans
Stay tuned for more features coming in, like leveraging the fact that CRON instances are scheduled around the world during the day WIP - Support for Durable Objects - Cloudflare's product for low-latency coordination and consistent storage for the Workers platform. There is a working prototype, however, we are waiting for at least open beta.
so we can monitor the response times. However, we will most probably wait for the [Durable Objects](https://blog.cloudflare.com/introducing-workers-durable-objects/) to be in open beta
as they are better fit to reliably store such info. There is also a managed version of this project, currently in beta. Feel free to check it out https://statusflare.com (https://twitter.com/statusflare_com).
## Running project locally
**Requirements**
- Linux or WSL
- Yarn (`npm i -g yarn`)
- Node 14+
### Steps to get server up and running
**Install wrangler**
```
npm i -g wrangler
```
**Login With Wrangler to Cloudflare**
```
wrangler login
```
**Create your KV namespace in cloudflare**
```
On the workers page navigate to KV, and create a namespace
```
**Update your wrangler.toml with**
```
kv-namespaces = [{binding="KV_STATUS_PAGE", id="<KV_ID>", preview_id="<KV_ID>"}]
```
_Note: you may need to change `kv-namespaces` to `kv_namespaces`_
**Install packages**
```
yarn install
```
**Create CSS**
```
yarn run css
```
**Run**
```
yarn run dev
```
_Note: If the styles do not come through try using `localhost:8787` instead of `localhost:8080`_

View File

@ -22,6 +22,7 @@ monitors:
method: GET # default=GET method: GET # default=GET
expectStatus: 200 # operational status, default=200 expectStatus: 200 # operational status, default=200
followRedirect: false # should fetch follow redirects, default=false followRedirect: false # should fetch follow redirects, default=false
linkable: false # allows the title to be a link, default=true
- id: www-cloudflare-com - id: www-cloudflare-com
name: www.cloudflare.com name: www.cloudflare.com
@ -29,6 +30,7 @@ monitors:
url: 'https://www.cloudflare.com' url: 'https://www.cloudflare.com'
method: GET method: GET
expectStatus: 200 expectStatus: 200
linkable: true # allows the title to be a link, default=true
- id: blog-cloudflare-com - id: blog-cloudflare-com
name: The Cloudflare Blog name: The Cloudflare Blog

View File

@ -23,7 +23,7 @@
"devDependencies": { "devDependencies": {
"autoprefixer": "^10.0.2", "autoprefixer": "^10.0.2",
"node-fetch": "^2.6.1", "node-fetch": "^2.6.1",
"postcss": "^8.1.8", "postcss": "^8.2.10",
"postcss-cli": "^8.3.0", "postcss-cli": "^8.3.0",
"prettier": "^2.2.0", "prettier": "^2.2.0",
"tailwindcss": "^2.0.1", "tailwindcss": "^2.0.1",

View File

@ -30,9 +30,20 @@ export default function MonitorCard({ key, monitor, data }) {
</div> </div>
</div> </div>
)} )}
{(monitor.linkable === true || monitor.linkable === undefined) ?
(
<a href={monitor.url} target="_blank"> <a href={monitor.url} target="_blank">
<div className="text-xl">{monitor.name}</div> <div className="text-xl">{monitor.name}</div>
</a> </a>
)
:
(
<span>
<div className="text-xl">{monitor.name}</div>
</span>
)
}
</div> </div>
<MonitorStatusLabel kvMonitor={data} /> <MonitorStatusLabel kvMonitor={data} />
</div> </div>

View File

@ -1,4 +1,4 @@
import { locations } from '../functions/helpers' import { locations } from '../functions/locations'
export default function MonitorDayAverage({ location, avg }) { export default function MonitorDayAverage({ location, avg }) {
return ( return (

View File

@ -1,5 +1,5 @@
import config from '../../config.yaml' import config from '../../config.yaml'
import { locations } from '../functions/helpers' import { locations } from '../functions/locations'
const classes = { const classes = {
green: green:

View File

@ -45,11 +45,11 @@ export default function ThemeSwitcher() {
setDark(!darkmode) setDark(!darkmode)
} }
const buttonColor = darkmode ? 'bg-gray-700' : 'bg-gray-200' const buttonColor = darkmode ? 'bg-gray-700 focus:ring-gray-700' : 'bg-gray-200 focus:ring-gray-200'
return ( return (
<button <button
className={`${buttonColor} rounded-full h-7 w-7 mr-4`} className={`${buttonColor} rounded-full h-7 w-7 mr-4 focus:outline-none focus:ring-2 focus:ring-opacity-50`}
onClick={changeTheme} onClick={changeTheme}
> >
{darkmode ? sunIcon : moonIcon} {darkmode ? sunIcon : moonIcon}

View File

@ -6,6 +6,7 @@ import {
getCheckLocation, getCheckLocation,
getKVMonitors, getKVMonitors,
setKVMonitors, setKVMonitors,
notifyDiscord,
} from './helpers' } from './helpers'
function getDate() { function getDate() {
@ -88,6 +89,15 @@ export async function processCronTrigger(event) {
event.waitUntil(notifyTelegram(monitor, monitorOperational)) event.waitUntil(notifyTelegram(monitor, monitorOperational))
} }
// Send Discord message on monitor change
if (
monitorStatusChanged &&
typeof SECRET_DISCORD_WEBHOOK_URL !== 'undefined' &&
SECRET_DISCORD_WEBHOOK_URL !== 'default-gh-action-secret'
) {
event.waitUntil(notifyDiscord(monitor, monitorOperational))
}
// make sure checkDay exists in checks in cases when needed // make sure checkDay exists in checks in cases when needed
if ( if (
(config.settings.collectResponseTimes || !monitorOperational) && (config.settings.collectResponseTimes || !monitorOperational) &&
@ -131,8 +141,8 @@ export async function processCronTrigger(event) {
// Save allOperational to false // Save allOperational to false
monitorsState.lastUpdate.allOperational = false monitorsState.lastUpdate.allOperational = false
// Increment failed checks, only on status change (maybe call it .incidents instead?) // Increment failed checks on status change or first fail of the day (maybe call it .incidents instead?)
if (monitorStatusChanged) { if (monitorStatusChanged || monitorsState.monitors[monitor.id].checks[checkDay].fails == 0) {
monitorsState.monitors[monitor.id].checks[checkDay].fails++ monitorsState.monitors[monitor.id].checks[checkDay].fails++
} }
} }

View File

@ -3,13 +3,6 @@ import { useEffect, useState } from 'react'
const kvDataKey = 'monitors_data_v1_1' const kvDataKey = 'monitors_data_v1_1'
export const locations = {
WAW: 'Warsaw',
SCL: 'Santiago de Chile',
MEL: 'Melbourne',
SIN: 'Singapore',
}
export async function getKVMonitors() { export async function getKVMonitors() {
// trying both to see performance difference // trying both to see performance difference
return KV_STATUS_PAGE.get(kvDataKey, 'json') return KV_STATUS_PAGE.get(kvDataKey, 'json')
@ -34,6 +27,7 @@ export async function notifySlack(monitor, operational) {
const payload = { const payload = {
attachments: [ attachments: [
{ {
fallback: `Monitor ${monitor.name} changed status to ${getOperationalLabel(operational)}`,
color: operational ? '#36a64f' : '#f2c744', color: operational ? '#36a64f' : '#f2c744',
blocks: [ blocks: [
{ {
@ -70,7 +64,7 @@ export async function notifySlack(monitor, operational) {
} }
export async function notifyTelegram(monitor, operational) { export async function notifyTelegram(monitor, operational) {
const text = `Monitor *${monitor.name.replace( const text = `Monitor *${monitor.name.replaceAll(
'-', '-',
'\\-', '\\-',
)}* changed status to *${getOperationalLabel(operational)}* )}* changed status to *${getOperationalLabel(operational)}*
@ -90,6 +84,30 @@ export async function notifyTelegram(monitor, operational) {
}) })
} }
// Visualize your payload using https://leovoel.github.io/embed-visualizer/
export async function notifyDiscord(monitor, operational) {
const payload = {
username: `${config.settings.title}`,
avatar_url: `${config.settings.url}/${config.settings.logo}`,
embeds: [
{
title: `${monitor.name} is ${getOperationalLabel(operational)} ${
operational ? ':white_check_mark:' : ':x:'
}`,
description: `\`${monitor.method ? monitor.method : 'GET'} ${
monitor.url
}\` - :eyes: [Status Page](${config.settings.url})`,
color: operational ? 3581519 : 13632027,
},
],
}
return fetch(SECRET_DISCORD_WEBHOOK_URL, {
body: JSON.stringify(payload),
method: 'POST',
headers: { 'Content-Type': 'application/json' },
})
}
export function useKeyPress(targetKey) { export function useKeyPress(targetKey) {
const [keyPressed, setKeyPressed] = useState(false) const [keyPressed, setKeyPressed] = useState(false)

226
src/functions/locations.js Normal file
View File

@ -0,0 +1,226 @@
export const locations = {
ADL: 'Adelaide',
AKL: 'Auckland',
ALG: 'Algiers',
AMM: 'Amman',
AMS: 'Amsterdam',
ARI: 'Arica',
ARN: 'Stockholm',
ASU: 'Asunción',
ATH: 'Athens',
ATL: 'Atlanta',
BAH: 'Manama',
BCN: 'Barcelona',
BEG: 'Belgrade',
BEL: 'Belém',
BEY: 'Beirut',
BGW: 'Baghdad',
BKK: 'Bangkok',
BLR: 'Bangalore',
BNA: 'Nashville',
BNE: 'Brisbane',
BNU: 'Blumenau',
BOG: 'Bogotá',
BOM: 'Mumbai',
BOS: 'Boston',
BRU: 'Brussels',
BSB: 'Brasilia',
BUD: 'Budapest',
BUF: 'Buffalo',
BWN: 'Bandar Seri Begawan',
CAN: 'Guangzhou',
CBR: 'Canberra',
CCU: 'Kolkata',
CDG: 'Paris',
CEB: 'Cebu',
CFC: 'Caçador',
CGK: 'Jakarta',
CGO: 'Zhengzhou',
CGP: 'Chittagong',
CKG: 'Chongqing',
CLT: 'Charlotte',
CMB: 'Colombo',
CMH: 'Columbus',
CMN: 'Casablanca',
CNF: 'Belo Horizonte',
CPH: 'Copenhagen',
CPT: 'Cape Town',
CSX: 'Zhuzhou',
CTU: 'Chengdu',
CUR: 'Willemstad',
CWB: 'Curitiba',
DAC: 'Dhaka',
DAR: 'Dar Es Salaam',
DEL: 'New Delhi',
DEN: 'Denver',
DFW: 'Dallas',
DKR: 'Dakar',
DME: 'Moscow',
DMM: 'Dammam',
DOH: 'Doha',
DTW: 'Detroit',
DUB: 'Dublin',
DUR: 'Durban',
DUS: 'Düsseldorf',
DXB: 'Dubai',
EDI: 'Edinburgh',
EVN: 'Yerevan',
EWR: 'Newark',
EZE: 'Buenos Aires',
FCO: 'Rome',
FLN: 'Florianopolis',
FOR: 'Fortaleza',
FRA: 'Frankfurt',
GIG: 'Rio de Janeiro',
GND: 'St. Georges',
GOT: 'Gothenburg',
GRU: 'São Paulo',
GUA: 'Guatemala City',
GVA: 'Geneva',
GYD: 'Baku',
GYE: 'Guayaquil',
HAM: 'Hamburg',
HAN: 'Hanoi',
HEL: 'Helsinki',
HKG: 'Hong Kong ',
HNL: 'Honolulu',
HRE: 'Harare',
HYD: 'Hyderabad',
IAD: 'Ashburn',
IAH: 'Houston',
ICN: 'Seoul',
IND: 'Indianapolis',
ISB: 'Islamabad',
IST: 'Istanbul',
ITJ: 'Itajaí',
JAX: 'Jacksonville',
JIB: 'Djibouti City',
JNB: 'Johannesburg',
JSR: 'Jashore',
KBP: 'Kyiv',
KEF: 'Reykjavík',
KGL: 'Kigali',
KHI: 'Karachi',
KIV: 'Chișinău',
KIX: 'Osaka',
KJA: 'Krasnoyarsk',
KTM: 'Kathmandu',
KUL: 'Kuala Lumpur',
KWI: 'Kuwait City',
LAD: 'Luanda',
LAS: 'Las Vegas',
LAX: 'Los Angeles',
LCA: 'Nicosia',
LED: 'Saint Petersburg',
LHE: 'Lahore',
LHR: 'London',
LIM: 'Lima',
LIS: 'Lisbon',
LOS: 'Lagos',
LUX: 'Luxembourg City',
MAA: 'Chennai',
MAD: 'Madrid',
MAN: 'Manchester',
MBA: 'Mombasa',
MCI: 'Kansas City',
MCT: 'Muscat',
MDE: 'Medellín',
MEL: 'Melbourne',
MEM: 'Memphis',
MEX: 'Mexico City',
MFE: 'McAllen',
MFM: 'Macau ',
MGM: 'Montgomery',
MIA: 'Miami',
MLE: 'Malé',
MNL: 'Manila',
MPM: 'Maputo',
MRS: 'Marseille',
MRU: 'Port Louis',
MSP: 'Minneapolis',
MUC: 'Munich',
MXP: 'Milan',
NAG: 'Nagpur',
NBG: 'Ningbo',
NBO: 'Nairobi',
NOU: 'Noumea',
NRT: 'Tokyo',
OMA: 'Omaha',
ORD: 'Chicago',
ORF: 'Norfolk',
OSL: 'Oslo',
OTP: 'Bucharest',
PAP: 'Port',
PBH: 'Thimphu',
PBM: 'Paramaribo',
PDX: 'Portland',
PER: 'Perth',
PHL: 'Philadelphia',
PHX: 'Phoenix',
PIT: 'Pittsburgh',
PMO: 'Palermo',
PNH: 'Phnom Penh',
POA: 'Porto Alegre',
PRG: 'Prague',
PTY: 'Panama City',
QRO: 'Queretaro',
QWJ: 'Americana',
RAO: 'Ribeirao Preto',
RGN: 'Yangon',
RIC: 'Richmond',
RIX: 'Riga',
ROB: 'Monrovia',
RUH: 'Riyadh',
RUN: 'Réunion',
SAN: 'San Diego',
SCL: 'Santiago',
SEA: 'Seattle',
SGN: 'Ho Chi Minh City',
SHA: 'Shanghai',
SIN: 'Singapore',
SJC: 'San Jose',
SJO: 'San José',
SJP: 'São José do Rio Preto',
SKG: 'Thessaloniki',
SLC: 'Salt Lake City',
SMF: 'Sacramento',
SOD: 'Sorocaba',
SOF: 'Sofia',
SSA: 'Salvador',
STL: 'St. Louis',
SVX: 'Yekaterinburg',
SYD: 'Sydney',
SZV: 'Suzhou',
TBS: 'Tbilisi',
TGU: 'Tegucigalpa',
TLH: 'Tallahassee',
TLL: 'Tallinn',
TLV: 'Tel Aviv',
TNA: 'Jinan',
TNR: 'Antananarivo',
TPA: 'Tampa',
TPE: 'Taipei ',
TSN: 'Tianjin',
TUN: 'Tunis',
TXL: 'Berlin',
UIO: 'Quito',
ULN: 'Ulaanbaatar',
URT: 'Surat Thani',
VCP: 'Campinas',
VIE: 'Vienna',
VNO: 'Vilnius',
VTE: 'Vientiane',
WAW: 'Warsaw',
WUH: 'Wuhan',
WUX: 'Wuxi',
XIY: 'Xian',
YUL: 'Montréal',
YVR: 'Vancouver',
YWG: 'Winnipeg',
YXE: 'Saskatoon',
YYC: 'Calgary',
YYZ: 'Toronto',
ZAG: 'Zagreb',
ZDM: 'Ramallah ',
ZRH: 'Zürich',
}

View File

@ -3,6 +3,7 @@ workers_dev = true
account_id = "" account_id = ""
type = "webpack" type = "webpack"
webpack_config = "node_modules/flareact/webpack" webpack_config = "node_modules/flareact/webpack"
compatibility_date = "2021-07-23"
[triggers] [triggers]
crons = ["* * * * *"] crons = ["* * * * *"]

155
yarn.lock
View File

@ -1511,10 +1511,10 @@ bluebird@^3.5.5:
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
version "4.11.9" version "4.12.0"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
bn.js@^5.0.0, bn.js@^5.1.1: bn.js@^5.0.0, bn.js@^5.1.1:
version "5.1.3" version "5.1.3"
@ -1585,7 +1585,7 @@ braces@^3.0.1, braces@~3.0.2:
dependencies: dependencies:
fill-range "^7.0.1" fill-range "^7.0.1"
brorand@^1.0.1: brorand@^1.0.1, brorand@^1.1.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
@ -1652,15 +1652,15 @@ browserify-zlib@^0.2.0:
pako "~1.0.5" pako "~1.0.5"
browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.14.6, browserslist@^4.14.7, browserslist@^4.6.4: browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.14.6, browserslist@^4.14.7, browserslist@^4.6.4:
version "4.14.7" version "4.16.6"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.7.tgz#c071c1b3622c1c2e790799a37bb09473a4351cb6" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
integrity sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ== integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
dependencies: dependencies:
caniuse-lite "^1.0.30001157" caniuse-lite "^1.0.30001219"
colorette "^1.2.1" colorette "^1.2.2"
electron-to-chromium "^1.3.591" electron-to-chromium "^1.3.723"
escalade "^3.1.1" escalade "^3.1.1"
node-releases "^1.1.66" node-releases "^1.1.71"
buffer-from@^1.0.0: buffer-from@^1.0.0:
version "1.1.1" version "1.1.1"
@ -1817,10 +1817,10 @@ caniuse-api@^3.0.0:
lodash.memoize "^4.1.2" lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0" lodash.uniq "^4.5.0"
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157: caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157, caniuse-lite@^1.0.30001219:
version "1.0.30001159" version "1.0.30001235"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001159.tgz#bebde28f893fa9594dadcaa7d6b8e2aa0299df20" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001235.tgz#ad5ca75bc5a1f7b12df79ad806d715a43a5ac4ed"
integrity sha512-w9Ph56jOsS8RL20K9cLND3u/+5WASWdhC/PPrf+V3/HsM3uHOavWOR1Xzakbv4Puo/srmPHudkmCRWM7Aq+/UA== integrity sha512-zWEwIVqnzPkSAXOUlQnPW2oKoYb2aLQ4Q5ejdjBcnH63rfypaW34CxaeBn1VMya2XaEU3P/R2qHpWyj+l0BT1A==
chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2" version "2.4.2"
@ -1982,9 +1982,9 @@ color-name@^1.0.0, color-name@~1.1.4:
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
color-string@^1.5.4: color-string@^1.5.4:
version "1.5.4" version "1.6.0"
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312"
integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw== integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==
dependencies: dependencies:
color-name "^1.0.0" color-name "^1.0.0"
simple-swizzle "^0.2.2" simple-swizzle "^0.2.2"
@ -1997,10 +1997,10 @@ color@^3.0.0, color@^3.1.3:
color-convert "^1.9.1" color-convert "^1.9.1"
color-string "^1.5.4" color-string "^1.5.4"
colorette@^1.2.1: colorette@^1.2.1, colorette@^1.2.2:
version "1.2.1" version "1.2.2"
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
commander@^2.20.0: commander@^2.20.0:
version "2.20.3" version "2.20.3"
@ -2612,9 +2612,9 @@ dns-equal@^1.0.0:
integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0=
dns-packet@^1.3.1: dns-packet@^1.3.1:
version "1.3.1" version "1.3.4"
resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f"
integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==
dependencies: dependencies:
ip "^1.1.0" ip "^1.1.0"
safe-buffer "^5.0.1" safe-buffer "^5.0.1"
@ -2684,23 +2684,23 @@ ee-first@1.1.1:
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
electron-to-chromium@^1.3.591: electron-to-chromium@^1.3.723:
version "1.3.602" version "1.3.749"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.602.tgz#a176db985a9826c9a3fbf614d054fc42c5c9f478" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.749.tgz#0ecebc529ceb49dd2a7c838ae425236644c3439a"
integrity sha512-+JbC10U8vpKAqAtrEqORdzaWewRgEj5DY+QQNyP/dxDTshPqqgpjrvt6smewKS/5F3vT5prYgg7/VTxb5FROjw== integrity sha512-F+v2zxZgw/fMwPz/VUGIggG4ZndDsYy0vlpthi3tjmDZlcfbhN5mYW0evXUsBr2sUtuDANFtle410A9u/sd/4A==
elliptic@^6.5.3: elliptic@^6.5.3:
version "6.5.3" version "6.5.4"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
dependencies: dependencies:
bn.js "^4.4.0" bn.js "^4.11.9"
brorand "^1.0.1" brorand "^1.1.0"
hash.js "^1.0.0" hash.js "^1.0.0"
hmac-drbg "^1.0.0" hmac-drbg "^1.0.1"
inherits "^2.0.1" inherits "^2.0.4"
minimalistic-assert "^1.0.0" minimalistic-assert "^1.0.1"
minimalistic-crypto-utils "^1.0.0" minimalistic-crypto-utils "^1.0.1"
emoji-regex@^7.0.1: emoji-regex@^7.0.1:
version "7.0.3" version "7.0.3"
@ -3472,7 +3472,7 @@ hex-color-regex@^1.1.0:
resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
hmac-drbg@^1.0.0: hmac-drbg@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
@ -3489,9 +3489,9 @@ homedir-polyfill@^1.0.1:
parse-passwd "^1.0.0" parse-passwd "^1.0.0"
hosted-git-info@^2.1.4: hosted-git-info@^2.1.4:
version "2.8.8" version "2.8.9"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
hpack.js@^2.1.6: hpack.js@^2.1.6:
version "2.1.6" version "2.1.6"
@ -4159,14 +4159,6 @@ last-call-webpack-plugin@^3.0.0:
lodash "^4.17.5" lodash "^4.17.5"
webpack-sources "^1.1.0" webpack-sources "^1.1.0"
line-column@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/line-column/-/line-column-1.0.2.tgz#d25af2936b6f4849172b312e4792d1d987bc34a2"
integrity sha1-0lryk2tvSEkXKzEuR5LR2Ye8NKI=
dependencies:
isarray "^1.0.0"
isobject "^2.0.0"
lines-and-columns@^1.1.6: lines-and-columns@^1.1.6:
version "1.1.6" version "1.1.6"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
@ -4271,9 +4263,9 @@ lodash.uniq@^4.5.0:
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5: lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5:
version "4.17.20" version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
log-symbols@^4.0.0: log-symbols@^4.0.0:
version "4.0.0" version "4.0.0"
@ -4472,7 +4464,7 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: minimalistic-crypto-utils@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
@ -4616,10 +4608,10 @@ nan@^2.12.1:
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
nanoid@^3.1.12, nanoid@^3.1.16: nanoid@^3.1.12, nanoid@^3.1.22:
version "3.1.16" version "3.1.23"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.16.tgz#b21f0a7d031196faf75314d7c65d36352beeef64" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81"
integrity sha512-+AK8MN0WHji40lj8AEuwLOvLSbWYApQpre/aFJZD71r43wVRLrOYS4FmJOPQYon1TqB462RzrrxlfA74XRES8w== integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==
nanomatch@^1.2.9: nanomatch@^1.2.9:
version "1.2.13" version "1.2.13"
@ -4706,10 +4698,10 @@ node-libs-browser@^2.2.1:
util "^0.11.0" util "^0.11.0"
vm-browserify "^1.0.1" vm-browserify "^1.0.1"
node-releases@^1.1.66: node-releases@^1.1.71:
version "1.1.67" version "1.1.73"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.67.tgz#28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20"
integrity sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg== integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==
normalize-package-data@^2.3.2: normalize-package-data@^2.3.2:
version "2.5.0" version "2.5.0"
@ -5870,14 +5862,13 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2
source-map "^0.6.1" source-map "^0.6.1"
supports-color "^6.1.0" supports-color "^6.1.0"
postcss@^8.1.6, postcss@^8.1.8: postcss@^8.1.6, postcss@^8.2.10:
version "8.1.8" version "8.2.10"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.8.tgz#697439e7276735ecdd2893d2cf8efb2236693ac3" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.10.tgz#ca7a042aa8aff494b334d0ff3e9e77079f6f702b"
integrity sha512-hO6jFWBy0QnBBRaw+s0F4hVPKGDICec/nLNEG1D4qqw9/LBzWMkTjckqqELXAo0J42jN8GFZXtgQfezEaoG9gQ== integrity sha512-b/h7CPV7QEdrqIxtAf2j31U5ef05uBDuvoXv6L51Q4rcS1jdlXAVKJv+atCFdUXYl9dyTHGyoMzIepwowRJjFw==
dependencies: dependencies:
colorette "^1.2.1" colorette "^1.2.2"
line-column "^1.0.2" nanoid "^3.1.22"
nanoid "^3.1.16"
source-map "^0.6.1" source-map "^0.6.1"
prepend-http@^1.0.0: prepend-http@^1.0.0:
@ -6767,9 +6758,9 @@ sprintf-js@~1.0.2:
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
ssri@^6.0.1: ssri@^6.0.1:
version "6.0.1" version "6.0.2"
resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5"
integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==
dependencies: dependencies:
figgy-pudding "^3.5.1" figgy-pudding "^3.5.1"
@ -7265,9 +7256,9 @@ urix@^0.1.0:
integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
url-parse@^1.4.3: url-parse@^1.4.3:
version "1.4.7" version "1.5.1"
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b"
integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==
dependencies: dependencies:
querystringify "^2.1.1" querystringify "^2.1.1"
requires-port "^1.0.0" requires-port "^1.0.0"
@ -7566,9 +7557,9 @@ wrappy@1:
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
ws@^6.2.1: ws@^6.2.1:
version "6.2.1" version "6.2.2"
resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e"
integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==
dependencies: dependencies:
async-limiter "~1.0.0" async-limiter "~1.0.0"
@ -7578,9 +7569,9 @@ xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1:
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
y18n@^4.0.0: y18n@^4.0.0:
version "4.0.0" version "4.0.3"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
y18n@^5.0.5: y18n@^5.0.5:
version "5.0.5" version "5.0.5"