From e4d3e074fd9dab556d005d7aeb1991d57accc23e Mon Sep 17 00:00:00 2001 From: Jake Jarvis Date: Tue, 20 Jul 2021 15:22:57 -0400 Subject: [PATCH] lots of random cleanup & organization --- api/hits.ts | 2 +- api/projects.ts | 17 +- api/tracks.ts | 10 +- api/types/hits.d.ts | 4 +- api/types/projects.d.ts | 16 +- api/types/tracks.d.ts | 24 +- assets/js/index.js | 3 +- assets/js/src/dark-mode.js | 87 +++-- assets/js/src/emoji.js | 6 +- assets/js/src/projects.js | 28 +- gulpfile.js | 29 +- layouts/_default/baseof.html | 4 +- layouts/index.atom | 2 +- layouts/partials/functions/init.html | 86 ----- layouts/partials/functions/prepare-css.html | 19 + layouts/partials/functions/prepare-js.html | 40 ++ layouts/partials/functions/prepare-meta.html | 39 ++ layouts/partials/head/_head.html | 1 - .../partials/scripts/google_analytics.html | 8 - layouts/partials/scripts/piwik.html | 19 - layouts/partials/scripts/shortcodes.html | 19 - .../partials/scripts/simple_analytics.html | 2 - .../scripts/simple_analytics_events.html | 2 - layouts/rss.xml | 2 +- package.json | 21 +- vercel.json | 2 +- yarn.lock | 352 +++++++++--------- 27 files changed, 425 insertions(+), 419 deletions(-) delete mode 100644 layouts/partials/functions/init.html create mode 100644 layouts/partials/functions/prepare-css.html create mode 100644 layouts/partials/functions/prepare-js.html create mode 100644 layouts/partials/functions/prepare-meta.html delete mode 100644 layouts/partials/scripts/google_analytics.html delete mode 100644 layouts/partials/scripts/piwik.html delete mode 100644 layouts/partials/scripts/shortcodes.html delete mode 100644 layouts/partials/scripts/simple_analytics.html delete mode 100644 layouts/partials/scripts/simple_analytics_events.html diff --git a/api/hits.ts b/api/hits.ts index 8a1037e5..ee77d3a4 100644 --- a/api/hits.ts +++ b/api/hits.ts @@ -118,7 +118,7 @@ const getSiteStats = async (client: Client): Promise => { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access p.url = match.link; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - p.date = new Date(match.pubDate).toISOString(); + p.date = new Date(match.pubDate); } // add these hits to running tally diff --git a/api/projects.ts b/api/projects.ts index 988dd839..f2016ba3 100644 --- a/api/projects.ts +++ b/api/projects.ts @@ -3,7 +3,7 @@ import { VercelRequest, VercelResponse } from "@vercel/node"; import { graphql, GraphQlQueryResponseData } from "@octokit/graphql"; import { encode } from "html-entities"; -import type { Repository } from "./types/projects"; +import type { Repository, GHRepoSchema } from "./types/projects"; Sentry.init({ dsn: process.env.SENTRY_DSN || "", @@ -91,10 +91,17 @@ const fetchRepos = async (sort: string): Promise => { ); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access - const repos: Repository[] = user.repositories.edges.map(({ node: repo }: { [key: string]: Repository }) => ({ - ...repo, - description: encode(repo.description), - })); + const repos: Repository[] = user.repositories.edges.map( + ({ node: repo }: { [key: string]: Readonly }) => ({ + name: repo.name, + url: repo.url, + description: encode(repo.description), + updatedAt: new Date(repo.pushedAt), + stars: repo.stargazerCount, + forks: repo.forkCount, + language: repo.primaryLanguage, + }) + ); return repos; }; diff --git a/api/tracks.ts b/api/tracks.ts index 2d23b3e0..c16029ca 100644 --- a/api/tracks.ts +++ b/api/tracks.ts @@ -6,7 +6,7 @@ import { VercelRequest, VercelResponse } from "@vercel/node"; import fetch from "node-fetch"; import * as queryString from "query-string"; -import type { Track, TrackSchema, Activity } from "./types/tracks"; +import type { Track, SpotifyTrackSchema, SpotifyActivitySchema } from "./types/tracks"; const { SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET, SPOTIFY_REFRESH_TOKEN } = process.env; @@ -99,7 +99,7 @@ const getNowPlaying = async (): Promise => { } // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - const active: Activity = await response.json(); + const active: SpotifyActivitySchema = await response.json(); if (active.is_playing === true && active.item) { return { @@ -107,7 +107,7 @@ const getNowPlaying = async (): Promise => { artist: active.item.artists.map((_artist) => _artist.name).join(", "), title: active.item.name, album: active.item.album.name, - imageUrl: active.item.album.images[0].url, + imageUrl: active.item.album.images ? active.item.album.images[0].url : undefined, songUrl: active.item.external_urls.spotify, }; } else { @@ -131,11 +131,11 @@ const getTopTracks = async (): Promise => { const { items } = await response.json(); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access - const tracks: Track[] = items.map((track: TrackSchema) => ({ + const tracks: Track[] = items.map((track: Readonly) => ({ artist: track.artists.map((_artist) => _artist.name).join(", "), title: track.name, album: track.album.name, - imageUrl: track.album.images[0].url, + imageUrl: track.album.images ? track.album.images[0].url : undefined, songUrl: track.external_urls.spotify, })); diff --git a/api/types/hits.d.ts b/api/types/hits.d.ts index fef06807..fa8da12c 100644 --- a/api/types/hits.d.ts +++ b/api/types/hits.d.ts @@ -2,8 +2,8 @@ export type PageStats = { slug: string; hits: number; title?: string; - url?: string; - date?: string; + url?: URL; + date?: Date; }; export type OverallStats = { diff --git a/api/types/projects.d.ts b/api/types/projects.d.ts index 1c47b106..37f68f85 100644 --- a/api/types/projects.d.ts +++ b/api/types/projects.d.ts @@ -1,11 +1,21 @@ import type { Language } from "@octokit/graphql-schema"; -export type Repository = { +type BaseRepoInfo = { name: string; - url: string; + url: URL; description: string; +}; + +export type GHRepoSchema = Required & { primaryLanguage?: Language; stargazerCount: number; forkCount: number; - pushedAt: string; + pushedAt: Date; +}; + +export type Repository = Required & { + language?: Language; + stars: number; + forks: number; + updatedAt: Date; }; diff --git a/api/types/tracks.d.ts b/api/types/tracks.d.ts index 0525a1b9..80b13420 100644 --- a/api/types/tracks.d.ts +++ b/api/types/tracks.d.ts @@ -1,30 +1,30 @@ -export type TrackSchema = { +export type SpotifyTrackSchema = { name: string; artists: Array<{ name: string; }>; album: { name: string; - images: Array<{ - url: string; + images?: Array<{ + url: URL; }>; }; - imageUrl?: string; + imageUrl?: URL; external_urls: { - spotify: string; + spotify: URL; }; }; +export type SpotifyActivitySchema = { + is_playing: boolean; + item?: SpotifyTrackSchema; +}; + export type Track = { isPlaying: boolean; artist?: string; title?: string; album?: string; - imageUrl?: string; - songUrl?: string; -}; - -export type Activity = { - is_playing: boolean; - item?: TrackSchema; + imageUrl?: URL; + songUrl?: URL; }; diff --git a/assets/js/index.js b/assets/js/index.js index 5b7f0a00..52812ee2 100644 --- a/assets/js/index.js +++ b/assets/js/index.js @@ -1,5 +1,6 @@ +import "./src/dark-mode.js"; +import "./src/emoji.js"; import "./src/counter.js"; import "./src/projects.js"; -import "./src/emoji.js"; export default () => {}; diff --git a/assets/js/src/dark-mode.js b/assets/js/src/dark-mode.js index a0a54d65..6bac5905 100644 --- a/assets/js/src/dark-mode.js +++ b/assets/js/src/dark-mode.js @@ -1,62 +1,67 @@ -/* eslint-disable */ /*! Dark mode switcheroo | MIT License | jrvs.io/darkmode */ -// improve variable mangling when minifying -var win = window; -var doc = win.document; -var body = doc.body; -var classes = body.classList; -var storage = localStorage; +import { storage } from "local-storage-fallback"; // check for preset `dark_mode_pref` preference in local storage -var pref_key = "dark_mode_pref"; -var pref = storage.getItem(pref_key); - -// change CSS via these classes: -var dark = "dark"; -var light = "light"; - -// which class is set to initially? -// eslint-disable-next-line -var default_theme = "{{ .Site.Params.Theme.defaultTheme }}"; +const prefKey = "dark_mode_pref"; +const pref = storage.getItem(prefKey); // use an element with class `dark-mode-toggle` to trigger swap when clicked -var toggle = doc.querySelector(".dark-mode-toggle"); +const toggle = document.querySelector(".dark-mode-toggle"); + +// change CSS via these classes: +const dark = "dark"; +const light = "light"; + +// which class is set to initially? +const defaultTheme = light; // keep track of current state no matter how we got there -var active = default_theme === dark; +let active = defaultTheme === dark; + +// returns media query selector syntax +const prefers = function (theme) { + return "(prefers-color-scheme: " + theme + ")"; +}; +const queryDark = prefers("dark"); +const queryLight = prefers("light"); // receives a class name and switches to it -var activateTheme = function (theme) { - classes.remove(dark, light); - classes.add(theme); +const activateTheme = function (theme) { + document.body.classList.remove(dark, light); + document.body.classList.add(theme); active = theme === dark; }; -// if user already explicitly toggled in the past, restore their preference -if (pref === dark) activateTheme(dark); -if (pref === light) activateTheme(light); - // user has never clicked the button, so go by their OS preference until/if they do so if (!pref) { - // returns media query selector syntax - var prefers = function (theme) { - return "(prefers-color-scheme: " + theme + ")"; - }; - // check for OS dark/light mode preference and switch accordingly - // default to `default_theme` set above if unsupported - if (win.matchMedia(prefers(dark)).matches) activateTheme(dark); - else if (win.matchMedia(prefers(light)).matches) activateTheme(light); - else activateTheme(default_theme); + // default to `defaultTheme` set above if unsupported + if (window.matchMedia(queryDark).matches) { + activateTheme(dark); + } else if (window.matchMedia(queryLight).matches) { + activateTheme(light); + } else { + activateTheme(defaultTheme); + } // real-time switching if supported by OS/browser - win.matchMedia(prefers(dark)).addListener(function (e) { - if (e.matches) activateTheme(dark); + window.matchMedia(queryDark).addEventListener("change", (e) => { + if (e.matches) { + activateTheme(dark); + } }); - win.matchMedia(prefers(light)).addListener(function (e) { - if (e.matches) activateTheme(light); + window.matchMedia(queryLight).addEventListener("change", (e) => { + if (e.matches) { + activateTheme(light); + } }); +} else if (pref === dark || pref === light) { + // if user already explicitly toggled in the past, restore their preference + activateTheme(pref); +} else { + // fallback to default theme (this shouldn't happen) + activateTheme(defaultTheme); } // don't freak out if page happens not to have a toggle @@ -71,10 +76,10 @@ if (toggle) { // switch to the opposite theme & save preference in local storage if (active) { activateTheme(light); - storage.setItem(pref_key, light); + storage.setItem(prefKey, light); } else { activateTheme(dark); - storage.setItem(pref_key, dark); + storage.setItem(prefKey, dark); } }, true diff --git a/assets/js/src/emoji.js b/assets/js/src/emoji.js index 5a5b686c..15016f03 100644 --- a/assets/js/src/emoji.js +++ b/assets/js/src/emoji.js @@ -3,8 +3,6 @@ import twemoji from "twemoji"; twemoji.parse(document.body, { - callback: function (icon) { - // simpler relative URIs - return "/assets/emoji/" + icon + ".svg"; - }, + // simpler relative URIs + callback: (icon) => `/assets/emoji/${icon}.svg`, }); diff --git a/assets/js/src/projects.js b/assets/js/src/projects.js index b63994b7..76269209 100644 --- a/assets/js/src/projects.js +++ b/assets/js/src/projects.js @@ -2,6 +2,7 @@ import fetch from "cross-fetch"; import numeral from "numeral"; import dayjs from "dayjs"; import relativeTime from "dayjs/plugin/relativeTime.js"; +import twemoji from "twemoji"; // don't continue if there isn't a span#meta-hits element on this page const wrapper = document.getElementById("github-cards"); @@ -20,17 +21,17 @@ if (wrapper) { html += `

