mirror of
https://github.com/jakejarvis/jarv.is.git
synced 2025-04-26 08:25:21 -04:00
lots of random cleanup & organization
This commit is contained in:
parent
71892d3e17
commit
e4d3e074fd
@ -118,7 +118,7 @@ const getSiteStats = async (client: Client): Promise<OverallStats> => {
|
||||
// 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
|
||||
|
@ -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<Repository[]> => {
|
||||
);
|
||||
|
||||
// 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<GHRepoSchema> }) => ({
|
||||
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;
|
||||
};
|
||||
|
@ -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<Track> => {
|
||||
}
|
||||
|
||||
// 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<Track> => {
|
||||
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<Track[]> => {
|
||||
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<SpotifyTrackSchema>) => ({
|
||||
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,
|
||||
}));
|
||||
|
||||
|
4
api/types/hits.d.ts
vendored
4
api/types/hits.d.ts
vendored
@ -2,8 +2,8 @@ export type PageStats = {
|
||||
slug: string;
|
||||
hits: number;
|
||||
title?: string;
|
||||
url?: string;
|
||||
date?: string;
|
||||
url?: URL;
|
||||
date?: Date;
|
||||
};
|
||||
|
||||
export type OverallStats = {
|
||||
|
16
api/types/projects.d.ts
vendored
16
api/types/projects.d.ts
vendored
@ -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<BaseRepoInfo> & {
|
||||
primaryLanguage?: Language;
|
||||
stargazerCount: number;
|
||||
forkCount: number;
|
||||
pushedAt: string;
|
||||
pushedAt: Date;
|
||||
};
|
||||
|
||||
export type Repository = Required<BaseRepoInfo> & {
|
||||
language?: Language;
|
||||
stars: number;
|
||||
forks: number;
|
||||
updatedAt: Date;
|
||||
};
|
||||
|
24
api/types/tracks.d.ts
vendored
24
api/types/tracks.d.ts
vendored
@ -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;
|
||||
};
|
||||
|
@ -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 () => {};
|
||||
|
@ -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 <body> classes:
|
||||
var dark = "dark";
|
||||
var light = "light";
|
||||
|
||||
// which class is <body> 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 <body> classes:
|
||||
const dark = "dark";
|
||||
const light = "light";
|
||||
|
||||
// which class is <body> 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 <body> 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
|
||||
|
@ -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`,
|
||||
});
|
||||
|
@ -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 += `<p class="repo-description">${repo.description}</p>`;
|
||||
}
|
||||
|
||||
if (repo.primaryLanguage) {
|
||||
if (repo.language) {
|
||||
html += `
|
||||
<div class="repo-meta">
|
||||
<span class="repo-language-color" style="background-color: ${repo.primaryLanguage.color}"></span>
|
||||
<span>${repo.primaryLanguage.name}</span>
|
||||
<span class="repo-language-color" style="background-color: ${repo.language.color}"></span>
|
||||
<span>${repo.language.name}</span>
|
||||
</div>`;
|
||||
}
|
||||
|
||||
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 += `
|
||||
<div class="repo-meta" title="${starsComma} ${starsPlural}">
|
||||
@ -39,9 +40,9 @@ if (wrapper) {
|
||||
</div>`;
|
||||
}
|
||||
|
||||
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 += `
|
||||
<div class="repo-meta" title="${forksComma} ${forksPlural}">
|
||||
@ -51,8 +52,8 @@ if (wrapper) {
|
||||
}
|
||||
|
||||
html += `
|
||||
<div class="repo-meta" title="${dayjs(repo.pushedAt).format("MMM D, YYYY h:mm A")}">
|
||||
<span>Updated ${dayjs(repo.pushedAt).fromNow()}</span>
|
||||
<div class="repo-meta" title="${dayjs(repo.updatedAt).format("MMM D, YYYY h:mm A")}">
|
||||
<span>Updated ${dayjs(repo.updatedAt).fromNow()}</span>
|
||||
</div>`;
|
||||
|
||||
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
|
||||
|
29
gulpfile.js
29
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:
|
||||
|
@ -1,3 +1,6 @@
|
||||
{{- partial "functions/prepare-meta" . -}}
|
||||
{{- partial "functions/prepare-js" . -}}
|
||||
{{- partial "functions/prepare-css" . -}}
|
||||
<!doctype html>
|
||||
{{ printf "<!-- htmlmin:ignore -->" | safeHTML -}}
|
||||
{{ printf "<!--\n ,,, ,,,\n ;\" ^; ;\" \",\n ; s$$$$$s ;\n , ss$$$$$$$ss ,\"\n ;$$$$$$$$$$$$$$$$\n $$$$$$$$$$$$$$$$$$ Hello, human. :)\n $$$$$\"\"\"$$$\"\"\"$$$$$$\n $$$$$ p\"$$$\"q $$$$$ %s\n $$$$ .$$$$$. $$$$\n $$$$$$$$$$$$$$$$$\n \"$$$$\"*\"$$$$\"\n \"$$.$$\"\n-->" (print .Site.Params.baseURL "/humans.txt") | safeHTML }}
|
||||
@ -13,7 +16,6 @@
|
||||
</main>
|
||||
{{ partial "page/footer" . }}
|
||||
{{ template "__body_js" . }}
|
||||
{{ partial "scripts/shortcodes" . -}}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
{{- $img := partial "functions/init" . -}}
|
||||
{{- $img := partial "functions/prepare-meta" . -}}
|
||||
{{ printf "<?xml version=\"1.0\" encoding=\"utf-8\"?>" | safeHTML }}
|
||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
<title>{{ .Site.Title }}</title>
|
||||
|
@ -1,86 +0,0 @@
|
||||
{{/* Pull in assets processed by Webpack */}}
|
||||
{{- define "__head_css" -}}
|
||||
{{ with .Site.Data.manifest }}
|
||||
{{ with index . "main.css" }}
|
||||
<link rel="stylesheet" href="{{ .src | absURL }}">
|
||||
{{ 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 -}}
|
||||
<style>
|
||||
{{ $css.Content | safeCSS }}
|
||||
</style>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "__head_preload" -}}
|
||||
{{ with .Site.Data.manifest }}
|
||||
{{ with index . "fonts/inter-subset.var.woff2" }}
|
||||
<link rel="preload" href="{{ .src | absURL }}" as="font" type="font/woff2" crossorigin>
|
||||
{{ end }}
|
||||
{{ with index . "fonts/roboto-mono-subset.var.woff2" }}
|
||||
<link rel="preload" href="{{ .src | absURL }}" as="font" type="font/woff2" crossorigin>
|
||||
{{ end }}
|
||||
{{ with index . "main.js" }}
|
||||
<link rel="preload" href="{{ .src | absURL }}" as="script">
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "__body_js" -}}
|
||||
<!-- inline the dark mode script to avoid a blinding flash of white background on loads -->
|
||||
<script>(function(d){var u=d.document,f=u.body.classList,e=localStorage,c="dark_mode_pref",t=e.getItem(c),a="dark",n="light",r="{{ .Site.Params.Theme.defaultTheme | safeJS }}",o=u.querySelector(".dark-mode-toggle"),i=r===a,b=function(d){f.remove(a,n);f.add(d);i=d===a};t===a&&b(a);t===n&&b(n);if(!t){var s=function(d){return"(prefers-color-scheme: "+d+")"};d.matchMedia(s(a)).matches?b(a):d.matchMedia(s(n)).matches?b(n):b(r);d.matchMedia(s(a)).addListener((function(d){d.matches&&b(a)}));d.matchMedia(s(n)).addListener((function(d){d.matches&&b(n)}))}if(o){o.style.display="block";o.addEventListener("click",(function(){if(i){b(n);e.setItem(c,n)}else{b(a);e.setItem(c,a)}}),!0)}})(window)</script>
|
||||
|
||||
{{ with .Site.Data.manifest }}
|
||||
{{ with index . "main.js" -}}
|
||||
<script async defer src="{{ .src | absURL }}" ></script>
|
||||
{{ 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 -}}
|
19
layouts/partials/functions/prepare-css.html
Normal file
19
layouts/partials/functions/prepare-css.html
Normal file
@ -0,0 +1,19 @@
|
||||
{{/* Pull in CSS processed by Webpack */}}
|
||||
|
||||
{{- define "__head_css" -}}
|
||||
{{ with .Site.Data.manifest }}
|
||||
{{ with index . "main.css" }}
|
||||
<link rel="stylesheet" href="{{ .src | absURL }}">
|
||||
{{ 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 -}}
|
||||
<style>
|
||||
{{ $css.Content | safeCSS }}
|
||||
</style>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
40
layouts/partials/functions/prepare-js.html
Normal file
40
layouts/partials/functions/prepare-js.html
Normal file
@ -0,0 +1,40 @@
|
||||
{{/* Pull in JS processed by Webpack */}}
|
||||
|
||||
{{- define "__head_preload" -}}
|
||||
{{ with .Site.Data.manifest }}
|
||||
{{ with index . "fonts/inter-subset.var.woff2" }}
|
||||
<link rel="preload" href="{{ .src | absURL }}" as="font" type="font/woff2" crossorigin>
|
||||
{{ end }}
|
||||
{{ with index . "fonts/roboto-mono-subset.var.woff2" }}
|
||||
<link rel="preload" href="{{ .src | absURL }}" as="font" type="font/woff2" crossorigin>
|
||||
{{ end }}
|
||||
{{ with index . "main.js" }}
|
||||
<link rel="preload" href="{{ .src | absURL }}" as="script">
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "__body_js" -}}
|
||||
{{ with .Site.Data.manifest }}
|
||||
{{ with index . "main.js" -}}
|
||||
<script async defer src="{{ .src | absURL }}"></script>
|
||||
{{ 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 -}}
|
39
layouts/partials/functions/prepare-meta.html
Normal file
39
layouts/partials/functions/prepare-meta.html
Normal file
@ -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 -}}
|
@ -1,4 +1,3 @@
|
||||
{{ partial "functions/init" . -}}
|
||||
{{ partial "head/meta" . -}}
|
||||
{{ partial "head/open-graph" . -}}
|
||||
{{ partialCached "head/mobile" . -}}
|
||||
|
@ -1,8 +0,0 @@
|
||||
{{ with .Site.GoogleAnalytics }}
|
||||
<script>
|
||||
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
|
||||
ga('create', '{{ . }}', 'auto');
|
||||
ga('send', 'pageview');
|
||||
</script>
|
||||
<script async src="https://www.google-analytics.com/analytics.js"></script>
|
||||
{{ end }}
|
@ -1,19 +0,0 @@
|
||||
{{ if .Site.Params.PiwikServer }}
|
||||
<script>
|
||||
var _paq = window._paq || [];
|
||||
// tracker methods like "setCustomDimension" should be called before "trackPageView"
|
||||
_paq.push(['setRequestMethod', 'POST']);
|
||||
_paq.push(['setSecureCookie', true]);
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
_paq.push(['enableHeartBeatTimer']);
|
||||
(function() {
|
||||
var u="{{ .Site.Params.PiwikServer }}";
|
||||
_paq.push(['setTrackerUrl', u+'piwik.php']);
|
||||
_paq.push(['setSiteId', '{{ .Site.Params.PiwikSiteId }}']);
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
||||
</script>
|
||||
<noscript><img src="{{ .Site.Params.PiwikServer }}/send?idsite={{ .Site.Params.PiwikSiteId }}&rec={{ .Site.Params.PiwikSiteId }}" alt=""></noscript>
|
||||
{{ end }}
|
@ -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 -}}
|
@ -1,2 +0,0 @@
|
||||
<script async defer src="https://scripts.simpleanalyticscdn.com/latest.js"></script>
|
||||
<noscript><img src="https://queue.simpleanalyticscdn.com/noscript.gif" alt=""/></noscript>
|
@ -1,2 +0,0 @@
|
||||
{{/* optional feature, see: https://docs.simpleanalytics.com/events */}}
|
||||
<script>window.sa_event=window.sa_event||function(){a=[].slice.call(arguments);sa_event.q?sa_event.q.push(a):sa_event.q=[a]};</script>
|
@ -1,4 +1,4 @@
|
||||
{{- $img := partial "functions/init" . -}}
|
||||
{{- $img := partial "functions/prepare-meta" . -}}
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>{{ .Site.Title }}</title>
|
||||
|
21
package.json
21
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",
|
||||
|
@ -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",
|
||||
|
352
yarn.lock
352
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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user