mirror of
https://github.com/jakejarvis/jarv.is.git
synced 2025-06-30 22:46:39 -04:00
update component prop types to use JSX.IntrinsicElements
This commit is contained in:
@ -12,12 +12,12 @@ I keep an ongoing list of [post ideas](https://github.com/jakejarvis/jarv.is/iss
|
||||
|
||||
## 🧶 Getting Started
|
||||
|
||||
Run `yarn install` and `yarn dev`, then open [http://localhost:3000/](http://localhost:3000/) or the outputted URL. ([Yarn must be installed](https://yarnpkg.com/en/docs/install) first; NPM _should_ also work at your own risk.) Pages will live-refresh when source files are changed.
|
||||
Run `yarn install` and `yarn dev`, then open [http://localhost:3000/](http://localhost:3000/). ([Yarn must be installed](https://yarnpkg.com/en/docs/install) first; NPM _should_ also work at your own risk.) Pages will live-refresh when source files are changed.
|
||||
|
||||
## 🌎 Related
|
||||
|
||||
- [💻 /uses](https://jarv.is/uses/) – Things and stuff I use.
|
||||
- [🕰️ Previously on...](https://jarv.is/previously/) – An embarrassing trip down this site's memory lane.
|
||||
- [🕰️ Previously on...](https://jarv.is/previously/) – An embarrassing trip down this site's memory lane. (Try out [/y2k](https://jarv.is/y2k/) if you want to experience the _fully_ immersive time machine...)
|
||||
- [🧅 Tor (.onion) mirror](http://jarvis2i2vp4j4tbxjogsnqdemnte5xhzyi7hziiyzxwge3hzmh57zad.onion/) – For an excessive level of privacy and security.
|
||||
- [📈 Fathom Analytics dashboard](https://jarv.is/stats/)
|
||||
- [🧮 jakejarvis/website-stats](https://github.com/jakejarvis/website-stats) – Daily snapshots of the raw [hit counter](pages/api/hits.ts) data.
|
||||
|
@ -1,11 +1,10 @@
|
||||
import classNames from "classnames";
|
||||
import type { HTMLAttributes } from "react";
|
||||
|
||||
import styles from "./Blockquote.module.css";
|
||||
|
||||
type Props = HTMLAttributes<HTMLElement>;
|
||||
type BlockquoteProps = JSX.IntrinsicElements["blockquote"];
|
||||
|
||||
const Blockquote = ({ className, ...rest }: Props) => (
|
||||
const Blockquote = ({ className, ...rest }: BlockquoteProps) => (
|
||||
<blockquote className={classNames(styles.blockquote, className)} {...rest} />
|
||||
);
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
import { memo } from "react";
|
||||
import css from "styled-jsx/css";
|
||||
import classNames from "classnames";
|
||||
import Link, { Props as CustomLinkProps } from "../Link/Link";
|
||||
import Link, { CustomLinkProps } from "../Link/Link";
|
||||
|
||||
type Props = CustomLinkProps & {
|
||||
type ColorfulLinkProps = CustomLinkProps & {
|
||||
lightColor: string;
|
||||
darkColor: string;
|
||||
};
|
||||
@ -21,7 +21,7 @@ const getLinearGradient = (hex: string, alpha = 0.4) => {
|
||||
return `linear-gradient(${rgbaString},${rgbaString})`;
|
||||
};
|
||||
|
||||
const ColorfulLink = ({ lightColor, darkColor, className, ...rest }: Props) => {
|
||||
const ColorfulLink = ({ lightColor, darkColor, className, ...rest }: ColorfulLinkProps) => {
|
||||
const { className: underlineClassName, styles: underlineStyles } = css.resolve`
|
||||
a {
|
||||
color: ${lightColor};
|
||||
|
@ -3,17 +3,17 @@ import { useTheme } from "next-themes";
|
||||
import classNames from "classnames";
|
||||
import { Giscus } from "@giscus/react";
|
||||
import { giscusConfig } from "../../lib/config";
|
||||
import type { PropsWithChildren, HTMLAttributes } from "react";
|
||||
import type { PropsWithChildren } from "react";
|
||||
import type { GiscusProps } from "@giscus/react";
|
||||
|
||||
import styles from "./Comments.module.css";
|
||||
|
||||
type Props = HTMLAttributes<HTMLDivElement> &
|
||||
type CommentsProps = JSX.IntrinsicElements["div"] &
|
||||
PropsWithChildren<{
|
||||
title: string;
|
||||
}>;
|
||||
|
||||
const Comments = ({ title, className, ...rest }: Props) => {
|
||||
const Comments = ({ title, className, ...rest }: CommentsProps) => {
|
||||
const { resolvedTheme } = useTheme();
|
||||
|
||||
return (
|
||||
|
@ -5,16 +5,11 @@ import { Formik, Form, Field } from "formik";
|
||||
import HCaptcha from "@hcaptcha/react-hcaptcha";
|
||||
import Link from "../Link/Link";
|
||||
import { SendIcon, CheckOcticon, XOcticon } from "../Icons";
|
||||
|
||||
import type { FormikHelpers } from "formik";
|
||||
|
||||
import styles from "./ContactForm.module.css";
|
||||
const cx = classNames.bind(styles);
|
||||
|
||||
type Props = {
|
||||
className?: string;
|
||||
};
|
||||
|
||||
type Values = {
|
||||
name: string;
|
||||
email: string;
|
||||
@ -22,7 +17,11 @@ type Values = {
|
||||
"h-captcha-response": string;
|
||||
};
|
||||
|
||||
const ContactForm = ({ className }: Props) => {
|
||||
type ContactFormProps = {
|
||||
className?: string;
|
||||
};
|
||||
|
||||
const ContactForm = ({ className }: ContactFormProps) => {
|
||||
const { resolvedTheme } = useTheme();
|
||||
|
||||
// status/feedback:
|
||||
|
@ -1,10 +1,11 @@
|
||||
import classNames from "classnames";
|
||||
import type { HTMLAttributes } from "react";
|
||||
|
||||
import styles from "./Content.module.css";
|
||||
|
||||
type Props = HTMLAttributes<HTMLDivElement>;
|
||||
type ContentProps = JSX.IntrinsicElements["div"];
|
||||
|
||||
const Content = ({ className, ...rest }: Props) => <div className={classNames(styles.content, className)} {...rest} />;
|
||||
const Content = ({ className, ...rest }: ContentProps) => (
|
||||
<div className={classNames(styles.content, className)} {...rest} />
|
||||
);
|
||||
|
||||
export default Content;
|
||||
|
@ -8,14 +8,14 @@ import type { ReactNode, Ref } from "react";
|
||||
import styles from "./CopyButton.module.css";
|
||||
const cx = classNames.bind(styles);
|
||||
|
||||
type Props = {
|
||||
type CopyButtonProps = {
|
||||
source: ReactNode;
|
||||
timeout?: number;
|
||||
className?: string;
|
||||
};
|
||||
|
||||
const CopyButton = forwardRef(function CopyButton(
|
||||
{ source, timeout = 2000, className }: Props,
|
||||
{ source, timeout = 2000, className }: CopyButtonProps,
|
||||
ref: Ref<HTMLButtonElement>
|
||||
) {
|
||||
const [copied, setCopied] = useState(false);
|
||||
|
@ -6,12 +6,12 @@ import type { ImageProps as NextImageProps } from "next/image";
|
||||
|
||||
import styles from "./Figure.module.css";
|
||||
|
||||
type Props = Omit<NextImageProps, "alt"> &
|
||||
type FigureProps = Omit<NextImageProps, "alt"> &
|
||||
PropsWithChildren<{
|
||||
alt?: string; // becomes optional -- pulled from plaintext-ified caption if missing
|
||||
}>;
|
||||
|
||||
const Figure = ({ children, alt, className, ...imageProps }: Props) => {
|
||||
const Figure = ({ children, alt, className, ...imageProps }: FigureProps) => {
|
||||
return (
|
||||
<figure className={classNames(styles.figure, className)}>
|
||||
<Image alt={alt || innerText(children)} {...imageProps} />
|
||||
|
@ -3,13 +3,12 @@ import Link from "next/link";
|
||||
import classNames from "classnames";
|
||||
import { HeartIcon, NextjsLogo } from "../Icons";
|
||||
import * as config from "../../lib/config";
|
||||
import type { HTMLAttributes } from "react";
|
||||
|
||||
import styles from "./Footer.module.css";
|
||||
|
||||
type Props = HTMLAttributes<HTMLDivElement>;
|
||||
type FooterProps = JSX.IntrinsicElements["div"];
|
||||
|
||||
const Footer = ({ className, ...rest }: Props) => (
|
||||
const Footer = ({ className, ...rest }: FooterProps) => (
|
||||
<footer className={classNames(styles.footer, className)} {...rest}>
|
||||
<div className={styles.row}>
|
||||
<div className={styles.license}>
|
||||
|
@ -2,13 +2,12 @@ import { memo } from "react";
|
||||
import classNames from "classnames";
|
||||
import Selfie from "../Selfie/Selfie";
|
||||
import Menu from "../Menu/Menu";
|
||||
import type { HTMLAttributes } from "react";
|
||||
|
||||
import styles from "./Header.module.css";
|
||||
|
||||
type Props = HTMLAttributes<HTMLDivElement>;
|
||||
type HeaderProps = JSX.IntrinsicElements["div"];
|
||||
|
||||
const Header = ({ className }: Props) => (
|
||||
const Header = ({ className }: HeaderProps) => (
|
||||
<header className={classNames(styles.header, className)}>
|
||||
<nav className={styles.nav}>
|
||||
<Selfie className={styles.selfie} />
|
||||
|
@ -3,11 +3,11 @@ import type { HTMLAttributes } from "react";
|
||||
|
||||
import styles from "./Heading.module.css";
|
||||
|
||||
type Props = HTMLAttributes<HTMLHeadingElement> & {
|
||||
type HeadingProps = HTMLAttributes<HTMLHeadingElement> & {
|
||||
as: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
|
||||
};
|
||||
|
||||
const Heading = ({ as: Component, id, className, children, ...rest }: Props) => {
|
||||
const Heading = ({ as: Component, id, className, children, ...rest }: HeadingProps) => {
|
||||
return (
|
||||
<Component className={classNames(styles.heading, styles[Component], className)} id={id} {...rest}>
|
||||
{children}
|
||||
@ -20,11 +20,11 @@ const Heading = ({ as: Component, id, className, children, ...rest }: Props) =>
|
||||
);
|
||||
};
|
||||
|
||||
export const H1 = (props: Omit<Props, "as">) => <Heading as="h1" {...props} />;
|
||||
export const H2 = (props: Omit<Props, "as">) => <Heading as="h2" {...props} />;
|
||||
export const H3 = (props: Omit<Props, "as">) => <Heading as="h3" {...props} />;
|
||||
export const H4 = (props: Omit<Props, "as">) => <Heading as="h4" {...props} />;
|
||||
export const H5 = (props: Omit<Props, "as">) => <Heading as="h5" {...props} />;
|
||||
export const H6 = (props: Omit<Props, "as">) => <Heading as="h6" {...props} />;
|
||||
export const H1 = (props: Omit<HeadingProps, "as">) => <Heading as="h1" {...props} />;
|
||||
export const H2 = (props: Omit<HeadingProps, "as">) => <Heading as="h2" {...props} />;
|
||||
export const H3 = (props: Omit<HeadingProps, "as">) => <Heading as="h3" {...props} />;
|
||||
export const H4 = (props: Omit<HeadingProps, "as">) => <Heading as="h4" {...props} />;
|
||||
export const H5 = (props: Omit<HeadingProps, "as">) => <Heading as="h5" {...props} />;
|
||||
export const H6 = (props: Omit<HeadingProps, "as">) => <Heading as="h6" {...props} />;
|
||||
|
||||
export default Heading;
|
||||
|
@ -2,12 +2,12 @@ import useSWR from "swr";
|
||||
import Loading from "../Loading/Loading";
|
||||
import { fetcher } from "../../lib/fetcher";
|
||||
|
||||
type Props = {
|
||||
type HitCounterProps = {
|
||||
slug: string;
|
||||
className?: string;
|
||||
};
|
||||
|
||||
const HitCounter = ({ slug, className }: Props) => {
|
||||
const HitCounter = ({ slug, className }: HitCounterProps) => {
|
||||
// start fetching repos from API immediately
|
||||
const { data, error } = useSWR(`/api/hits/?slug=${encodeURIComponent(slug)}`, fetcher, {
|
||||
// avoid double (or more) counting views
|
||||
|
@ -1,10 +1,11 @@
|
||||
import classNames from "classnames";
|
||||
import type { HTMLAttributes } from "react";
|
||||
|
||||
import styles from "./HorizontalRule.module.css";
|
||||
|
||||
type Props = HTMLAttributes<HTMLHRElement>;
|
||||
type HorizontalRuleProps = JSX.IntrinsicElements["hr"];
|
||||
|
||||
const HorizontalRule = ({ className, ...rest }: Props) => <hr className={classNames(styles.hr, className)} {...rest} />;
|
||||
const HorizontalRule = ({ className, ...rest }: HorizontalRuleProps) => (
|
||||
<hr className={classNames(styles.hr, className)} {...rest} />
|
||||
);
|
||||
|
||||
export default HorizontalRule;
|
||||
|
@ -1,9 +1,8 @@
|
||||
import classNames from "classnames";
|
||||
import { HTMLAttributes } from "react";
|
||||
|
||||
import styles from "./IFrame.module.css";
|
||||
|
||||
type Props = HTMLAttributes<HTMLIFrameElement> & {
|
||||
type IFrameProps = JSX.IntrinsicElements["iframe"] & {
|
||||
src: string;
|
||||
height: number;
|
||||
width?: number; // defaults to 100%
|
||||
@ -11,7 +10,7 @@ type Props = HTMLAttributes<HTMLIFrameElement> & {
|
||||
noScroll?: boolean;
|
||||
};
|
||||
|
||||
const IFrame = ({ src, title, height, width, allowScripts, noScroll, className, ...rest }: Props) => (
|
||||
const IFrame = ({ src, title, height, width, allowScripts, noScroll, className, ...rest }: IFrameProps) => (
|
||||
<iframe
|
||||
className={classNames(styles.frame, className)}
|
||||
src={src}
|
||||
|
@ -5,16 +5,16 @@ import classNames from "classnames";
|
||||
import Header from "../Header/Header";
|
||||
import Footer from "../Footer/Footer";
|
||||
import themes, { toCSS } from "../../lib/themes";
|
||||
import type { PropsWithChildren, HTMLAttributes } from "react";
|
||||
import type { PropsWithChildren } from "react";
|
||||
|
||||
import styles from "./Layout.module.css";
|
||||
|
||||
type Props = HTMLAttributes<HTMLDivElement> &
|
||||
type LayoutProps = JSX.IntrinsicElements["div"] &
|
||||
PropsWithChildren<{
|
||||
noContainer?: boolean; // pass true to disable default `<main>` container styles with padding, etc.
|
||||
}>;
|
||||
|
||||
const Layout = ({ noContainer, className, children, ...rest }: Props) => {
|
||||
const Layout = ({ noContainer, className, children, ...rest }: LayoutProps) => {
|
||||
const { resolvedTheme } = useTheme();
|
||||
|
||||
return (
|
||||
|
@ -1,13 +1,13 @@
|
||||
import NextLink from "next/link";
|
||||
import classNames from "classnames";
|
||||
import isAbsoluteUrl from "is-absolute-url";
|
||||
import type { AnchorHTMLAttributes, PropsWithChildren } from "react";
|
||||
import type { LinkProps } from "next/link";
|
||||
import type { PropsWithChildren } from "react";
|
||||
import type { LinkProps as NextLinkProps } from "next/link";
|
||||
|
||||
import styles from "./Link.module.css";
|
||||
|
||||
export type Props = Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "href"> &
|
||||
LinkProps &
|
||||
export type CustomLinkProps = Omit<JSX.IntrinsicElements["a"], "href"> &
|
||||
NextLinkProps &
|
||||
PropsWithChildren<{
|
||||
forceNewWindow?: boolean;
|
||||
}>;
|
||||
@ -21,7 +21,7 @@ const CustomLink = ({
|
||||
forceNewWindow,
|
||||
className,
|
||||
...rest
|
||||
}: Props) => {
|
||||
}: CustomLinkProps) => {
|
||||
// this component auto-detects whether or not we should use a normal HTML anchor externally or next/link internally,
|
||||
// can be overridden with `forceNewWindow={true}`.
|
||||
if (forceNewWindow || isAbsoluteUrl(href.toString())) {
|
||||
|
@ -1,16 +1,15 @@
|
||||
import classNames from "classnames";
|
||||
import type { HTMLAttributes } from "react";
|
||||
|
||||
import styles from "./List.module.css";
|
||||
|
||||
export const UnorderedList = ({ className, ...rest }: HTMLAttributes<HTMLUListElement>) => (
|
||||
export const UnorderedList = ({ className, ...rest }: JSX.IntrinsicElements["ul"]) => (
|
||||
<ul className={classNames(styles.unordered, className)} {...rest} />
|
||||
);
|
||||
export const OrderedList = ({ className, ...rest }: HTMLAttributes<HTMLOListElement>) => (
|
||||
export const OrderedList = ({ className, ...rest }: JSX.IntrinsicElements["ol"]) => (
|
||||
<ol className={classNames(styles.ordered, className)} {...rest} />
|
||||
);
|
||||
|
||||
// TODO: this is based on good faith that the children are all `<li>`s...
|
||||
export const ListItem = ({ className, ...rest }: HTMLAttributes<HTMLLIElement>) => (
|
||||
export const ListItem = ({ className, ...rest }: JSX.IntrinsicElements["li"]) => (
|
||||
<li className={classNames(styles.item, className)} {...rest} />
|
||||
);
|
||||
|
@ -3,14 +3,14 @@ import classNames from "classnames";
|
||||
|
||||
import styles from "./Loading.module.css";
|
||||
|
||||
type Props = {
|
||||
type LoadingProps = {
|
||||
width: number; // of entire container, in pixels
|
||||
boxes?: number; // total number of boxes (default: 3)
|
||||
timing?: number; // staggered timing between each box's pulse, in seconds (default: 0.1s)
|
||||
className?: string;
|
||||
};
|
||||
|
||||
const Loading = ({ width, boxes = 3, timing = 0.1, className }: Props) => {
|
||||
const Loading = ({ width, boxes = 3, timing = 0.1, className }: LoadingProps) => {
|
||||
// each box is just an empty div
|
||||
const divs = [];
|
||||
|
||||
|
@ -7,7 +7,7 @@ import { HomeIcon, NotesIcon, ProjectsIcon, ContactIcon } from "../Icons";
|
||||
|
||||
import styles from "./Menu.module.css";
|
||||
|
||||
type Props = {
|
||||
type MenuProps = {
|
||||
className?: string;
|
||||
};
|
||||
|
||||
@ -34,7 +34,7 @@ const links = [
|
||||
},
|
||||
];
|
||||
|
||||
const Menu = ({ className }: Props) => {
|
||||
const Menu = ({ className }: MenuProps) => {
|
||||
const router = useRouter();
|
||||
|
||||
return (
|
||||
|
@ -5,7 +5,7 @@ import { ReactNode } from "react";
|
||||
import styles from "./MenuLink.module.css";
|
||||
const cx = classNames.bind(styles);
|
||||
|
||||
type Props = {
|
||||
type MenuLinkProps = {
|
||||
href: string;
|
||||
icon: ReactNode;
|
||||
text: string;
|
||||
@ -13,7 +13,7 @@ type Props = {
|
||||
className?: string;
|
||||
};
|
||||
|
||||
const MenuLink = ({ href, icon, text, current, className }: Props) => (
|
||||
const MenuLink = ({ href, icon, text, current, className }: MenuLinkProps) => (
|
||||
<Link href={href} prefetch={false}>
|
||||
<a className={cx(styles.link, { current: !!current }, className)}>
|
||||
{icon} <span className={styles.label}>{text}</span>
|
||||
|
@ -8,9 +8,9 @@ import type { NoteMetaType } from "../../types";
|
||||
import styles from "./NoteMeta.module.css";
|
||||
import Link from "next/link";
|
||||
|
||||
type Props = Pick<NoteMetaType, "slug" | "date" | "title" | "tags">;
|
||||
type NoteMetaProps = Pick<NoteMetaType, "slug" | "date" | "title" | "tags">;
|
||||
|
||||
const NoteMeta = ({ slug, date, title, tags = [] }: Props) => (
|
||||
const NoteMeta = ({ slug, date, title, tags = [] }: NoteMetaProps) => (
|
||||
<div className={styles.meta}>
|
||||
<div className={styles.meta_item}>
|
||||
<Link
|
||||
|
@ -1,13 +1,12 @@
|
||||
import Link from "next/link";
|
||||
import classNames from "classnames";
|
||||
import type { HTMLAttributes } from "react";
|
||||
import type { NoteMetaType } from "../../types";
|
||||
|
||||
import styles from "./NoteTitle.module.css";
|
||||
|
||||
type Props = Pick<NoteMetaType, "slug" | "htmlTitle"> & HTMLAttributes<HTMLAnchorElement>;
|
||||
type NoteTitleProps = Pick<NoteMetaType, "slug" | "htmlTitle"> & JSX.IntrinsicElements["a"];
|
||||
|
||||
const NoteTitle = ({ slug, htmlTitle, className, ...rest }: Props) => (
|
||||
const NoteTitle = ({ slug, htmlTitle, className, ...rest }: NoteTitleProps) => (
|
||||
<h1 className={classNames(styles.title, className)}>
|
||||
<Link
|
||||
href={{
|
||||
|
@ -4,7 +4,11 @@ import type { NoteMetaType } from "../../types";
|
||||
|
||||
import styles from "./NotesList.module.css";
|
||||
|
||||
const NotesList = ({ notesByYear }) => {
|
||||
type NotesListProps = {
|
||||
notesByYear: Record<string, NoteMetaType[]>;
|
||||
};
|
||||
|
||||
const NotesList = ({ notesByYear }: NotesListProps) => {
|
||||
const sections = [];
|
||||
|
||||
Object.entries(notesByYear).forEach(([year, notes]: [string, NoteMetaType[]]) => {
|
||||
|
@ -1,14 +1,13 @@
|
||||
import classNames from "classnames";
|
||||
import { OctocatOcticon } from "../Icons";
|
||||
import type { HTMLAttributes } from "react";
|
||||
|
||||
import styles from "./OctocatLink.module.css";
|
||||
|
||||
type Props = HTMLAttributes<HTMLAnchorElement> & {
|
||||
type OctocatLinkProps = JSX.IntrinsicElements["a"] & {
|
||||
repo: string;
|
||||
};
|
||||
|
||||
const OctocatLink = ({ repo, className, ...rest }: Props) => (
|
||||
const OctocatLink = ({ repo, className, ...rest }: OctocatLinkProps) => (
|
||||
<a className={styles.link} href={`https://github.com/${repo}`} target="_blank" rel="noopener noreferrer" {...rest}>
|
||||
<OctocatOcticon fill="currentColor" className={classNames(styles.icon, className)} />
|
||||
</a>
|
||||
|
@ -2,13 +2,12 @@ import { useRouter } from "next/router";
|
||||
import Link from "next/link";
|
||||
import classNames from "classnames";
|
||||
import { baseUrl } from "../../lib/config";
|
||||
import type { HTMLAttributes } from "react";
|
||||
|
||||
import styles from "./PageTitle.module.css";
|
||||
|
||||
type Props = HTMLAttributes<HTMLHeadingElement>;
|
||||
type PageTitleProps = JSX.IntrinsicElements["h1"];
|
||||
|
||||
const PageTitle = ({ className, children, ...rest }: Props) => {
|
||||
const PageTitle = ({ className, children, ...rest }: PageTitleProps) => {
|
||||
const router = useRouter();
|
||||
const canonical = `${baseUrl}${router.pathname}/`;
|
||||
|
||||
|
@ -6,11 +6,20 @@ import type { RepoType } from "../../types";
|
||||
|
||||
import styles from "./RepositoryCard.module.css";
|
||||
|
||||
type Props = RepoType & {
|
||||
type RepositoryCardProps = RepoType & {
|
||||
className?: string;
|
||||
};
|
||||
|
||||
const RepositoryCard = ({ name, url, description, language, stars, forks, updatedAt, className }: Props) => (
|
||||
const RepositoryCard = ({
|
||||
name,
|
||||
url,
|
||||
description,
|
||||
language,
|
||||
stars,
|
||||
forks,
|
||||
updatedAt,
|
||||
className,
|
||||
}: RepositoryCardProps) => (
|
||||
<div className={classNames(styles.card, className)}>
|
||||
<Link className={styles.name} href={url}>
|
||||
{name}
|
||||
|
@ -7,11 +7,11 @@ import styles from "./Selfie.module.css";
|
||||
|
||||
import selfieJpg from "../../public/static/images/selfie.jpg";
|
||||
|
||||
type Props = {
|
||||
type SelfieProps = {
|
||||
className?: string;
|
||||
};
|
||||
|
||||
const Selfie = ({ className }: Props) => (
|
||||
const Selfie = ({ className }: SelfieProps) => (
|
||||
<Link href="/">
|
||||
<a className={classNames(styles.link, className)}>
|
||||
<div className={styles.selfie}>
|
||||
|
@ -1,13 +1,13 @@
|
||||
import { forwardRef } from "react";
|
||||
import classNames from "classnames";
|
||||
import type { Ref, HTMLAttributes } from "react";
|
||||
import type { Ref } from "react";
|
||||
|
||||
import styles from "./Terminal.module.css";
|
||||
|
||||
type Props = HTMLAttributes<HTMLDivElement>;
|
||||
type TerminalProps = JSX.IntrinsicElements["div"];
|
||||
|
||||
// a DOS-style terminal box with dynamic text
|
||||
const Terminal = forwardRef(function Terminal({ className, ...rest }: Props, ref: Ref<HTMLSpanElement>) {
|
||||
const Terminal = forwardRef(function Terminal({ className, ...rest }: TerminalProps, ref: Ref<HTMLSpanElement>) {
|
||||
return (
|
||||
<div className={classNames("monospace", className, styles.terminal)} {...rest}>
|
||||
<span ref={ref} /> <span className={styles.blink} />
|
||||
|
@ -4,11 +4,11 @@ import { SunIcon, MoonIcon } from "../Icons";
|
||||
|
||||
import styles from "./ThemeToggle.module.css";
|
||||
|
||||
type Props = {
|
||||
type ThemeToggleProps = {
|
||||
className?: string;
|
||||
};
|
||||
|
||||
const ThemeToggle = ({ className }: Props) => {
|
||||
const ThemeToggle = ({ className }: ThemeToggleProps) => {
|
||||
const [mounted, setMounted] = useState(false);
|
||||
const { resolvedTheme, setTheme } = useTheme();
|
||||
|
||||
|
@ -1,12 +1,12 @@
|
||||
import Tweet from "react-tweet-embed";
|
||||
|
||||
type Props = {
|
||||
type TweetEmbedProps = {
|
||||
id: string;
|
||||
options?: object;
|
||||
className?: string;
|
||||
};
|
||||
|
||||
const TweetEmbed = ({ id, className, options }: Props) => (
|
||||
const TweetEmbed = ({ id, className, options }: TweetEmbedProps) => (
|
||||
<Tweet
|
||||
className={className}
|
||||
id={id}
|
||||
|
@ -5,11 +5,11 @@ import Terminal from "../Terminal/Terminal";
|
||||
|
||||
import styles from "./VNC.module.css";
|
||||
|
||||
type Props = {
|
||||
type VNCProps = {
|
||||
server: string;
|
||||
};
|
||||
|
||||
const VNC = ({ server }: Props) => {
|
||||
const VNC = ({ server }: VNCProps) => {
|
||||
const router = useRouter();
|
||||
|
||||
// we definitely do NOT want this page to connect more than once!
|
||||
|
@ -4,7 +4,7 @@ import type { FilePlayerProps } from "react-player/file";
|
||||
|
||||
import styles from "./Video.module.css";
|
||||
|
||||
type Props = Partial<FilePlayerProps> & {
|
||||
type VideoProps = Partial<FilePlayerProps> & {
|
||||
webm?: string;
|
||||
mp4?: string;
|
||||
thumbnail?: string;
|
||||
@ -13,7 +13,7 @@ type Props = Partial<FilePlayerProps> & {
|
||||
className?: string;
|
||||
};
|
||||
|
||||
const Video = ({ webm, mp4, thumbnail, subs, autoplay, className, ...rest }: Props) => {
|
||||
const Video = ({ webm, mp4, thumbnail, subs, autoplay, className, ...rest }: VideoProps) => {
|
||||
const url = [
|
||||
webm && {
|
||||
src: webm,
|
||||
|
@ -1,17 +1,17 @@
|
||||
import { useEffect, useRef } from "react";
|
||||
import classNames from "classnames/bind";
|
||||
import type { PropsWithChildren, HTMLAttributes } from "react";
|
||||
import type { PropsWithChildren } from "react";
|
||||
|
||||
import styles from "./Wallpaper.module.css";
|
||||
const cx = classNames.bind(styles);
|
||||
|
||||
type Props = HTMLAttributes<HTMLDivElement> &
|
||||
type WallpaperProps = JSX.IntrinsicElements["div"] &
|
||||
PropsWithChildren<{
|
||||
image: string;
|
||||
tile?: boolean;
|
||||
}>;
|
||||
|
||||
const Wallpaper = ({ image, tile, className, ...rest }: Props) => {
|
||||
const Wallpaper = ({ image, tile, className, ...rest }: WallpaperProps) => {
|
||||
const bgRef = useRef<HTMLDivElement>(null);
|
||||
|
||||
useEffect(() => {
|
||||
|
@ -4,12 +4,12 @@ import type { YouTubePlayerProps } from "react-player/youtube";
|
||||
|
||||
import styles from "./YouTubeEmbed.module.css";
|
||||
|
||||
type Props = Partial<YouTubePlayerProps> & {
|
||||
type YouTubeEmbedProps = Partial<YouTubePlayerProps> & {
|
||||
id: string;
|
||||
className?: string;
|
||||
};
|
||||
|
||||
const YouTubeEmbed = ({ id, className, ...rest }: Props) => (
|
||||
const YouTubeEmbed = ({ id, className, ...rest }: YouTubeEmbedProps) => (
|
||||
<div className={classNames(styles.wrapper, className)}>
|
||||
<ReactPlayer
|
||||
width="100%"
|
||||
|
10
lib/seo.ts
10
lib/seo.ts
@ -1,18 +1,17 @@
|
||||
import * as config from "./config";
|
||||
|
||||
import type { DefaultSeoProps } from "next-seo";
|
||||
import type { SocialProfileJsonLdProps } from "next-seo/lib/jsonld/socialProfile";
|
||||
import type { ArticleJsonLdProps } from "next-seo/lib/jsonld/article";
|
||||
|
||||
import faviconIco from "../public/static/favicons/favicon.ico";
|
||||
import faviconPng from "../public/static/favicons/favicon.png";
|
||||
import appleTouchIconPng from "../public/static/favicons/apple-touch-icon.png";
|
||||
import meJpg from "../public/static/images/me.jpg";
|
||||
|
||||
import type { DefaultSeoProps } from "next-seo";
|
||||
import type { SocialProfileJsonLdProps } from "next-seo/lib/jsonld/socialProfile";
|
||||
import type { ArticleJsonLdProps } from "next-seo/lib/jsonld/article";
|
||||
|
||||
// Most of this file simply takes the data already defined in ./config.js and translates it into objects that are
|
||||
// compatible with next-seo's props:
|
||||
// https://github.com/garmeeh/next-seo#default-seo-configuration
|
||||
|
||||
export const defaultSeo: DefaultSeoProps = {
|
||||
defaultTitle: `${config.siteName} – ${config.shortDescription}`,
|
||||
titleTemplate: `%s – ${config.siteName}`, // appends `– siteName` to title provided by each page (except home)
|
||||
@ -122,6 +121,7 @@ export const socialProfileJsonLd: SocialProfileJsonLdProps = {
|
||||
],
|
||||
};
|
||||
|
||||
// Just the basic items applicable to all notes, extended by pages/notes/[slug].tsx
|
||||
// https://github.com/garmeeh/next-seo#article-1
|
||||
export const articleJsonLd: Pick<ArticleJsonLdProps, "authorName" | "publisherName" | "publisherLogo"> = {
|
||||
authorName: [config.authorName],
|
||||
|
@ -26,13 +26,13 @@
|
||||
"@fontsource/comic-neue": "4.5.2",
|
||||
"@fontsource/inter": "4.5.3",
|
||||
"@fontsource/roboto-mono": "4.5.2",
|
||||
"@giscus/react": "^1.1.1",
|
||||
"@giscus/react": "^1.1.2",
|
||||
"@hcaptcha/react-hcaptcha": "^1.1.0",
|
||||
"@next/bundle-analyzer": "12.0.10",
|
||||
"@novnc/novnc": "1.3.0",
|
||||
"@octokit/graphql": "^4.8.0",
|
||||
"@primer/octicons": "^16.3.1",
|
||||
"@sentry/node": "^6.17.5",
|
||||
"@sentry/node": "^6.17.6",
|
||||
"classnames": "^2.3.1",
|
||||
"copy-to-clipboard": "^3.3.1",
|
||||
"critters": "^0.0.16",
|
||||
@ -47,7 +47,7 @@
|
||||
"is-absolute-url": "^4.0.1",
|
||||
"markdown-to-jsx": "^7.1.6",
|
||||
"modern-normalize": "^1.1.0",
|
||||
"next": "12.0.11-canary.7",
|
||||
"next": "12.0.11-canary.9",
|
||||
"next-compose-plugins": "^2.2.1",
|
||||
"next-mdx-remote": "4.0.0-rc.1",
|
||||
"next-seo": "^5.1.0",
|
||||
@ -104,7 +104,7 @@
|
||||
"postcss-preset-env": "^7.3.1",
|
||||
"prettier": "^2.5.1",
|
||||
"simple-git-hooks": "^2.7.0",
|
||||
"stylelint": "~14.3.0",
|
||||
"stylelint": "~14.4.0",
|
||||
"stylelint-config-prettier": "~9.0.3",
|
||||
"stylelint-prettier": "~2.0.0",
|
||||
"typescript": "^4.5.5"
|
||||
|
@ -1,10 +1,9 @@
|
||||
import Document, { Html, Head, Main, NextScript } from "next/document";
|
||||
import classNames from "classnames";
|
||||
import * as config from "../lib/config";
|
||||
|
||||
import type { DocumentContext } from "next/document";
|
||||
|
||||
class MyDocument extends Document {
|
||||
class CustomDocument extends Document {
|
||||
static async getInitialProps(ctx: DocumentContext) {
|
||||
const initialProps = await Document.getInitialProps(ctx);
|
||||
return { ...initialProps };
|
||||
@ -23,4 +22,4 @@ class MyDocument extends Document {
|
||||
}
|
||||
}
|
||||
|
||||
export default MyDocument;
|
||||
export default CustomDocument;
|
||||
|
@ -33,7 +33,7 @@ const License = () => (
|
||||
|
||||
<HorizontalRule />
|
||||
|
||||
<H2>Creative Commons Attribution 4.0 International Public License</H2>
|
||||
<H2 id="full-text">Creative Commons Attribution 4.0 International Public License</H2>
|
||||
|
||||
<p style={{ textAlign: "center", lineHeight: 0 }}>
|
||||
<a
|
||||
|
@ -17,7 +17,7 @@ export const getServerSideProps: GetServerSideProps = async (context) => {
|
||||
// TODO: make this not manual (serverless functions can't see /pages at runtime)
|
||||
const pages: Page[] = [
|
||||
{ relUrl: "/", priority: 1.0, changeFreq: "weekly" }, // homepage
|
||||
{ relUrl: "/notes/" },
|
||||
{ relUrl: "/notes/", changeFreq: "weekly" },
|
||||
{ relUrl: "/birthday/" },
|
||||
{ relUrl: "/cli/" },
|
||||
{ relUrl: "/contact/" },
|
||||
@ -28,6 +28,7 @@ export const getServerSideProps: GetServerSideProps = async (context) => {
|
||||
{ relUrl: "/privacy/", priority: 0.1, changeFreq: "yearly" },
|
||||
{ relUrl: "/projects/", changeFreq: "daily" },
|
||||
{ relUrl: "/uses/" },
|
||||
{ relUrl: "/y2k/" },
|
||||
];
|
||||
|
||||
// push notes separately and use their metadata
|
||||
|
329
yarn.lock
329
yarn.lock
@ -44,16 +44,16 @@
|
||||
source-map "^0.5.0"
|
||||
|
||||
"@babel/core@^7.15.5":
|
||||
version "7.17.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.0.tgz#16b8772b0a567f215839f689c5ded6bb20e864d5"
|
||||
integrity sha512-x/5Ea+RO5MvF9ize5DeVICJoVrNv0Mi2RnIABrZEKYvPEpldXwauPkgvYA17cKa6WpU3LoYvYbuEMFtSNFsarA==
|
||||
version "7.17.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.2.tgz#2c77fc430e95139d816d39b113b31bf40fb22337"
|
||||
integrity sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==
|
||||
dependencies:
|
||||
"@ampproject/remapping" "^2.0.0"
|
||||
"@babel/code-frame" "^7.16.7"
|
||||
"@babel/generator" "^7.17.0"
|
||||
"@babel/helper-compilation-targets" "^7.16.7"
|
||||
"@babel/helper-module-transforms" "^7.16.7"
|
||||
"@babel/helpers" "^7.17.0"
|
||||
"@babel/helpers" "^7.17.2"
|
||||
"@babel/parser" "^7.17.0"
|
||||
"@babel/template" "^7.16.7"
|
||||
"@babel/traverse" "^7.17.0"
|
||||
@ -276,10 +276,10 @@
|
||||
"@babel/traverse" "^7.16.8"
|
||||
"@babel/types" "^7.16.8"
|
||||
|
||||
"@babel/helpers@^7.12.5", "@babel/helpers@^7.17.0":
|
||||
version "7.17.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.0.tgz#79cdf6c66a579f3a7b5e739371bc63ca0306886b"
|
||||
integrity sha512-Xe/9NFxjPwELUvW2dsukcMZIp6XwPSbI4ojFBJuX5ramHuVE22SVcZIwqzdWo5uCgeTXW8qV97lMvSOjq+1+nQ==
|
||||
"@babel/helpers@^7.12.5", "@babel/helpers@^7.17.2":
|
||||
version "7.17.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417"
|
||||
integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==
|
||||
dependencies:
|
||||
"@babel/template" "^7.16.7"
|
||||
"@babel/traverse" "^7.17.0"
|
||||
@ -983,17 +983,17 @@
|
||||
"@babel/plugin-transform-typescript" "^7.16.7"
|
||||
|
||||
"@babel/runtime-corejs3@^7.10.2":
|
||||
version "7.17.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.17.0.tgz#9de2f75b3ca4b68628c01bd76410b64faa4644f7"
|
||||
integrity sha512-qeydncU80ravKzovVncW3EYaC1ji3GpntdPgNcJy9g7hHSY6KX+ne1cbV3ov7Zzm4F1z0+QreZPCuw1ynkmYNg==
|
||||
version "7.17.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz#fdca2cd05fba63388babe85d349b6801b008fd13"
|
||||
integrity sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg==
|
||||
dependencies:
|
||||
core-js-pure "^3.20.2"
|
||||
regenerator-runtime "^0.13.4"
|
||||
|
||||
"@babel/runtime@^7.10.2", "@babel/runtime@^7.16.3", "@babel/runtime@^7.8.4":
|
||||
version "7.17.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.0.tgz#b8d142fc0f7664fb3d9b5833fd40dcbab89276c0"
|
||||
integrity sha512-etcO/ohMNaNA2UBdaXBBSX/3aEzFMRrVfaPv8Ptc0k+cWpWW0QFiGZ2XnVqQZI1Cf734LbPGmqBKWESfW4x/dQ==
|
||||
version "7.17.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941"
|
||||
integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==
|
||||
dependencies:
|
||||
regenerator-runtime "^0.13.4"
|
||||
|
||||
@ -1088,12 +1088,10 @@
|
||||
resolved "https://registry.yarnpkg.com/@fontsource/roboto-mono/-/roboto-mono-4.5.2.tgz#3462d720b7ba0530358dd748545523a711c7428a"
|
||||
integrity sha512-MoWKypBXIyZMnvExDTmaRWJSBNLQvKNaWAk2rAwXCNP5AtIa7mzawx9Yfl1LxCY/kVjhMZHPPKtt75CNQQHzQA==
|
||||
|
||||
"@giscus/react@^1.1.1":
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@giscus/react/-/react-1.1.1.tgz#f3c07438d47638b5e912a9a928714c4aac39b65f"
|
||||
integrity sha512-rJiutdfywkflPszYootlImuhaBzPGctDOiQhaBwYP7bekcnd3YkZABLHMPhup08QJYv49Ev3j6ewWNxOtvTjyg==
|
||||
dependencies:
|
||||
iframe-resizer "^4.3.2"
|
||||
"@giscus/react@^1.1.2":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@giscus/react/-/react-1.1.2.tgz#c97f06aab1272c0fbe567c69ebffe3bad7206e7a"
|
||||
integrity sha512-htSAAiTtoHTRE8GqSSkWmT+Iq7LJhtqSmr+HjEC1cXlNd1WeLVZXjnuiIj7+L8DOUnAdfh+1FClN304FVxIcsQ==
|
||||
|
||||
"@hcaptcha/react-hcaptcha@^1.1.0":
|
||||
version "1.1.0"
|
||||
@ -1129,9 +1127,9 @@
|
||||
integrity sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg==
|
||||
|
||||
"@jridgewell/trace-mapping@^0.3.0":
|
||||
version "0.3.2"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.2.tgz#e051581782a770c30ba219634f2019241c5d3cde"
|
||||
integrity sha512-9KzzH4kMjA2XmBRHfqG2/Vtl7s92l6uNDd0wW7frDE+EUvQFGqNXhWp0UGJjSkt3v2AYjzOZn1QO9XaTNJIt1Q==
|
||||
version "0.3.4"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3"
|
||||
integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==
|
||||
dependencies:
|
||||
"@jridgewell/resolve-uri" "^3.0.3"
|
||||
"@jridgewell/sourcemap-codec" "^1.4.10"
|
||||
@ -1179,10 +1177,10 @@
|
||||
dependencies:
|
||||
webpack-bundle-analyzer "4.3.0"
|
||||
|
||||
"@next/env@12.0.11-canary.7":
|
||||
version "12.0.11-canary.7"
|
||||
resolved "https://registry.yarnpkg.com/@next/env/-/env-12.0.11-canary.7.tgz#3df975809a974edb3475fc448e39dcbd74efcf2b"
|
||||
integrity sha512-uhOJe23+o/0b14ZCfK78ZYlIVDUr0Ae0ZAp/2j2DhAUrHYqdwJoLdRw2UuurHDF3iiMBytrDIB110P1ZINxUpg==
|
||||
"@next/env@12.0.11-canary.9":
|
||||
version "12.0.11-canary.9"
|
||||
resolved "https://registry.yarnpkg.com/@next/env/-/env-12.0.11-canary.9.tgz#d88faa19df4f210cc5f7c005693f4be835808d6b"
|
||||
integrity sha512-mdpsKiYCmYSSJQepsi8cJ6WDvsUYgeHLH4BhwMJhDGcQw7updHGKERZ8CgnaCMbU0q3yf9hl2n7oN9gv2U9E4w==
|
||||
|
||||
"@next/eslint-plugin-next@12.0.10":
|
||||
version "12.0.10"
|
||||
@ -1191,60 +1189,60 @@
|
||||
dependencies:
|
||||
glob "7.1.7"
|
||||
|
||||
"@next/swc-android-arm64@12.0.11-canary.7":
|
||||
version "12.0.11-canary.7"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.0.11-canary.7.tgz#c50e7d07de7b9f4094b86aaa44cc2d83fc27b664"
|
||||
integrity sha512-TRXKpyVImyZoJMks0lCzVpilB8Gpa3r3zJCX4tkvoqkjFc2CtQ5vK53WorNsJ7255USMX33f8GF2B9R4AdEg/w==
|
||||
"@next/swc-android-arm64@12.0.11-canary.9":
|
||||
version "12.0.11-canary.9"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.0.11-canary.9.tgz#d70bc1b9f8f62c95030d680a36671009df0691da"
|
||||
integrity sha512-9TYW6kRsNycWoP7zHp1FOdTvoupBEe4xlSiprDJQvRB19/Ms/6M1MvSJUhBLQ2DH5lExldF/jP2J6vALVkTuZg==
|
||||
|
||||
"@next/swc-darwin-arm64@12.0.11-canary.7":
|
||||
version "12.0.11-canary.7"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.0.11-canary.7.tgz#2db9144b6c5a6fa0432fa9f01c7cf0c3d83cd9ae"
|
||||
integrity sha512-14+tRG3clWjtoL2WkJ0f/g4slBTBT73nyX/+lrKdL6Y5t6aQDkFBcxYCYvQbS+3tRi0LsC75H69fn5Fyt120QQ==
|
||||
"@next/swc-darwin-arm64@12.0.11-canary.9":
|
||||
version "12.0.11-canary.9"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.0.11-canary.9.tgz#c06bcec42f5ba04af667eddb1414891d56b6fcf9"
|
||||
integrity sha512-AT7LGJMwWVBoftUiIHGzD8/HKF2mHxVRJrQJ293ibMK4RMnPK1iSNn1kI/5eKMw3jCPEG/yUGEZupP7NYYI2zA==
|
||||
|
||||
"@next/swc-darwin-x64@12.0.11-canary.7":
|
||||
version "12.0.11-canary.7"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.0.11-canary.7.tgz#42ae3712cd2fbe300948b32c523cb250972f7051"
|
||||
integrity sha512-GS+XoDu9FQaA7tYe9T17VwSlYt/F3sd5WMLRbaZ8XjSF8eyZPMvdmtMxC9cQSRJzu1fya7eGYpeOkdEAQBMAuA==
|
||||
"@next/swc-darwin-x64@12.0.11-canary.9":
|
||||
version "12.0.11-canary.9"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.0.11-canary.9.tgz#8871ab0e42c7a82ccbbb355b9c8da29d62d1a244"
|
||||
integrity sha512-+MER8YoermGDL7pLSteYTnvW9zz7GriLcVotnMt3ODg4QGHk7bope4X7CdW9zmItvDC1f5VGCiKjBqg8TpEGNA==
|
||||
|
||||
"@next/swc-linux-arm-gnueabihf@12.0.11-canary.7":
|
||||
version "12.0.11-canary.7"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.0.11-canary.7.tgz#cd7d6f2efb072e11de50ca488cb66d489b1fbe35"
|
||||
integrity sha512-dY6wTTR8GeOmFFQZNv6uC0uRmPled+0dCVewRFk7wXqkYwhtIEQKkEXmulBQAIb0o5nPoKWm5yHfkUMSDxqrLg==
|
||||
"@next/swc-linux-arm-gnueabihf@12.0.11-canary.9":
|
||||
version "12.0.11-canary.9"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.0.11-canary.9.tgz#afb704eaef0362951aada158320f1e85bd728b9b"
|
||||
integrity sha512-2x+j+pP7Iq6IjZ1mXxxfczVg2TEaQeZJL8HBBL+JxIi7f8l178El1uMg66SLIdr/k3H6mLp25X+Abl0NP33cew==
|
||||
|
||||
"@next/swc-linux-arm64-gnu@12.0.11-canary.7":
|
||||
version "12.0.11-canary.7"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.0.11-canary.7.tgz#acc5744e0173ae32e083d687ef6565c075b145f6"
|
||||
integrity sha512-gfKlHgZ7pzAwqp/C9TlDMs5V52M7UVh1p9C5767jzU9yQjWshFq3dS4G9dpl70XIX28k5z3IQrQFwgPRs9POgA==
|
||||
"@next/swc-linux-arm64-gnu@12.0.11-canary.9":
|
||||
version "12.0.11-canary.9"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.0.11-canary.9.tgz#3c7a7f875ea9d4a3c38af8e7410c559eeb9dc5f8"
|
||||
integrity sha512-02HwAx0CFVmKNTDScLqvQfLEORhDguB6IXP1Gvht+2pDkFUWfWYDqba5tPaHOIUKCeWNRfJIRR3eFy/Pp1erPA==
|
||||
|
||||
"@next/swc-linux-arm64-musl@12.0.11-canary.7":
|
||||
version "12.0.11-canary.7"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.0.11-canary.7.tgz#34f5c92f2a868cb4d826869a8ef05ca3f0db344a"
|
||||
integrity sha512-Fv4M4ipQp8uZ4j/dfXJRY2kqLWsDfttyzicFWAsfxzZ/haTLsok/BmuDtD2qWfMrUQsXkfap1tVsZ/gJSqR0ww==
|
||||
"@next/swc-linux-arm64-musl@12.0.11-canary.9":
|
||||
version "12.0.11-canary.9"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.0.11-canary.9.tgz#efafe9b522241a1c13b909305eef376134f41615"
|
||||
integrity sha512-IqRWieX1hs2ovLa4Jp0XYtEiHdYPljHpqONOOaU5BuJlZcLZUdojR17jvXMCm0jTvL1tXVAV2Dez6V/LYsFrTw==
|
||||
|
||||
"@next/swc-linux-x64-gnu@12.0.11-canary.7":
|
||||
version "12.0.11-canary.7"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.0.11-canary.7.tgz#f87cde0c790705cec3b26b237843068859720062"
|
||||
integrity sha512-hDIyf7A7JWcJx5aZ7bV+ZHOWlxGt0jnc3Fxwicq2QLfyKyi2ejCCicdAv9G4t/LMUV3Z6GcYidQQ7ircQZOBBg==
|
||||
"@next/swc-linux-x64-gnu@12.0.11-canary.9":
|
||||
version "12.0.11-canary.9"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.0.11-canary.9.tgz#fbd66240353fe1553cad389e6a47cd742e31f935"
|
||||
integrity sha512-J2c3fzkwmUeZgX8OtyjeM6qi4jzKZUk7L9fdDdiHhnzysUQk4Lsh7c4h2peYWwu9XAqZ52vSmeYwj2A/rmArbQ==
|
||||
|
||||
"@next/swc-linux-x64-musl@12.0.11-canary.7":
|
||||
version "12.0.11-canary.7"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.0.11-canary.7.tgz#f538bc058eef43d8edfce9ab55cfde551b6f96d4"
|
||||
integrity sha512-mRC/k1zdtJalHIevseIxvF2Wu7MsO0cpUkTCzg8DjiEhryWJ+Z02EIDmAWcQ6spSbdAI8MfMlhajF0fH9AYBVA==
|
||||
"@next/swc-linux-x64-musl@12.0.11-canary.9":
|
||||
version "12.0.11-canary.9"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.0.11-canary.9.tgz#2bb6844f3748f8c23abc029c9b2f15c26b79dbc1"
|
||||
integrity sha512-CmbURYTzg70pZIC1rQGNTSY2rJnblM6bIKBTYz3RcRgxhbTEZk3/YaE7D7ttALvJfJCRaAuGYjaOet52eqvOIg==
|
||||
|
||||
"@next/swc-win32-arm64-msvc@12.0.11-canary.7":
|
||||
version "12.0.11-canary.7"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.0.11-canary.7.tgz#6dcdadaf42e1c105e1b7bccb536af82617c70045"
|
||||
integrity sha512-rn0jynHQGkm26U42GRMYDa1vzps5+As74tFO7Xbrx4z7b31nVp6b0JjL1Tjd0hSxeyII0tVdim2zZjEiuXfqfA==
|
||||
"@next/swc-win32-arm64-msvc@12.0.11-canary.9":
|
||||
version "12.0.11-canary.9"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.0.11-canary.9.tgz#6a2ee59f31fe1c4c99bd7d57d69eeb9dbedbc85f"
|
||||
integrity sha512-yGBW252SDphtlrsY+s4AvhfYE6S6Y2hsUbAiTQsAGugXFOwqXNPEoM2A5G2FG1yG/TUEIpreIWAB7dUO3E7/Hg==
|
||||
|
||||
"@next/swc-win32-ia32-msvc@12.0.11-canary.7":
|
||||
version "12.0.11-canary.7"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.0.11-canary.7.tgz#446a18fe951ac7f9bcc68c670a712244db54fbf9"
|
||||
integrity sha512-KEk0odx4wgrFYFfLTzR81kGSgXv3KBI9XOqys/9n32cCP2K86GtfE8vGtrr0jFMYMQPWhmmX0nI894VhEANPpg==
|
||||
"@next/swc-win32-ia32-msvc@12.0.11-canary.9":
|
||||
version "12.0.11-canary.9"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.0.11-canary.9.tgz#a7895c03c50cfe4926d929673eaf17c5df72e3eb"
|
||||
integrity sha512-E/eMBTfOKr3ya6S16jVKsSFR+UD/QuiwGyYx1qX0Jaq9pswx9gwi7rou4geU3sRdJXJqeBAQYFs6VfDLbMTIxw==
|
||||
|
||||
"@next/swc-win32-x64-msvc@12.0.11-canary.7":
|
||||
version "12.0.11-canary.7"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.0.11-canary.7.tgz#64fc20c272a71b88a3da2bb4da48f148b249277b"
|
||||
integrity sha512-wbBffqhvHPF7tJKScUZJHL8bXm5irdNlHB7jbit8JkJ1HiXnTzi6E/Rjvm9gIk/cG8rd2Ir/FQYNGgtWcRWrTw==
|
||||
"@next/swc-win32-x64-msvc@12.0.11-canary.9":
|
||||
version "12.0.11-canary.9"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.0.11-canary.9.tgz#af4f2cbeb5ce8074d04da142aab74dd44b31c51f"
|
||||
integrity sha512-8+7AG45la2Yv6oDgCemuueNVOojbrDC1zXxdXfMIMkkj3JFHuaYR/T4Iphn09SOjg1TE7M/fzD9L1VCCYt8mQQ==
|
||||
|
||||
"@nodelib/fs.scandir@2.1.5":
|
||||
version "2.1.5"
|
||||
@ -1340,72 +1338,72 @@
|
||||
resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz#7f698254aadf921e48dda8c0a6b304026b8a9323"
|
||||
integrity sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A==
|
||||
|
||||
"@sentry/core@6.17.5":
|
||||
version "6.17.5"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.17.5.tgz#8455e8b4ba36fc50c0d95b25eba06286389663ee"
|
||||
integrity sha512-G1bYvZsWM5n0QYbnv89a24HCXex3rMWUnHWFysNqcWmw2YfiQ9RX5SakGbesewBj2Br2XpaDH0pED3QBUrC7yA==
|
||||
"@sentry/core@6.17.6":
|
||||
version "6.17.6"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.17.6.tgz#6ee2f2851b0bb2f2e967a10a8694d8bd98675aa5"
|
||||
integrity sha512-wSNsQSqsW8vQ2HEvUEXYOJnzTyVDSWbyH4RHrWV1pQM8zqGx/qfz0sKFM5XFnE9ZeaXKL8LXV3v5i73v+z8lew==
|
||||
dependencies:
|
||||
"@sentry/hub" "6.17.5"
|
||||
"@sentry/minimal" "6.17.5"
|
||||
"@sentry/types" "6.17.5"
|
||||
"@sentry/utils" "6.17.5"
|
||||
"@sentry/hub" "6.17.6"
|
||||
"@sentry/minimal" "6.17.6"
|
||||
"@sentry/types" "6.17.6"
|
||||
"@sentry/utils" "6.17.6"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/hub@6.17.5":
|
||||
version "6.17.5"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.17.5.tgz#9985ad61ac71003315ccaca2a2d42eed0e35bf6e"
|
||||
integrity sha512-jBRrG0v3nHrymyj13Dv28aRS6xgQjWup45E0rljeksCxDL9frc734C0QGzGjE2MG7vZWtvd2CgP8uNbgYpwlTw==
|
||||
"@sentry/hub@6.17.6":
|
||||
version "6.17.6"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.17.6.tgz#af387ed1c180c05839610091de21ffb895b1403c"
|
||||
integrity sha512-Ps9nk+DoFia8jhZ1lucdRE0vDx8hqXOsKXJE8a3hK/Ndki0J9jedYqBeLqSgiFG4qRjXpNFcD6TEM6tnQrv5lw==
|
||||
dependencies:
|
||||
"@sentry/types" "6.17.5"
|
||||
"@sentry/utils" "6.17.5"
|
||||
"@sentry/types" "6.17.6"
|
||||
"@sentry/utils" "6.17.6"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/minimal@6.17.5":
|
||||
version "6.17.5"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.17.5.tgz#8116de3a4e8619242f4970ccbb7eea303ef88c52"
|
||||
integrity sha512-WY/IQh2tb4XDkvr/2/8LB0mO8W3cgL6S2Uv+YfVRqogGJRdg5wD67aQ9zypNMq+D84cPwRuR/+51Npj6daox4w==
|
||||
"@sentry/minimal@6.17.6":
|
||||
version "6.17.6"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.17.6.tgz#9e6c37af869133834328889925500e0e76090cef"
|
||||
integrity sha512-PLGf8WlhtdHuY6ofwYR3nyClr/TYHHAW6i0r62OZCOXTqnFPJorZpAz3VCCP2jMJmbgVbo03wN+u/xAA/zwObA==
|
||||
dependencies:
|
||||
"@sentry/hub" "6.17.5"
|
||||
"@sentry/types" "6.17.5"
|
||||
"@sentry/hub" "6.17.6"
|
||||
"@sentry/types" "6.17.6"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/node@^6.17.5":
|
||||
version "6.17.5"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.17.5.tgz#558e88a75162644d54fdd2beed69edd22cf06937"
|
||||
integrity sha512-EFdrAOJKAUNjooVXpqvBF1VVUOUqXtOzjSIxNEd/dzCYDfbcycfe/XAhfiZSWqAlXMdIm1c4FHQj27qcDUQa9w==
|
||||
"@sentry/node@^6.17.6":
|
||||
version "6.17.6"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.17.6.tgz#9ea8c7db089634423e3993127d6f6433535e23b6"
|
||||
integrity sha512-T1s0yPbGvYpoh9pJgLvpy7s+jVwCyf0ieEoN9rSbnPwbi2vm6MfoV5wtGrE0cBHTPgnyOMv+zq4Q3ww6dfr7Pw==
|
||||
dependencies:
|
||||
"@sentry/core" "6.17.5"
|
||||
"@sentry/hub" "6.17.5"
|
||||
"@sentry/tracing" "6.17.5"
|
||||
"@sentry/types" "6.17.5"
|
||||
"@sentry/utils" "6.17.5"
|
||||
"@sentry/core" "6.17.6"
|
||||
"@sentry/hub" "6.17.6"
|
||||
"@sentry/tracing" "6.17.6"
|
||||
"@sentry/types" "6.17.6"
|
||||
"@sentry/utils" "6.17.6"
|
||||
cookie "^0.4.1"
|
||||
https-proxy-agent "^5.0.0"
|
||||
lru_map "^0.3.3"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/tracing@6.17.5":
|
||||
version "6.17.5"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.17.5.tgz#3bc25279d370b9771d1f8abe3d7d7e7a0f445c9f"
|
||||
integrity sha512-SVIDFL/QbNAlv+Rhgq14TqtTBp9WGipkjQXXaD/Pbqcj3/Oil7ZHHKYesW8Z+gtKQs73oQ9a0nCgraLFcQ68PQ==
|
||||
"@sentry/tracing@6.17.6":
|
||||
version "6.17.6"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.17.6.tgz#40f6e6166e05059c7b826ced70056ba06d5722e8"
|
||||
integrity sha512-+h5ov+zEm5WH9+vmFfdT4EIqBOW7Tggzh0BDz8QRStRc2JbvEiSZDs+HlsycBwWMQi/ucJs93FPtNnWjW+xvBw==
|
||||
dependencies:
|
||||
"@sentry/hub" "6.17.5"
|
||||
"@sentry/minimal" "6.17.5"
|
||||
"@sentry/types" "6.17.5"
|
||||
"@sentry/utils" "6.17.5"
|
||||
"@sentry/hub" "6.17.6"
|
||||
"@sentry/minimal" "6.17.6"
|
||||
"@sentry/types" "6.17.6"
|
||||
"@sentry/utils" "6.17.6"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/types@6.17.5":
|
||||
version "6.17.5"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.17.5.tgz#3b6a591c8059d577b51ba2e71f4717aadbea923f"
|
||||
integrity sha512-mn7qKuOvmZRTomJ7BiJEw6DM8femAVQcuHa8hdvK1F6ldMfFVLen5Z2LYGE7iY36GEa1Ba/AGGEKyF8D29y2/Q==
|
||||
"@sentry/types@6.17.6":
|
||||
version "6.17.6"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.17.6.tgz#7065df1433abfd8127462a6fe6f0538dbc307209"
|
||||
integrity sha512-peGM873lDJtHd/jwW9Egr/hhxLuF0bcPIf2kMZlvEvW/G5GCbuaCR4ArQJlh7vQyma+NLn/XdojpJkC0TomKrw==
|
||||
|
||||
"@sentry/utils@6.17.5":
|
||||
version "6.17.5"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.17.5.tgz#8034ac309d5f59ec919c748c6f35d6d831546523"
|
||||
integrity sha512-MMCFCNWW73HRnqPVRGGSaMfSxtvvlNDgu1JFAOT2vnNkuf0mXvH301lyrh4pFJfntrtXOOk4bnGMhyWRlPADdA==
|
||||
"@sentry/utils@6.17.6":
|
||||
version "6.17.6"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.17.6.tgz#900d75f04e126f9ccb73a68cec574038375dd33e"
|
||||
integrity sha512-RI797N8Ax5yuKUftVX6dc0XmXqo5CN7XqJYPFzYC8udutQ4L8ZYadtUcqNsdz1ZQxl+rp0XK9Q6wjoWmsI2RXA==
|
||||
dependencies:
|
||||
"@sentry/types" "6.17.5"
|
||||
"@sentry/types" "6.17.6"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@svgr/babel-plugin-add-jsx-attribute@^6.0.0":
|
||||
@ -1603,9 +1601,9 @@
|
||||
integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==
|
||||
|
||||
"@types/node@*":
|
||||
version "17.0.15"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.15.tgz#97779282c09c09577120a2162e71d8380003590a"
|
||||
integrity sha512-zWt4SDDv1S9WRBNxLFxFRHxdD9tvH8f5/kg5/IaLFdnSNXsDY4eL3Q3XXN+VxUnWIhyVFDwcsmAprvwXoM/ClA==
|
||||
version "17.0.16"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.16.tgz#e3733f46797b9df9e853ca9f719c8a6f7b84cd26"
|
||||
integrity sha512-ydLaGVfQOQ6hI1xK2A5nVh8bl0OGoIfYMxPWHqqYe9bTkWCfqiVvZoh2I/QF2sNSkZzZyROBoTefIEI+PB6iIA==
|
||||
|
||||
"@types/normalize-package-data@^2.4.0":
|
||||
version "2.4.1"
|
||||
@ -2095,9 +2093,9 @@ camelcase@^6.2.0:
|
||||
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
|
||||
|
||||
caniuse-lite@^1.0.30001283, caniuse-lite@^1.0.30001286, caniuse-lite@^1.0.30001297:
|
||||
version "1.0.30001309"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001309.tgz#e0ee78b9bec0704f67304b00ff3c5c0c768a9f62"
|
||||
integrity sha512-Pl8vfigmBXXq+/yUz1jUwULeq9xhMJznzdc/xwl4WclDAuebcTHVefpz8lE/bMI+UN7TOkSSe7B7RnZd6+dzjA==
|
||||
version "1.0.30001310"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001310.tgz#da02cd07432c9eece6992689d1b84ca18139eea8"
|
||||
integrity sha512-cb9xTV8k9HTIUA3GnPUJCk0meUnrHL5gy5QePfDjxHyNBcnzPzrHFv5GqfP7ue5b1ZyzZL0RJboD6hQlPXjhjg==
|
||||
|
||||
ccount@^1.0.0:
|
||||
version "1.1.0"
|
||||
@ -2381,6 +2379,11 @@ css-blank-pseudo@^3.0.2:
|
||||
dependencies:
|
||||
postcss-selector-parser "^6.0.9"
|
||||
|
||||
css-functions-list@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.0.0.tgz#faa770a0666aea11435efc0889935336cea564be"
|
||||
integrity sha512-rfwhBOvXVFcKrSwmLxD8JQyuEEy/3g3Y9FMI2l6iV558Coeo1ucXypXb4rwrVpk5Osh5ViXp2DTgafw8WxglhQ==
|
||||
|
||||
css-has-pseudo@^3.0.3:
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz#57f6be91ca242d5c9020ee3e51bbb5b89fc7af73"
|
||||
@ -2604,9 +2607,9 @@ eastasianwidth@^0.2.0:
|
||||
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
|
||||
|
||||
electron-to-chromium@^1.4.17:
|
||||
version "1.4.66"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.66.tgz#d7453d363dcd7b06ed1757adcde34d724e27b367"
|
||||
integrity sha512-f1RXFMsvwufWLwYUxTiP7HmjprKXrqEWHiQkjAYa9DJeVIlZk5v8gBGcaV+FhtXLly6C1OTVzQY+2UQrACiLlg==
|
||||
version "1.4.67"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.67.tgz#699e59d6959d05f87865e12b3055bbcf492bbbee"
|
||||
integrity sha512-A6a2jEPLueEDfb7kvh7/E94RKKnIb01qL+4I7RFxtajmo+G9F5Ei7HgY5PRbQ4RDrh6DGDW66P0hD5XI2nRAcg==
|
||||
|
||||
emoji-regex@^8.0.0:
|
||||
version "8.0.0"
|
||||
@ -2619,9 +2622,9 @@ emoji-regex@^9.2.2:
|
||||
integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
|
||||
|
||||
enhanced-resolve@^5.7.0:
|
||||
version "5.8.3"
|
||||
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0"
|
||||
integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==
|
||||
version "5.9.0"
|
||||
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.0.tgz#49ac24953ac8452ed8fed2ef1340fc8e043667ee"
|
||||
integrity sha512-weDYmzbBygL7HzGGS26M3hGQx68vehdEg6VUmqSOaFzXExFqlnKuSvsEJCVGQHScS8CQMbrAqftT+AzzHNt/YA==
|
||||
dependencies:
|
||||
graceful-fs "^4.2.4"
|
||||
tapable "^2.2.0"
|
||||
@ -3526,11 +3529,6 @@ human-signals@^2.1.0:
|
||||
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
|
||||
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
|
||||
|
||||
iframe-resizer@^4.3.2:
|
||||
version "4.3.2"
|
||||
resolved "https://registry.yarnpkg.com/iframe-resizer/-/iframe-resizer-4.3.2.tgz#42dd88345d18b9e377b6044dddb98c664ab0ce6b"
|
||||
integrity sha512-gOWo2hmdPjMQsQ+zTKbses08mDfDEMh4NneGQNP4qwePYujY1lguqP6gnbeJkf154gojWlBhIltlgnMfYjGHWA==
|
||||
|
||||
ignore@^4.0.6:
|
||||
version "4.0.6"
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
|
||||
@ -4863,28 +4861,28 @@ next-transpile-modules@^9.0.0:
|
||||
enhanced-resolve "^5.7.0"
|
||||
escalade "^3.1.1"
|
||||
|
||||
next@12.0.11-canary.7:
|
||||
version "12.0.11-canary.7"
|
||||
resolved "https://registry.yarnpkg.com/next/-/next-12.0.11-canary.7.tgz#65671bf3ab4b26ec3674c2b6d2ee17b85c8053f4"
|
||||
integrity sha512-1bEwC2Y8OStU3eC7q9oJetWZPTNBi3ViBRd3OoQovo3sQA7+5CI4W8AV0YmNUsPfotSFPqoRFpyqqwk0btVNMw==
|
||||
next@12.0.11-canary.9:
|
||||
version "12.0.11-canary.9"
|
||||
resolved "https://registry.yarnpkg.com/next/-/next-12.0.11-canary.9.tgz#91d3a3a26d8db08082f45923d17c8d3d5b282b8f"
|
||||
integrity sha512-lsUSsBiuf3QDKX5BCYr33Nv31kZDaHjbKXmi9S299LXdsv1S8z4cQQ/DHTziwSZ7Rtp25I0NzOmBmZAj8jvBkQ==
|
||||
dependencies:
|
||||
"@next/env" "12.0.11-canary.7"
|
||||
"@next/env" "12.0.11-canary.9"
|
||||
caniuse-lite "^1.0.30001283"
|
||||
postcss "8.4.5"
|
||||
styled-jsx "5.0.0"
|
||||
use-subscription "1.5.1"
|
||||
optionalDependencies:
|
||||
"@next/swc-android-arm64" "12.0.11-canary.7"
|
||||
"@next/swc-darwin-arm64" "12.0.11-canary.7"
|
||||
"@next/swc-darwin-x64" "12.0.11-canary.7"
|
||||
"@next/swc-linux-arm-gnueabihf" "12.0.11-canary.7"
|
||||
"@next/swc-linux-arm64-gnu" "12.0.11-canary.7"
|
||||
"@next/swc-linux-arm64-musl" "12.0.11-canary.7"
|
||||
"@next/swc-linux-x64-gnu" "12.0.11-canary.7"
|
||||
"@next/swc-linux-x64-musl" "12.0.11-canary.7"
|
||||
"@next/swc-win32-arm64-msvc" "12.0.11-canary.7"
|
||||
"@next/swc-win32-ia32-msvc" "12.0.11-canary.7"
|
||||
"@next/swc-win32-x64-msvc" "12.0.11-canary.7"
|
||||
"@next/swc-android-arm64" "12.0.11-canary.9"
|
||||
"@next/swc-darwin-arm64" "12.0.11-canary.9"
|
||||
"@next/swc-darwin-x64" "12.0.11-canary.9"
|
||||
"@next/swc-linux-arm-gnueabihf" "12.0.11-canary.9"
|
||||
"@next/swc-linux-arm64-gnu" "12.0.11-canary.9"
|
||||
"@next/swc-linux-arm64-musl" "12.0.11-canary.9"
|
||||
"@next/swc-linux-x64-gnu" "12.0.11-canary.9"
|
||||
"@next/swc-linux-x64-musl" "12.0.11-canary.9"
|
||||
"@next/swc-win32-arm64-msvc" "12.0.11-canary.9"
|
||||
"@next/swc-win32-ia32-msvc" "12.0.11-canary.9"
|
||||
"@next/swc-win32-x64-msvc" "12.0.11-canary.9"
|
||||
|
||||
nice-try@^1.0.4:
|
||||
version "1.0.5"
|
||||
@ -4918,9 +4916,9 @@ node-fetch@^3.2.0:
|
||||
formdata-polyfill "^4.0.10"
|
||||
|
||||
node-releases@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5"
|
||||
integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01"
|
||||
integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==
|
||||
|
||||
normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:
|
||||
version "2.5.0"
|
||||
@ -5540,7 +5538,7 @@ postcss@8.4.5:
|
||||
picocolors "^1.0.0"
|
||||
source-map-js "^1.0.1"
|
||||
|
||||
postcss@^8.3.11, postcss@^8.3.7, postcss@^8.4.5, postcss@^8.4.6:
|
||||
postcss@^8.3.11, postcss@^8.3.7, postcss@^8.4.6:
|
||||
version "8.4.6"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.6.tgz#c5ff3c3c457a23864f32cb45ac9b741498a09ae1"
|
||||
integrity sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==
|
||||
@ -6004,9 +6002,9 @@ run-parallel@^1.1.9:
|
||||
queue-microtask "^1.2.2"
|
||||
|
||||
rxjs@^7.5.2:
|
||||
version "7.5.2"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.2.tgz#11e4a3a1dfad85dbf7fb6e33cbba17668497490b"
|
||||
integrity sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==
|
||||
version "7.5.4"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.4.tgz#3d6bd407e6b7ce9a123e76b1e770dc5761aa368d"
|
||||
integrity sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ==
|
||||
dependencies:
|
||||
tslib "^2.1.0"
|
||||
|
||||
@ -6408,14 +6406,15 @@ stylelint-prettier@~2.0.0:
|
||||
dependencies:
|
||||
prettier-linter-helpers "^1.0.0"
|
||||
|
||||
stylelint@~14.3.0:
|
||||
version "14.3.0"
|
||||
resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.3.0.tgz#26b62730da7b3dc320021fc469d80048d7b77ebe"
|
||||
integrity sha512-PZXSwtJe4f4qBPWBwAbHL0M0Qjrv8iHN+cLpUNsffaVMS3YzpDDRI73+2lsqLAYfQEzxRwpll6BDKImREbpHWA==
|
||||
stylelint@~14.4.0:
|
||||
version "14.4.0"
|
||||
resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.4.0.tgz#9ac2fb3681c5e84046cc0d08b6c60a115d61b5a7"
|
||||
integrity sha512-F6H2frcmdpB5ZXPjvHKSZRmszuYz7bsbl2NXyE+Pn+1P6PMD3dYMKjXci6yEzj9+Yf2ZinxBMaXYvSzYjaHtog==
|
||||
dependencies:
|
||||
balanced-match "^2.0.0"
|
||||
colord "^2.9.2"
|
||||
cosmiconfig "^7.0.1"
|
||||
css-functions-list "^3.0.0"
|
||||
debug "^4.3.3"
|
||||
execall "^2.0.0"
|
||||
fast-glob "^3.2.11"
|
||||
@ -6437,7 +6436,7 @@ stylelint@~14.3.0:
|
||||
normalize-path "^3.0.0"
|
||||
normalize-selector "^0.2.0"
|
||||
picocolors "^1.0.0"
|
||||
postcss "^8.4.5"
|
||||
postcss "^8.4.6"
|
||||
postcss-media-query-parser "^0.2.3"
|
||||
postcss-resolve-nested-selector "^0.1.1"
|
||||
postcss-safe-parser "^6.0.0"
|
||||
@ -7122,9 +7121,9 @@ write-file-atomic@^4.0.0:
|
||||
typedarray-to-buffer "^4.0.0"
|
||||
|
||||
ws@^7.3.1:
|
||||
version "7.5.6"
|
||||
resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b"
|
||||
integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==
|
||||
version "7.5.7"
|
||||
resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67"
|
||||
integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==
|
||||
|
||||
xml-js@^1.6.11:
|
||||
version "1.6.11"
|
||||
|
Reference in New Issue
Block a user