${repo.description}

`; } - if (repo.primaryLanguage) { + if (repo.language) { html += `
- -${repo.primaryLanguage.name} + +${repo.language.name}
`; } - if (repo.stargazerCount > 0) { - const starsComma = numeral(repo.stargazerCount).format("0,0"); - const starsPlural = repo.stargazerCount === 1 ? "star" : "stars"; + if (repo.stars > 0) { + const starsComma = numeral(repo.stars).format("0,0"); + const starsPlural = repo.stars === 1 ? "star" : "stars"; html += `
@@ -39,9 +40,9 @@ if (wrapper) {
`; } - if (repo.forkCount > 0) { - const forksComma = numeral(repo.forkCount).format("0,0"); - const forksPlural = repo.forkCount === 1 ? "fork" : "forks"; + if (repo.forks > 0) { + const forksComma = numeral(repo.forks).format("0,0"); + const forksPlural = repo.forks === 1 ? "fork" : "forks"; html += `
@@ -51,8 +52,8 @@ if (wrapper) { } html += ` -
-Updated ${dayjs(repo.pushedAt).fromNow()} +
+Updated ${dayjs(repo.updatedAt).fromNow()}
`; const div = document.createElement("div"); @@ -60,6 +61,11 @@ if (wrapper) { div.innerHTML = html; wrapper.appendChild(div); }); + + // these elements were added after the first twemoji parsing + twemoji.parse(wrapper, { + callback: (icon) => `/assets/emoji/${icon}.svg`, + }); }) .catch(() => { // something went horribly wrong, initiate coverup diff --git a/gulpfile.js b/gulpfile.js index 0a42bcd0..cb4370d5 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -27,14 +27,26 @@ gulp.task("default", gulp.series( ), )); -gulp.task("serve", gulp.parallel( - npx("webpack", ["--watch", "--mode", "development"]), - npx("hugo", ["--watch", "--buildDrafts", "--buildFuture", "--verbose"]), - startServer, +gulp.task("serve", gulp.series( + clean, + gulp.parallel( + npx("webpack", ["--watch", "--mode", "development"]), + npx("hugo", ["--watch", "--buildDrafts", "--buildFuture", "--verbose"]), + startServer, + ), )); gulp.task("clean", clean); +function clean() { + return del([ + "public/", + "builds/", + "_vendor/", + "static/assets/", + ]); +} + function startServer() { const browserSync = BrowserSync.create(); const publicDir = path.resolve(__dirname, "public"); @@ -97,15 +109,6 @@ function optimizeImages() { .pipe(gulp.dest(".", { overwrite: true })); } -function clean() { - return del([ - "public/", - "builds/", - "_vendor/", - "static/assets/", - ]); -} - // run a locally installed (i.e. ./node_modules/.bin/foo) binary, similar to a package.json script function npx(bin, args) { // WARNING: MAJOR HACKS AHEAD: diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 1e198da7..c2798cc8 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -1,3 +1,6 @@ +{{- partial "functions/prepare-meta" . -}} +{{- partial "functions/prepare-js" . -}} +{{- partial "functions/prepare-css" . -}} {{ printf "" | safeHTML -}} {{ printf "" (print .Site.Params.baseURL "/humans.txt") | safeHTML }} @@ -13,7 +16,6 @@ {{ partial "page/footer" . }} {{ template "__body_js" . }} -{{ partial "scripts/shortcodes" . -}} diff --git a/layouts/index.atom b/layouts/index.atom index 781b054d..c2030393 100644 --- a/layouts/index.atom +++ b/layouts/index.atom @@ -1,4 +1,4 @@ -{{- $img := partial "functions/init" . -}} +{{- $img := partial "functions/prepare-meta" . -}} {{ printf "" | safeHTML }} {{ .Site.Title }} diff --git a/layouts/partials/functions/init.html b/layouts/partials/functions/init.html deleted file mode 100644 index dcc0a6ff..00000000 --- a/layouts/partials/functions/init.html +++ /dev/null @@ -1,86 +0,0 @@ -{{/* Pull in assets processed by Webpack */}} -{{- define "__head_css" -}} - {{ with .Site.Data.manifest }} - {{ with index . "main.css" }} - - {{ end }} - {{ end }} - - {{/* Page-specific styles set via front matter, piped through PostCSS and inlined */}} - {{- with .Params.css -}} - {{/* NOTE: This file doesn't end up getting published (which is good) */}} - {{- $target := path.Join $.File.Dir "css/inline.scss" -}} - {{- $css := . | resources.FromString $target -}} - - {{- end -}} -{{- end -}} - -{{- define "__head_preload" -}} - {{ with .Site.Data.manifest }} - {{ with index . "fonts/inter-subset.var.woff2" }} - - {{ end }} - {{ with index . "fonts/roboto-mono-subset.var.woff2" }} - - {{ end }} - {{ with index . "main.js" }} - - {{ end }} - {{ end }} -{{- end -}} - -{{- define "__body_js" -}} - - - - {{ with .Site.Data.manifest }} - {{ with index . "main.js" -}} - - {{ end -}} - {{ end -}} -{{- end -}} - - -{{/* Strip any markdown styling from page title for use in meta tags */}} -{{- with .Title -}} - {{- $.Scratch.Set "plainTitle" (. | markdownify | htmlUnescape | plainify) -}} -{{- end -}} - - -{{/* If this is a page/post, link View Source to specific file on GitHub; otherwise, just link to repo homepage */}} -{{- with .Site.Params.social.githubRepo -}} - {{- $githubURL := print "https://github.com/" . -}} - {{- if not $.IsPage -}} - {{- $.Scratch.Set "sourceURL" $githubURL -}} - {{- else -}} - {{- $.Scratch.Set "sourceURL" (print $githubURL "/blob/main/content/" $.File.Path) -}} - {{- end -}} -{{- end -}} - - -{{/* Chooses and initializes various images for use by JSON schema & open graph tags */}} -{{/* Author image (default) */}} -{{- with .Site.Data.manifest -}} - {{- with index . $.Site.Author.image -}} - {{- $.Scratch.Set "authorImage" (dict "Permalink" (absURL .src) "Width" 1200 "Height" 1200 "MediaType" "image/jpeg") -}} - {{- end -}} -{{- end -}} -{{/* Page image (via frontmatter) */}} -{{- with .Params.image -}} - {{- with $.Page.Resources.GetMatch . -}} - {{- $.Scratch.Set "pageImage" . -}} - {{- end -}} -{{- else -}} - {{/* Fallback to author image set above */}} - {{- with $.Scratch.Get "authorImage" -}} - {{- $.Scratch.Set "pageImage" . -}} - {{- end -}} -{{- end -}} -{{/* Site logo */}} -{{- with .Site.Data.manifest -}} - {{- with index . $.Site.Params.image -}} - {{- $.Scratch.Set "logoImage" (dict "Permalink" (absURL .src) "Width" 2048 "Height" 2048 "MediaType" "image/png") -}} - {{- end -}} -{{- end -}} diff --git a/layouts/partials/functions/prepare-css.html b/layouts/partials/functions/prepare-css.html new file mode 100644 index 00000000..fcf5dec7 --- /dev/null +++ b/layouts/partials/functions/prepare-css.html @@ -0,0 +1,19 @@ +{{/* Pull in CSS processed by Webpack */}} + +{{- define "__head_css" -}} + {{ with .Site.Data.manifest }} + {{ with index . "main.css" }} + + {{ end }} + {{ end }} + + {{/* Page-specific styles set via front matter, piped through PostCSS and inlined */}} + {{- with .Params.css -}} + {{/* NOTE: This file doesn't end up getting published (which is good) */}} + {{- $target := path.Join $.File.Dir "css/inline.scss" -}} + {{- $css := . | resources.FromString $target -}} + + {{- end -}} +{{- end -}} diff --git a/layouts/partials/functions/prepare-js.html b/layouts/partials/functions/prepare-js.html new file mode 100644 index 00000000..60c08e7e --- /dev/null +++ b/layouts/partials/functions/prepare-js.html @@ -0,0 +1,40 @@ +{{/* Pull in JS processed by Webpack */}} + +{{- define "__head_preload" -}} + {{ with .Site.Data.manifest }} + {{ with index . "fonts/inter-subset.var.woff2" }} + + {{ end }} + {{ with index . "fonts/roboto-mono-subset.var.woff2" }} + + {{ end }} + {{ with index . "main.js" }} + + {{ end }} + {{ end }} +{{- end -}} + +{{- define "__body_js" -}} + {{ with .Site.Data.manifest }} + {{ with index . "main.js" -}} + + {{ end -}} + {{ end -}} + + {{/* Detect shortcodes and append external scripts as needed once per page */}} + {{ if .HasShortcode "gh-buttons" -}} + {{ template "__shortcode_gh-buttons_js" $ }} + {{ end -}} + {{ if .HasShortcode "tweet" -}} + {{ template "__shortcode_twitter_js" $ }} + {{ end -}} + {{ if .HasShortcode "facebook" -}} + {{ template "__shortcode_facebook_js" $ }} + {{ end -}} + {{ if .HasShortcode "instagram" -}} + {{ template "__shortcode_instagram_js" $ }} + {{ end -}} + {{ if .HasShortcode "vimeo" -}} + {{ template "__shortcode_vimeo_js" $ }} + {{ end -}} +{{- end -}} diff --git a/layouts/partials/functions/prepare-meta.html b/layouts/partials/functions/prepare-meta.html new file mode 100644 index 00000000..cb7602c2 --- /dev/null +++ b/layouts/partials/functions/prepare-meta.html @@ -0,0 +1,39 @@ +{{/* Strip any markdown styling from page title for use in meta tags */}} +{{- with .Title -}} + {{- $.Scratch.Set "plainTitle" (. | markdownify | htmlUnescape | plainify) -}} +{{- end -}} + +{{/* If this is a page/post, link View Source to specific file on GitHub; otherwise, just link to repo homepage */}} +{{- with .Site.Params.social.githubRepo -}} + {{- $githubURL := print "https://github.com/" . -}} + {{- if not $.IsPage -}} + {{- $.Scratch.Set "sourceURL" $githubURL -}} + {{- else -}} + {{- $.Scratch.Set "sourceURL" (print $githubURL "/blob/main/content/" $.File.Path) -}} + {{- end -}} +{{- end -}} + +{{/* Chooses and initializes various images for use by JSON schema & open graph tags */}} +{{/* Author image (default) */}} +{{- with .Site.Data.manifest -}} + {{- with index . $.Site.Author.image -}} + {{- $.Scratch.Set "authorImage" (dict "Permalink" (absURL .src) "Width" 1200 "Height" 1200 "MediaType" "image/jpeg") -}} + {{- end -}} +{{- end -}} +{{/* Page image (via frontmatter) */}} +{{- with .Params.image -}} + {{- with $.Page.Resources.GetMatch . -}} + {{- $.Scratch.Set "pageImage" . -}} + {{- end -}} +{{- else -}} + {{/* Fallback to author image set above */}} + {{- with $.Scratch.Get "authorImage" -}} + {{- $.Scratch.Set "pageImage" . -}} + {{- end -}} +{{- end -}} +{{/* Site logo */}} +{{- with .Site.Data.manifest -}} + {{- with index . $.Site.Params.image -}} + {{- $.Scratch.Set "logoImage" (dict "Permalink" (absURL .src) "Width" 2048 "Height" 2048 "MediaType" "image/png") -}} + {{- end -}} +{{- end -}} diff --git a/layouts/partials/head/_head.html b/layouts/partials/head/_head.html index dad3a58f..53fe03ed 100644 --- a/layouts/partials/head/_head.html +++ b/layouts/partials/head/_head.html @@ -1,4 +1,3 @@ -{{ partial "functions/init" . -}} {{ partial "head/meta" . -}} {{ partial "head/open-graph" . -}} {{ partialCached "head/mobile" . -}} diff --git a/layouts/partials/scripts/google_analytics.html b/layouts/partials/scripts/google_analytics.html deleted file mode 100644 index 130ae262..00000000 --- a/layouts/partials/scripts/google_analytics.html +++ /dev/null @@ -1,8 +0,0 @@ -{{ with .Site.GoogleAnalytics }} - - -{{ end }} diff --git a/layouts/partials/scripts/piwik.html b/layouts/partials/scripts/piwik.html deleted file mode 100644 index ea3aca79..00000000 --- a/layouts/partials/scripts/piwik.html +++ /dev/null @@ -1,19 +0,0 @@ -{{ if .Site.Params.PiwikServer }} - - -{{ end }} diff --git a/layouts/partials/scripts/shortcodes.html b/layouts/partials/scripts/shortcodes.html deleted file mode 100644 index a3284d49..00000000 --- a/layouts/partials/scripts/shortcodes.html +++ /dev/null @@ -1,19 +0,0 @@ -{{ if .HasShortcode "gh-buttons" -}} -{{ template "__shortcode_gh-buttons_js" $ }} -{{ end -}} - -{{ if .HasShortcode "tweet" -}} -{{ template "__shortcode_twitter_js" $ }} -{{ end -}} - -{{ if .HasShortcode "facebook" -}} -{{ template "__shortcode_facebook_js" $ }} -{{ end -}} - -{{ if .HasShortcode "instagram" -}} -{{ template "__shortcode_instagram_js" $ }} -{{ end -}} - -{{ if .HasShortcode "vimeo" -}} -{{ template "__shortcode_vimeo_js" $ }} -{{ end -}} diff --git a/layouts/partials/scripts/simple_analytics.html b/layouts/partials/scripts/simple_analytics.html deleted file mode 100644 index b8e425f5..00000000 --- a/layouts/partials/scripts/simple_analytics.html +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/layouts/partials/scripts/simple_analytics_events.html b/layouts/partials/scripts/simple_analytics_events.html deleted file mode 100644 index 42409a66..00000000 --- a/layouts/partials/scripts/simple_analytics_events.html +++ /dev/null @@ -1,2 +0,0 @@ -{{/* optional feature, see: https://docs.simpleanalytics.com/events */}} - diff --git a/layouts/rss.xml b/layouts/rss.xml index 1ca0eb9c..177d0cf9 100644 --- a/layouts/rss.xml +++ b/layouts/rss.xml @@ -1,4 +1,4 @@ -{{- $img := partial "functions/init" . -}} +{{- $img := partial "functions/prepare-meta" . -}} {{ .Site.Title }} diff --git a/package.json b/package.json index 7bb7ee87..878d8fc3 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "@fontsource/inter": "4.5.0", "@fontsource/roboto-mono": "4.5.0", "@octokit/graphql": "^4.6.4", - "@octokit/graphql-schema": "^10.53.0", + "@octokit/graphql-schema": "^10.54.0", "@sentry/node": "^6.9.0", "cross-fetch": "3.1.4", "dayjs": "1.10.6", @@ -43,6 +43,7 @@ "graphql-request": "^3.4.0", "graphql-tag": "^2.12.5", "html-entities": "^2.3.2", + "local-storage-fallback": "4.1.2", "modern-normalize": "1.1.0", "node-fetch": "^2.6.1", "numeral": "^2.0.6", @@ -51,27 +52,27 @@ "twemoji-emojis": "14.1.0" }, "devDependencies": { - "@babel/cli": "^7.14.5", - "@babel/core": "^7.14.6", + "@babel/cli": "^7.14.8", + "@babel/core": "^7.14.8", "@babel/eslint-parser": "^7.14.7", - "@babel/preset-env": "^7.14.7", + "@babel/preset-env": "^7.14.8", "@types/node-fetch": "^2.5.11", "@types/numeral": "^2.0.1", "@types/twemoji": "^12.1.2", - "@typescript-eslint/eslint-plugin": "^4.28.3", - "@typescript-eslint/parser": "^4.28.3", + "@typescript-eslint/eslint-plugin": "^4.28.4", + "@typescript-eslint/parser": "^4.28.4", "@vercel/node": "^1.11.1", "autoprefixer": "^10.3.1", "babel-loader": "^8.2.2", "browser-sync": "^2.27.4", "clean-css": "^5.1.3", "copy-webpack-plugin": "^9.0.1", - "css-loader": "^6.0.0", + "css-loader": "^6.2.0", "css-minimizer-webpack-plugin": "^3.0.2", "del": "^6.0.0", - "eslint": "~7.30.0", + "eslint": "~7.31.0", "eslint-config-prettier": "~8.3.0", - "eslint-plugin-compat": "~3.11.0", + "eslint-plugin-compat": "~3.11.1", "eslint-plugin-import": "~2.23.4", "eslint-plugin-prettier": "~3.4.0", "file-loader": "^6.2.0", @@ -105,7 +106,7 @@ "stylelint-config-sass-guidelines": "~8.0.0", "stylelint-no-unsupported-browser-features": "~5.0.1", "stylelint-prettier": "~1.2.0", - "stylelint-scss": "~3.19.0", + "stylelint-scss": "~3.20.1", "terser": "^5.7.1", "terser-webpack-plugin": "^5.1.4", "typescript": "^4.3.5", diff --git a/vercel.json b/vercel.json index 6820ea21..71ccfb78 100755 --- a/vercel.json +++ b/vercel.json @@ -68,7 +68,7 @@ }, { "key": "Content-Security-Policy", - "value": "default-src 'self'; base-uri 'none'; connect-src 'self' api.github.com platform.twitter.com; font-src 'self'; form-action 'none'; frame-ancestors 'self'; frame-src 'self' jakejarvis.github.io buttons.github.io codepen.io platform.twitter.com www.youtube-nocookie.com; img-src 'self' data: https:; manifest-src 'self'; media-src 'self' data: https:; object-src 'none'; script-src 'self' buttons.github.io gist.github.com syndication.twitter.com platform.twitter.com 'sha256-1j1MKfE70TTCp5KmiC2YImxw2RMS52uCH5yXl1heG9U=' 'sha256-y3Xr/40/KQnUvqk/kZO5us6t3i/I49BsbYjsH8ELhVg=' 'sha256-JGG0npUp+0ABq/NY1azjpQ0WBtm+m5gU58mzF+2DCXY='; style-src 'self' 'unsafe-inline' github.githubassets.com; worker-src 'self'; block-all-mixed-content; report-uri https://jarv.is/api/csp_wizard/; report-to default" + "value": "default-src 'self'; base-uri 'none'; connect-src 'self' api.github.com platform.twitter.com; font-src 'self'; form-action 'none'; frame-ancestors 'self'; frame-src 'self' jakejarvis.github.io buttons.github.io codepen.io platform.twitter.com www.youtube-nocookie.com; img-src 'self' data: https:; manifest-src 'self'; media-src 'self' data: https:; object-src 'none'; script-src 'self' buttons.github.io gist.github.com syndication.twitter.com platform.twitter.com 'sha256-y3Xr/40/KQnUvqk/kZO5us6t3i/I49BsbYjsH8ELhVg='; style-src 'self' 'unsafe-inline' github.githubassets.com; worker-src 'self'; block-all-mixed-content; report-uri https://jarv.is/api/csp_wizard/; report-to default" }, { "key": "Report-To", diff --git a/yarn.lock b/yarn.lock index 6b323e86..666e4142 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@babel/cli@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.14.5.tgz#9551b194f02360729de6060785bbdcce52c69f0a" - integrity sha512-poegjhRvXHWO0EAsnYajwYZuqcz7gyfxwfaecUESxDujrqOivf3zrjFbub8IJkrqEaz3fvJWh001EzxBub54fg== +"@babel/cli@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.14.8.tgz#fac73c0e2328a8af9fd3560c06b096bfa3730933" + integrity sha512-lcy6Lymft9Rpfqmrqdd4oTDdUx9ZwaAhAfywVrHG4771Pa6PPT0danJ1kDHBXYqh4HHSmIdA+nlmfxfxSDPtBg== dependencies: commander "^4.0.1" convert-source-map "^1.1.0" @@ -37,20 +37,20 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.7.tgz#7b047d7a3a89a67d2258dc61f604f098f1bc7e08" integrity sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw== -"@babel/core@>=7.9.0", "@babel/core@^7.14.6": - version "7.14.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.6.tgz#e0814ec1a950032ff16c13a2721de39a8416fcab" - integrity sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA== +"@babel/core@>=7.9.0", "@babel/core@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.8.tgz#20cdf7c84b5d86d83fac8710a8bc605a7ba3f010" + integrity sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q== dependencies: "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.14.5" + "@babel/generator" "^7.14.8" "@babel/helper-compilation-targets" "^7.14.5" - "@babel/helper-module-transforms" "^7.14.5" - "@babel/helpers" "^7.14.6" - "@babel/parser" "^7.14.6" + "@babel/helper-module-transforms" "^7.14.8" + "@babel/helpers" "^7.14.8" + "@babel/parser" "^7.14.8" "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.5" - "@babel/types" "^7.14.5" + "@babel/traverse" "^7.14.8" + "@babel/types" "^7.14.8" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -67,12 +67,12 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz#848d7b9f031caca9d0cd0af01b063f226f52d785" - integrity sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA== +"@babel/generator@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.8.tgz#bf86fd6af96cf3b74395a8ca409515f89423e070" + integrity sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.14.8" jsesc "^2.5.1" source-map "^0.5.0" @@ -102,13 +102,13 @@ semver "^6.3.0" "@babel/helper-create-class-features-plugin@^7.14.5": - version "7.14.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz#f114469b6c06f8b5c59c6c4e74621f5085362542" - integrity sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg== + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.8.tgz#a6f8c3de208b1e5629424a9a63567f56501955fc" + integrity sha512-bpYvH8zJBWzeqi1o+co8qOrw+EXzQ/0c74gVmY205AWXy9nifHrOg77y+1zwxX5lXE7Icq4sPlSQ4O2kWBrteQ== dependencies: "@babel/helper-annotate-as-pure" "^7.14.5" "@babel/helper-function-name" "^7.14.5" - "@babel/helper-member-expression-to-functions" "^7.14.5" + "@babel/helper-member-expression-to-functions" "^7.14.7" "@babel/helper-optimise-call-expression" "^7.14.5" "@babel/helper-replace-supers" "^7.14.5" "@babel/helper-split-export-declaration" "^7.14.5" @@ -165,7 +165,7 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-member-expression-to-functions@^7.14.5": +"@babel/helper-member-expression-to-functions@^7.14.5", "@babel/helper-member-expression-to-functions@^7.14.7": version "7.14.7" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz#97e56244beb94211fe277bd818e3a329c66f7970" integrity sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA== @@ -179,19 +179,19 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-module-transforms@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz#7de42f10d789b423eb902ebd24031ca77cb1e10e" - integrity sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA== +"@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.8.tgz#d4279f7e3fd5f4d5d342d833af36d4dd87d7dc49" + integrity sha512-RyE+NFOjXn5A9YU1dkpeBaduagTlZ0+fccnIcAGbv1KGUlReBj7utF7oEth8IdIBQPcux0DDgW5MFBH2xu9KcA== dependencies: "@babel/helper-module-imports" "^7.14.5" "@babel/helper-replace-supers" "^7.14.5" - "@babel/helper-simple-access" "^7.14.5" + "@babel/helper-simple-access" "^7.14.8" "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/helper-validator-identifier" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.8" "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.5" - "@babel/types" "^7.14.5" + "@babel/traverse" "^7.14.8" + "@babel/types" "^7.14.8" "@babel/helper-optimise-call-expression@^7.14.5": version "7.14.5" @@ -224,12 +224,12 @@ "@babel/traverse" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/helper-simple-access@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz#66ea85cf53ba0b4e588ba77fc813f53abcaa41c4" - integrity sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw== +"@babel/helper-simple-access@^7.14.5", "@babel/helper-simple-access@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" + integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.14.8" "@babel/helper-skip-transparent-expression-wrappers@^7.14.5": version "7.14.5" @@ -245,10 +245,10 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-validator-identifier@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" - integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== +"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz#32be33a756f29e278a0d644fa08a2c9e0f88a34c" + integrity sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow== "@babel/helper-validator-option@^7.14.5": version "7.14.5" @@ -265,14 +265,14 @@ "@babel/traverse" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/helpers@^7.14.6": - version "7.14.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.6.tgz#5b58306b95f1b47e2a0199434fa8658fa6c21635" - integrity sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA== +"@babel/helpers@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.8.tgz#839f88f463025886cff7f85a35297007e2da1b77" + integrity sha512-ZRDmI56pnV+p1dH6d+UN6GINGz7Krps3+270qqI9UJ4wxYThfAIcI5i7j5vXC4FJ3Wap+S9qcebxeYiqn87DZw== dependencies: "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.5" - "@babel/types" "^7.14.5" + "@babel/traverse" "^7.14.8" + "@babel/types" "^7.14.8" "@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": version "7.14.5" @@ -283,10 +283,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.14.5", "@babel/parser@^7.14.6", "@babel/parser@^7.14.7": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.7.tgz#6099720c8839ca865a2637e6c85852ead0bdb595" - integrity sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA== +"@babel/parser@^7.14.5", "@babel/parser@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.8.tgz#66fd41666b2d7b840bd5ace7f7416d5ac60208d4" + integrity sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA== "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": version "7.14.5" @@ -771,10 +771,10 @@ "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" -"@babel/preset-env@^7.14.7": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.7.tgz#5c70b22d4c2d893b03d8c886a5c17422502b932a" - integrity sha512-itOGqCKLsSUl0Y+1nSfhbuuOlTs0MJk2Iv7iSH+XT/mR8U1zRLO7NjWlYXB47yhK4J/7j+HYty/EhFZDYKa/VA== +"@babel/preset-env@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.8.tgz#254942f5ca80ccabcfbb2a9f524c74bca574005b" + integrity sha512-a9aOppDU93oArQ51H+B8M1vH+tayZbuBqzjOhntGetZVa+4tTu5jp+XTwqHGG2lxslqomPYVSjIxQkFwXzgnxg== dependencies: "@babel/compat-data" "^7.14.7" "@babel/helper-compilation-targets" "^7.14.5" @@ -843,7 +843,7 @@ "@babel/plugin-transform-unicode-escapes" "^7.14.5" "@babel/plugin-transform-unicode-regex" "^7.14.5" "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.14.5" + "@babel/types" "^7.14.8" babel-plugin-polyfill-corejs2 "^0.2.2" babel-plugin-polyfill-corejs3 "^0.2.2" babel-plugin-polyfill-regenerator "^0.2.2" @@ -862,9 +862,9 @@ esutils "^2.0.2" "@babel/runtime@^7.8.4": - version "7.14.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.6.tgz#535203bc0892efc7dec60bdc27b2ecf6e409062d" - integrity sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg== + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.8.tgz#7119a56f421018852694290b9f9148097391b446" + integrity sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg== dependencies: regenerator-runtime "^0.13.4" @@ -877,27 +877,27 @@ "@babel/parser" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.7.tgz#64007c9774cfdc3abd23b0780bc18a3ce3631753" - integrity sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.8.tgz#c0253f02677c5de1a8ff9df6b0aacbec7da1a8ce" + integrity sha512-kexHhzCljJcFNn1KYAQ6A5wxMRzq9ebYpEDV4+WdNyr3i7O44tanbDOR/xjiG2F3sllan+LgwK+7OMk0EmydHg== dependencies: "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.14.5" + "@babel/generator" "^7.14.8" "@babel/helper-function-name" "^7.14.5" "@babel/helper-hoist-variables" "^7.14.5" "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/parser" "^7.14.7" - "@babel/types" "^7.14.5" + "@babel/parser" "^7.14.8" + "@babel/types" "^7.14.8" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.14.5", "@babel/types@^7.4.4": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff" - integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg== +"@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.4.4": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.8.tgz#38109de8fcadc06415fbd9b74df0065d4d41c728" + integrity sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q== dependencies: - "@babel/helper-validator-identifier" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.8" to-fast-properties "^2.0.0" "@discoveryjs/json-ext@^0.5.0": @@ -905,10 +905,10 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d" integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g== -"@eslint/eslintrc@^0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179" - integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg== +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== dependencies: ajv "^6.12.4" debug "^4.1.1" @@ -1012,10 +1012,10 @@ is-plain-object "^5.0.0" universal-user-agent "^6.0.0" -"@octokit/graphql-schema@^10.53.0": - version "10.53.0" - resolved "https://registry.yarnpkg.com/@octokit/graphql-schema/-/graphql-schema-10.53.0.tgz#3095f1e2c4533ab102d13e184a6ae36dce2db49e" - integrity sha512-rClyCtBsxF0qFReGY8TW3UPQREKDjlOnm+6MPNo1tfFO68qd/o8TlPnpm/rHZVYg8Djnse5IRSt71PJboPvAaA== +"@octokit/graphql-schema@^10.54.0": + version "10.54.0" + resolved "https://registry.yarnpkg.com/@octokit/graphql-schema/-/graphql-schema-10.54.0.tgz#2ca6a0336d95d73df415f9e7c462575aaa69b283" + integrity sha512-ti6c9uhZCp402HKFPxbB5HhxLKeJ0ddBrUeUjrLhwtzmqxRsj78a+cmDtVHISCOXRikziisDYR7y8URkEJFM/Q== dependencies: graphql "^15.0.0" graphql-tag "^2.10.3" @@ -1029,10 +1029,10 @@ "@octokit/types" "^6.0.3" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-8.3.0.tgz#8bc912edae8c03e002882cf1e29b595b7da9b441" - integrity sha512-ZFyQ30tNpoATI7o+Z9MWFUzUgWisB8yduhcky7S4UYsRijgIGSnwUKzPBDGzf/Xkx1DuvUtqzvmuFlDSqPJqmQ== +"@octokit/openapi-types@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-9.0.0.tgz#05d33f999326785445c915d25167d68bd5eddb24" + integrity sha512-GSpv5VUFqarOXZl6uWPsDnjChkKCxnaMALmQhzvCWGiMxONQxX7ZwlomCMS+wB1KqxLPCA5n6gYt016oEMkHmQ== "@octokit/request-error@^2.1.0": version "2.1.0" @@ -1056,11 +1056,11 @@ universal-user-agent "^6.0.0" "@octokit/types@^6.0.3", "@octokit/types@^6.16.1": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.19.0.tgz#e2b6fedb10c8b53cf4574aa5d1a8a5611295297a" - integrity sha512-9wdZFiJfonDyU6DjIgDHxAIn92vdSUBOwAXbO2F9rOFt6DJwuAkyGLu1CvdJPphCbPBoV9iSDMX7y4fu0v6AtA== + version "6.19.1" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.19.1.tgz#6ea5f759d8d37e892e59c0a65f10892789b84a25" + integrity sha512-hMI2EokQzMG8ABWcnvcrabqQFuFHqUdN0HUOG4DPTaOtnf/jqhzhK1SHOGu5vDlI/x+hWJ60e28VxB7QhOP0CQ== dependencies: - "@octokit/openapi-types" "^8.3.0" + "@octokit/openapi-types" "^9.0.0" "@sentry/core@6.9.0": version "6.9.0" @@ -1230,7 +1230,7 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7": +"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": version "7.0.8" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.8.tgz#edf1bf1dbf4e04413ca8e5b17b3b7d7d54b59818" integrity sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg== @@ -1321,73 +1321,73 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.28.3": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.3.tgz#36cdcd9ca6f9e5cb49b9f61b970b1976708d084b" - integrity sha512-jW8sEFu1ZeaV8xzwsfi6Vgtty2jf7/lJmQmDkDruBjYAbx5DA8JtbcMnP0rNPUG+oH5GoQBTSp+9613BzuIpYg== +"@typescript-eslint/eslint-plugin@^4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.4.tgz#e73c8cabbf3f08dee0e1bda65ed4e622ae8f8921" + integrity sha512-s1oY4RmYDlWMlcV0kKPBaADn46JirZzvvH7c2CtAqxCY96S538JRBAzt83RrfkDheV/+G/vWNK0zek+8TB3Gmw== dependencies: - "@typescript-eslint/experimental-utils" "4.28.3" - "@typescript-eslint/scope-manager" "4.28.3" + "@typescript-eslint/experimental-utils" "4.28.4" + "@typescript-eslint/scope-manager" "4.28.4" debug "^4.3.1" functional-red-black-tree "^1.0.1" regexpp "^3.1.0" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.28.3": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.3.tgz#976f8c1191b37105fd06658ed57ddfee4be361ca" - integrity sha512-zZYl9TnrxwEPi3FbyeX0ZnE8Hp7j3OCR+ELoUfbwGHGxWnHg9+OqSmkw2MoCVpZksPCZYpQzC559Ee9pJNHTQw== +"@typescript-eslint/experimental-utils@4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.4.tgz#9c70c35ebed087a5c70fb0ecd90979547b7fec96" + integrity sha512-OglKWOQRWTCoqMSy6pm/kpinEIgdcXYceIcH3EKWUl4S8xhFtN34GQRaAvTIZB9DD94rW7d/U7tUg3SYeDFNHA== dependencies: "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.28.3" - "@typescript-eslint/types" "4.28.3" - "@typescript-eslint/typescript-estree" "4.28.3" + "@typescript-eslint/scope-manager" "4.28.4" + "@typescript-eslint/types" "4.28.4" + "@typescript-eslint/typescript-estree" "4.28.4" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^4.28.3": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.28.3.tgz#95f1d475c08268edffdcb2779993c488b6434b44" - integrity sha512-ZyWEn34bJexn/JNYvLQab0Mo5e+qqQNhknxmc8azgNd4XqspVYR5oHq9O11fLwdZMRcj4by15ghSlIEq+H5ltQ== +"@typescript-eslint/parser@^4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.28.4.tgz#bc462dc2779afeefdcf49082516afdc3e7b96fab" + integrity sha512-4i0jq3C6n+og7/uCHiE6q5ssw87zVdpUj1k6VlVYMonE3ILdFApEzTWgppSRG4kVNB/5jxnH+gTeKLMNfUelQA== dependencies: - "@typescript-eslint/scope-manager" "4.28.3" - "@typescript-eslint/types" "4.28.3" - "@typescript-eslint/typescript-estree" "4.28.3" + "@typescript-eslint/scope-manager" "4.28.4" + "@typescript-eslint/types" "4.28.4" + "@typescript-eslint/typescript-estree" "4.28.4" debug "^4.3.1" -"@typescript-eslint/scope-manager@4.28.3": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.28.3.tgz#c32ad4491b3726db1ba34030b59ea922c214e371" - integrity sha512-/8lMisZ5NGIzGtJB+QizQ5eX4Xd8uxedFfMBXOKuJGP0oaBBVEMbJVddQKDXyyB0bPlmt8i6bHV89KbwOelJiQ== +"@typescript-eslint/scope-manager@4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.28.4.tgz#bdbce9b6a644e34f767bd68bc17bb14353b9fe7f" + integrity sha512-ZJBNs4usViOmlyFMt9X9l+X0WAFcDH7EdSArGqpldXu7aeZxDAuAzHiMAeI+JpSefY2INHrXeqnha39FVqXb8w== dependencies: - "@typescript-eslint/types" "4.28.3" - "@typescript-eslint/visitor-keys" "4.28.3" + "@typescript-eslint/types" "4.28.4" + "@typescript-eslint/visitor-keys" "4.28.4" -"@typescript-eslint/types@4.28.3": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.3.tgz#8fffd436a3bada422c2c1da56060a0566a9506c7" - integrity sha512-kQFaEsQBQVtA9VGVyciyTbIg7S3WoKHNuOp/UF5RG40900KtGqfoiETWD/v0lzRXc+euVE9NXmfer9dLkUJrkA== +"@typescript-eslint/types@4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.4.tgz#41acbd79b5816b7c0dd7530a43d97d020d3aeb42" + integrity sha512-3eap4QWxGqkYuEmVebUGULMskR6Cuoc/Wii0oSOddleP4EGx1tjLnZQ0ZP33YRoMDCs5O3j56RBV4g14T4jvww== -"@typescript-eslint/typescript-estree@4.28.3": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.3.tgz#253d7088100b2a38aefe3c8dd7bd1f8232ec46fb" - integrity sha512-YAb1JED41kJsqCQt1NcnX5ZdTA93vKFCMP4lQYG6CFxd0VzDJcKttRlMrlG+1qiWAw8+zowmHU1H0OzjWJzR2w== +"@typescript-eslint/typescript-estree@4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.4.tgz#252e6863278dc0727244be9e371eb35241c46d00" + integrity sha512-z7d8HK8XvCRyN2SNp+OXC2iZaF+O2BTquGhEYLKLx5k6p0r05ureUtgEfo5f6anLkhCxdHtCf6rPM1p4efHYDQ== dependencies: - "@typescript-eslint/types" "4.28.3" - "@typescript-eslint/visitor-keys" "4.28.3" + "@typescript-eslint/types" "4.28.4" + "@typescript-eslint/visitor-keys" "4.28.4" debug "^4.3.1" globby "^11.0.3" is-glob "^4.0.1" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.28.3": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.3.tgz#26ac91e84b23529968361045829da80a4e5251c4" - integrity sha512-ri1OzcLnk1HH4gORmr1dllxDzzrN6goUIz/P4MHFV0YZJDCADPR3RvYNp0PW2SetKTThar6wlbFTL00hV2Q+fg== +"@typescript-eslint/visitor-keys@4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.4.tgz#92dacfefccd6751cbb0a964f06683bfd72d0c4d3" + integrity sha512-NIAXAdbz1XdOuzqkJHjNKXKj8QQ4cv5cxR/g0uQhCYf/6//XrmfpaYsM7PnBcNbfvTDLUkqQ5TPNm1sozDdTWg== dependencies: - "@typescript-eslint/types" "4.28.3" + "@typescript-eslint/types" "4.28.4" eslint-visitor-keys "^2.0.0" "@vercel/node@^1.11.1": @@ -1884,10 +1884,10 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= -ast-metadata-inferer@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/ast-metadata-inferer/-/ast-metadata-inferer-0.5.0.tgz#6007bfa32543258322c3652dde0ca6a6761e2515" - integrity sha512-uhp1vIlDHp+VuhtHFlD7uSD9aAOc45AV9b0hIqGIbWM51932Q2DQwTeL5CL5CWnQwPWp/6qvSah9naO4bvklIQ== +ast-metadata-inferer@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/ast-metadata-inferer/-/ast-metadata-inferer-0.5.1.tgz#8268d68b20c03ff3dbce97c15dfa00dcac70fa5c" + integrity sha512-fj+QuB47ODy18p5gJ4BFnpenk992o7gx7oPid6oUK9+Uy/F3/5cvZ13harpQPN5Y8MlcjYf0y1LwgOV1J31k+A== dependencies: "@mdn/browser-compat-data" "^3.3.11" @@ -2750,9 +2750,9 @@ color-support@^1.1.3: integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== colord@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.1.0.tgz#28cd9d6ac874dff97ef5ec1432c5c0b4e58e49c7" - integrity sha512-H5sDP9XDk2uP+x/xSGkgB9SEFc1bojdI5DMKU0jmSXQtml2GIe48dj1DcSS0e53QQAHn+JKqUXbGeGX24xWD7w== + version "2.2.0" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.2.0.tgz#1b6b97ad3d0845f179d1dbd401158bc3cf062eff" + integrity sha512-LNYryRuHYAiq+5/22oIblna5nWztTm6LM4xGvvpB42jYQgE1AhmW/dN+rhem8L3tVz0B/Ej2zuDB8zlaS1OSWw== colorette@^1.2.1, colorette@^1.2.2: version "1.2.2" @@ -2878,6 +2878,11 @@ convert-source-map@^1.1.0, convert-source-map@^1.5.0, convert-source-map@^1.7.0: dependencies: safe-buffer "~5.1.1" +cookie@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= + cookie@^0.4.1, cookie@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" @@ -2991,10 +2996,10 @@ css-declaration-sorter@^6.0.3: dependencies: timsort "^0.3.0" -css-loader@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.0.0.tgz#e3f9131229df43e081876f434dc2f4605be9d5ae" - integrity sha512-xi3iTbHekvk5dWWdqfQKNsEm2g3Vr20uRwHzfXF+pHsaFGMuxTrqR1y8PY+st5G7wqid4/pBSiaqZsO6iaGN5g== +css-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.2.0.tgz#9663d9443841de957a3cb9bcea2eda65b3377071" + integrity sha512-/rvHfYRjIpymZblf49w8jYcRo2y9gj6rV8UroHGmBxKrIyGLokpycyKzp9OkitvqT29ZSpzJ0Ic7SpnJX3sC8g== dependencies: icss-utils "^5.1.0" postcss "^8.2.15" @@ -3631,9 +3636,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.723: - version "1.3.779" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.779.tgz#de55492a756deec63424f89fbe62aec9776f0e6d" - integrity sha512-nreave0y/1Qhmo8XtO6C/LpawNyC6U26+q7d814/e+tIqUK073pM+4xW7WUXyqCRa5K4wdxHmNMBAi8ap9nEew== + version "1.3.780" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.780.tgz#f946e10dc0005a3b59b9afa2d2c92f5c421f7fc5" + integrity sha512-2KQ9OYm9WMUNpAPA/4aerURl3hwRc9tNlpsiEj3Y8Gf7LVf26NzyLIX2v0hSagQwrS9+cWab+28A2GPKDoVNRA== emoji-regex@^7.0.1: version "7.0.3" @@ -3857,13 +3862,13 @@ eslint-module-utils@^2.6.1: debug "^3.2.7" pkg-dir "^2.0.0" -eslint-plugin-compat@~3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-compat/-/eslint-plugin-compat-3.11.0.tgz#f67485c7564127b17b6ba5fc1e673b73c196b79f" - integrity sha512-rQzJtZ9A618PBgL2dj3iWkQYvOWfYpaG5gNWEd5EFIYcVnB4zvxImcvpn0DS90T8lRU8pti7pWDUSGRqy5HitA== +eslint-plugin-compat@~3.11.1: + version "3.11.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-compat/-/eslint-plugin-compat-3.11.1.tgz#f95d7da1cdbb7c05c81d75fa2e1ecee266ccf4aa" + integrity sha512-iJyltnaVN9g/MYL3WGb6GFyJs+4mMkumq2E5srxsQIfPqQh14HEE0dtQC/HKDWze+hkwQtSo5DvC3IW5Gmxdtw== dependencies: "@mdn/browser-compat-data" "^3.3.11" - ast-metadata-inferer "^0.5.0" + ast-metadata-inferer "^0.5.1" browserslist "^4.16.6" caniuse-lite "^1.0.30001245" core-js "^3.15.2" @@ -3931,13 +3936,13 @@ eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint@~7.30.0: - version "7.30.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.30.0.tgz#6d34ab51aaa56112fd97166226c9a97f505474f8" - integrity sha512-VLqz80i3as3NdloY44BQSJpFw534L9Oh+6zJOUaViV4JPd+DaHwutqP7tcpkW3YiXbK6s05RZl7yl7cQn+lijg== +eslint@~7.31.0: + version "7.31.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.31.0.tgz#f972b539424bf2604907a970860732c5d99d3aca" + integrity sha512-vafgJpSh2ia8tnTkNUkwxGmnumgckLh5aAbLa1xRmIn9+owi8qBNGKL+B881kNKNTy7FFqTEkpNkUvmw0n6PkA== dependencies: "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.2" + "@eslint/eslintrc" "^0.4.3" "@humanwhocodes/config-array" "^0.5.0" ajv "^6.10.0" chalk "^4.0.0" @@ -4762,9 +4767,9 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: is-glob "^4.0.1" glob-parent@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.0.tgz#f851b59b388e788f3a44d63fab50382b2859c33c" - integrity sha512-Hdd4287VEJcZXUwv1l8a+vXC1GjOQqXe+VS30w/ypihpcnu9M1n3xeYeJu5CBpeEQj2nAab2xxz28GuA3vp4Ww== + version "6.0.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.1.tgz#42054f685eb6a44e7a7d189a96efa40a54971aa7" + integrity sha512-kEVjS71mQazDBHKcsq4E9u/vUzaLcw1A8EtUeydawvIWQCJM0qQ08G1H7/XTjFUulla6XQiDOG6MXSaG0HDKog== dependencies: is-glob "^4.0.1" @@ -6360,6 +6365,13 @@ loader-utils@^2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" +local-storage-fallback@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/local-storage-fallback/-/local-storage-fallback-4.1.2.tgz#bd882e6dc12d78e8bf66190043624572b3811308" + integrity sha512-oMTj4q8vnZ5FUB/tclzrTgMppSJgGs3ng4fm7qXEK/NjdzNKkVVncMRlsML+l6FwV0WBoOk8rVD5GqNQIhcz8Q== + dependencies: + cookie "^0.3.1" + localtunnel@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-2.0.1.tgz#8f7c593f3005647f7675e6e69af9bf746571a631" @@ -8477,9 +8489,9 @@ rechoir@^0.6.2: resolve "^1.1.6" rechoir@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" - integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q== + version "0.7.1" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" + integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== dependencies: resolve "^1.9.0" @@ -8868,11 +8880,11 @@ schema-utils@^2.6.5: ajv-keywords "^3.5.2" schema-utils@^3.0, schema-utils@^3.0.0, schema-utils@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.0.tgz#95986eb604f66daadeed56e379bfe7a7f963cdb9" - integrity sha512-tTEaeYkyIhEZ9uWgAjDerWov3T9MgX8dhhy2r0IGeeX4W8ngtGl1++dUve/RUqzuaASSh7shwCDJjEzthxki8w== + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== dependencies: - "@types/json-schema" "^7.0.7" + "@types/json-schema" "^7.0.8" ajv "^6.12.5" ajv-keywords "^3.5.2" @@ -9581,10 +9593,10 @@ stylelint-prettier@~1.2.0: dependencies: prettier-linter-helpers "^1.0.0" -stylelint-scss@^3.18.0, stylelint-scss@~3.19.0: - version "3.19.0" - resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-3.19.0.tgz#528006d5a4c5a0f1f4d709b02fd3f626ed66d742" - integrity sha512-Ic5bsmpS4wVucOw44doC1Yi9f5qbeVL4wPFiEOaUElgsOuLEN6Ofn/krKI8BeNL2gAn53Zu+IcVV4E345r6rBw== +stylelint-scss@^3.18.0, stylelint-scss@~3.20.1: + version "3.20.1" + resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-3.20.1.tgz#88f175d9cfe1c81a72858bd0d3550cf61530e212" + integrity sha512-OTd55O1TTAC5nGKkVmUDLpz53LlK39R3MImv1CfuvsK7/qugktqiZAeQLuuC4UBhzxCnsc7fp9u/gfRZwFAIkA== dependencies: lodash "^4.17.15" postcss-media-query-parser "^0.2.3" @@ -10494,9 +10506,9 @@ webpack-sources@^1.3.0: source-map "~0.6.1" webpack-sources@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.0.tgz#9ed2de69b25143a4c18847586ad9eccb19278cfa" - integrity sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ== + version "2.3.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" + integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== dependencies: source-list-map "^2.0.1" source-map "^0.6.1"