mirror of
https://github.com/jakejarvis/jarv.is.git
synced 2025-06-30 22:06:38 -04:00
just some refactoring
This commit is contained in:
@ -12,11 +12,10 @@ const InputStyles = css({
|
||||
width: "100%",
|
||||
padding: "0.8em",
|
||||
margin: "0.6em 0",
|
||||
border: "2px solid",
|
||||
border: "2px solid $light",
|
||||
borderRadius: "$rounded",
|
||||
color: "$text",
|
||||
backgroundColor: "$superDuperLight",
|
||||
borderColor: "$light",
|
||||
|
||||
// light-dark theme switch fading
|
||||
transition: "background 0.25s ease",
|
||||
|
@ -49,11 +49,7 @@ const NextjsLink = styled(Link, {
|
||||
|
||||
const ViewSourceLink = styled(Link, {
|
||||
paddingBottom: "2px",
|
||||
borderBottom: "1px solid",
|
||||
borderColor: "$light",
|
||||
|
||||
// light-dark theme switch fading
|
||||
transition: "border 0.25s ease",
|
||||
borderBottom: "1px solid $light",
|
||||
|
||||
"&:hover": {
|
||||
borderColor: "$kindaLight",
|
||||
|
@ -12,14 +12,12 @@ const Link = styled("a", {
|
||||
current: {
|
||||
true: {
|
||||
marginBottom: "-0.2em",
|
||||
borderBottom: "0.2em solid",
|
||||
borderColor: "$linkUnderline",
|
||||
borderBottom: "0.2em solid $linkUnderline",
|
||||
},
|
||||
false: {
|
||||
"&:hover": {
|
||||
marginBottom: "-0.2em",
|
||||
borderBottom: "0.2em solid",
|
||||
borderColor: "$kindaLight",
|
||||
borderBottom: "0.2em solid $kindaLight",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -1,28 +1,23 @@
|
||||
// forked & modified from pacocoursey/next-themes as of:
|
||||
// forked & modified from pacocoursey/next-themes as of v0.0.15:
|
||||
// https://github.com/pacocoursey/next-themes/tree/b5c2bad50de2d61ad7b52a9c5cdc801a78507d7a
|
||||
|
||||
import { createContext, useCallback, useContext, useEffect, useState, useRef, memo } from "react";
|
||||
import NextHead from "next/head";
|
||||
import type { PropsWithChildren } from "react";
|
||||
|
||||
interface UseThemeProps {
|
||||
/** List of all available theme names */
|
||||
themes: string[];
|
||||
/** Active theme name */
|
||||
theme?: string;
|
||||
/** If the active theme is "system", this returns whether the system preference resolved to "dark" or "light". Otherwise, identical to `theme` */
|
||||
resolvedTheme?: string;
|
||||
/** Forced theme name for the current page */
|
||||
forcedTheme?: string;
|
||||
/** Update the theme */
|
||||
setTheme: (theme: string) => void;
|
||||
// https://web.dev/prefers-color-scheme/#the-prefers-color-scheme-media-query
|
||||
const MEDIA = "(prefers-color-scheme: dark)";
|
||||
|
||||
// default to a simple light or dark binary option
|
||||
const colorSchemes = ["light", "dark"];
|
||||
|
||||
interface AttributeValuesMap {
|
||||
[themeName: string]: string;
|
||||
}
|
||||
|
||||
export interface ThemeProviderProps {
|
||||
/** List of all available theme names */
|
||||
themes?: string[];
|
||||
/** Forced theme name for the current page */
|
||||
forcedTheme?: string;
|
||||
/** Whether to indicate to browsers which color scheme is used (dark or light) for built-in UI like inputs and buttons */
|
||||
enableColorScheme?: boolean;
|
||||
/** Key used to store theme setting in localStorage */
|
||||
@ -32,9 +27,44 @@ export interface ThemeProviderProps {
|
||||
/** HTML attribute modified based on the active theme. Accepts `class` and `data-*` (meaning any data attribute, `data-mode`, `data-color`, etc.) */
|
||||
attribute?: string | "class";
|
||||
/** Mapping of theme name to HTML attribute value. Object where key is the theme name and value is the attribute value */
|
||||
value?: ValueObject;
|
||||
value?: AttributeValuesMap;
|
||||
}
|
||||
|
||||
export interface UseThemeProps {
|
||||
/** List of all available theme names */
|
||||
themes: string[];
|
||||
/** Active theme name */
|
||||
theme?: string;
|
||||
/** If the active theme is "system", this returns whether the system preference resolved to "dark" or "light". Otherwise, identical to `theme` */
|
||||
resolvedTheme?: string;
|
||||
/** Update the theme */
|
||||
setTheme: (theme: string) => void;
|
||||
}
|
||||
|
||||
// get the current theme *after* being set by this script
|
||||
const getTheme = (key: string, fallback?: string) => {
|
||||
if (typeof window === "undefined") return undefined;
|
||||
|
||||
let theme;
|
||||
try {
|
||||
theme = localStorage.getItem(key) || undefined;
|
||||
} catch (e) {} // eslint-disable-line no-empty
|
||||
|
||||
return theme || fallback;
|
||||
};
|
||||
|
||||
// get the user's prefered theme as set via their OS/browser settings
|
||||
const getSystemTheme = (e?: MediaQueryList) => {
|
||||
if (!e) {
|
||||
e = window.matchMedia(MEDIA);
|
||||
}
|
||||
|
||||
const isDark = e.matches;
|
||||
const systemTheme = isDark ? "dark" : "light";
|
||||
return systemTheme;
|
||||
};
|
||||
|
||||
// useTheme() function to get current theme state from pages/components/etc.
|
||||
const ThemeContext = createContext<UseThemeProps>({
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars
|
||||
setTheme: (_) => {},
|
||||
@ -42,15 +72,71 @@ const ThemeContext = createContext<UseThemeProps>({
|
||||
});
|
||||
export const useTheme = () => useContext(ThemeContext);
|
||||
|
||||
const colorSchemes = ["light", "dark"];
|
||||
const MEDIA = "(prefers-color-scheme: dark)";
|
||||
// the script tag injected manually into `<head>` by provider below
|
||||
const ThemeScript = memo(function ThemeScript({
|
||||
storageKey,
|
||||
attribute,
|
||||
defaultTheme,
|
||||
value,
|
||||
attrs,
|
||||
}: {
|
||||
storageKey: string;
|
||||
attribute?: string;
|
||||
defaultTheme: string;
|
||||
value?: AttributeValuesMap;
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
attrs: any;
|
||||
}) {
|
||||
const setDocumentVar = (() => {
|
||||
if (attribute === "class") {
|
||||
const removeClasses = `d.remove(${attrs.map((t: string) => `"${t}"`).join(",")})`;
|
||||
|
||||
interface ValueObject {
|
||||
[themeName: string]: string;
|
||||
}
|
||||
// `d` is the class list of the `<html>` tag
|
||||
return `var d=document.documentElement.classList;${removeClasses};`;
|
||||
} else {
|
||||
// `d` is the entire document, used to set custom attribute of the `<html>` tag (probably `data-*`)
|
||||
return `var d=document.documentElement;`;
|
||||
}
|
||||
})();
|
||||
|
||||
const updateDOM = (name: string, literal?: boolean) => {
|
||||
name = value?.[name] || name;
|
||||
const val = literal ? name : `"${name}"`;
|
||||
|
||||
// mirrors above logic from setDocumentVar()
|
||||
if (attribute === "class") {
|
||||
return `d.add(${val})`;
|
||||
} else {
|
||||
return `d.setAttribute("${attribute}", ${val})`;
|
||||
}
|
||||
};
|
||||
|
||||
// is the default theme still `system`? (it should be...)
|
||||
const defaultSystem = defaultTheme === "system";
|
||||
|
||||
// even though it's the proper method, using next/script with `strategy="beforeInteractive"` still causes flash of
|
||||
// white on load. injecting a normal script tag lets us prioritize setting `<html>` attributes even more.
|
||||
return (
|
||||
<NextHead>
|
||||
<script
|
||||
key="next-themes-script"
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: `!function(){try{${setDocumentVar}var e=localStorage.getItem("${storageKey}");${
|
||||
!defaultSystem ? updateDOM(defaultTheme) + ";" : ""
|
||||
}if("system"===e||(!e&&${defaultSystem})){var t="${MEDIA}",m=window.matchMedia(t);m.media!==t||m.matches?${updateDOM(
|
||||
"dark"
|
||||
)}:${updateDOM("light")}}else if(e){${value ? `var x=${JSON.stringify(value)}` : ""}}${updateDOM(
|
||||
value ? "x[e]" : "e",
|
||||
true
|
||||
)}}catch(e){}}()`,
|
||||
}}
|
||||
/>
|
||||
</NextHead>
|
||||
);
|
||||
});
|
||||
|
||||
// provider used once in _app.tsx to wrap entire app
|
||||
export const ThemeProvider = ({
|
||||
forcedTheme,
|
||||
enableColorScheme = true,
|
||||
storageKey = "theme",
|
||||
themes = [...colorSchemes],
|
||||
@ -67,9 +153,9 @@ export const ThemeProvider = ({
|
||||
(e?) => {
|
||||
const systemTheme = getSystemTheme(e);
|
||||
setResolvedTheme(systemTheme);
|
||||
if (theme === "system" && !forcedTheme) changeTheme(systemTheme, false);
|
||||
if (theme === "system") changeTheme(systemTheme, false);
|
||||
},
|
||||
[theme, forcedTheme] // eslint-disable-line react-hooks/exhaustive-deps
|
||||
[theme] // eslint-disable-line react-hooks/exhaustive-deps
|
||||
);
|
||||
|
||||
// Ref hack to avoid adding handleMediaQuery as a dep
|
||||
@ -82,9 +168,7 @@ export const ThemeProvider = ({
|
||||
if (updateStorage) {
|
||||
try {
|
||||
localStorage.setItem(storageKey, theme);
|
||||
} catch (e) {
|
||||
// Unsupported
|
||||
}
|
||||
} catch (e) {} // eslint-disable-line no-empty
|
||||
}
|
||||
|
||||
if (theme === "system") {
|
||||
@ -120,14 +204,10 @@ export const ThemeProvider = ({
|
||||
|
||||
const setTheme = useCallback(
|
||||
(newTheme) => {
|
||||
if (forcedTheme) {
|
||||
changeTheme(newTheme, true, false);
|
||||
} else {
|
||||
changeTheme(newTheme);
|
||||
}
|
||||
setThemeState(newTheme);
|
||||
},
|
||||
[forcedTheme] // eslint-disable-line react-hooks/exhaustive-deps
|
||||
[] // eslint-disable-line react-hooks/exhaustive-deps
|
||||
);
|
||||
|
||||
// localStorage event handling
|
||||
@ -136,6 +216,7 @@ export const ThemeProvider = ({
|
||||
if (e.key !== storageKey) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If default theme set, use it if localstorage === null (happens on local storage manual deletion)
|
||||
const theme = e.newValue || defaultTheme;
|
||||
setTheme(theme);
|
||||
@ -143,17 +224,14 @@ export const ThemeProvider = ({
|
||||
|
||||
window.addEventListener("storage", handleStorage);
|
||||
return () => window.removeEventListener("storage", handleStorage);
|
||||
}, [setTheme]); // eslint-disable-line react-hooks/exhaustive-deps
|
||||
}, []); // eslint-disable-line react-hooks/exhaustive-deps
|
||||
|
||||
// color-scheme handling
|
||||
useEffect(() => {
|
||||
if (!enableColorScheme) return;
|
||||
|
||||
const colorScheme =
|
||||
// If theme is forced to light or dark, use that
|
||||
forcedTheme && colorSchemes.includes(forcedTheme)
|
||||
? forcedTheme
|
||||
: // If regular theme is light or dark
|
||||
// If regular theme is light or dark
|
||||
theme && colorSchemes.includes(theme)
|
||||
? theme
|
||||
: // If theme is system, use the resolved version
|
||||
@ -164,7 +242,7 @@ export const ThemeProvider = ({
|
||||
// color-scheme tells browser how to render built-in elements like forms, scrollbars, etc.
|
||||
// if color-scheme is null, this will remove the property
|
||||
document.documentElement.style.setProperty("color-scheme", colorScheme);
|
||||
}, [enableColorScheme, theme, resolvedTheme, forcedTheme]);
|
||||
}, [theme, resolvedTheme]); // eslint-disable-line react-hooks/exhaustive-deps
|
||||
|
||||
return (
|
||||
<ThemeContext.Provider
|
||||
@ -172,13 +250,11 @@ export const ThemeProvider = ({
|
||||
themes: [...themes, "system"],
|
||||
theme,
|
||||
resolvedTheme: theme === "system" ? resolvedTheme : theme,
|
||||
forcedTheme,
|
||||
setTheme,
|
||||
}}
|
||||
>
|
||||
<ThemeScript
|
||||
{...{
|
||||
forcedTheme,
|
||||
storageKey,
|
||||
attribute,
|
||||
value,
|
||||
@ -186,105 +262,8 @@ export const ThemeProvider = ({
|
||||
attrs,
|
||||
}}
|
||||
/>
|
||||
|
||||
{children}
|
||||
</ThemeContext.Provider>
|
||||
);
|
||||
};
|
||||
|
||||
const ThemeScript = memo(
|
||||
function ThemeScript({
|
||||
forcedTheme,
|
||||
storageKey,
|
||||
attribute,
|
||||
defaultTheme,
|
||||
value,
|
||||
attrs,
|
||||
}: {
|
||||
forcedTheme?: string;
|
||||
storageKey: string;
|
||||
attribute?: string;
|
||||
defaultTheme: string;
|
||||
value?: ValueObject;
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
attrs: any;
|
||||
}) {
|
||||
// Code-golfing the amount of characters in the script
|
||||
const optimization = (() => {
|
||||
if (attribute === "class") {
|
||||
const removeClasses = `d.remove(${attrs.map((t: string) => `"${t}"`).join(",")})`;
|
||||
|
||||
return `var d=document.documentElement.classList;${removeClasses};`;
|
||||
} else {
|
||||
return `var d=document.documentElement;`;
|
||||
}
|
||||
})();
|
||||
|
||||
const updateDOM = (name: string, literal?: boolean) => {
|
||||
name = value?.[name] || name;
|
||||
const val = literal ? name : `"${name}"`;
|
||||
|
||||
if (attribute === "class") {
|
||||
return `d.add(${val})`;
|
||||
}
|
||||
|
||||
return `d.setAttribute("${attribute}", ${val})`;
|
||||
};
|
||||
|
||||
const defaultSystem = defaultTheme === "system";
|
||||
|
||||
return (
|
||||
<NextHead>
|
||||
{forcedTheme ? (
|
||||
<script
|
||||
key="next-themes-script"
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: `!function(){${optimization}${updateDOM(forcedTheme)}}()`,
|
||||
}}
|
||||
/>
|
||||
) : (
|
||||
<script
|
||||
key="next-themes-script"
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: `!function(){try{${optimization}var e=localStorage.getItem("${storageKey}");${
|
||||
!defaultSystem ? updateDOM(defaultTheme) + ";" : ""
|
||||
}if("system"===e||(!e&&${defaultSystem})){var t="${MEDIA}",m=window.matchMedia(t);m.media!==t||m.matches?${updateDOM(
|
||||
"dark"
|
||||
)}:${updateDOM("light")}}else if(e){${value ? `var x=${JSON.stringify(value)}` : ""}}${updateDOM(
|
||||
value ? "x[e]" : "e",
|
||||
true
|
||||
)}}catch(e){}}()`,
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
</NextHead>
|
||||
);
|
||||
},
|
||||
(prevProps, nextProps) => {
|
||||
// Only re-render when forcedTheme changes
|
||||
// the rest of the props should be completely stable
|
||||
if (prevProps.forcedTheme !== nextProps.forcedTheme) return false;
|
||||
return true;
|
||||
}
|
||||
);
|
||||
|
||||
// Helpers
|
||||
const getTheme = (key: string, fallback?: string) => {
|
||||
if (typeof window === "undefined") return undefined;
|
||||
let theme;
|
||||
try {
|
||||
theme = localStorage.getItem(key) || undefined;
|
||||
} catch (e) {
|
||||
// Unsupported
|
||||
}
|
||||
return theme || fallback;
|
||||
};
|
||||
|
||||
const getSystemTheme = (e?: MediaQueryList) => {
|
||||
if (!e) {
|
||||
e = window.matchMedia(MEDIA);
|
||||
}
|
||||
|
||||
const isDark = e.matches;
|
||||
const systemTheme = isDark ? "dark" : "light";
|
||||
return systemTheme;
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { Feed } from "feed";
|
||||
import { getAllNotes } from "./parse-notes";
|
||||
import * as config from "./config";
|
||||
import * as config from "../config";
|
||||
import type { GetServerSidePropsContext, PreviewData } from "next";
|
||||
import type { ParsedUrlQuery } from "querystring";
|
||||
|
24
lib/helpers/mdx-components.ts
Normal file
24
lib/helpers/mdx-components.ts
Normal file
@ -0,0 +1,24 @@
|
||||
import dynamic from "next/dynamic";
|
||||
|
||||
// Bundle these components by default:
|
||||
export { default as Image } from "../../components/Image/Image";
|
||||
export { default as Figure } from "../../components/Figure/Figure";
|
||||
|
||||
// These (mostly very small) components are direct replacements for HTML tags generated by remark:
|
||||
export { default as a } from "../../components/Link/Link";
|
||||
export { default as code } from "../../components/CodeBlock/CodeBlock";
|
||||
export { default as blockquote } from "../../components/Blockquote/Blockquote";
|
||||
export { default as hr } from "../../components/HorizontalRule/HorizontalRule";
|
||||
export { H1 as h1, H2 as h2, H3 as h3, H4 as h4, H5 as h5, H6 as h6 } from "../../components/Heading/Heading";
|
||||
export { UnorderedList as ul, OrderedList as ol, ListItem as li } from "../../components/List/List";
|
||||
|
||||
// ...and these components are technically passed into all posts, but next/dynamic ensures they're loaded only
|
||||
// when they're referenced in the individual mdx files.
|
||||
export const IFrame = dynamic(() => import("../../components/IFrame/IFrame"));
|
||||
export const Video = dynamic(() => import("../../components/Video/Video"));
|
||||
export const YouTube = dynamic(() => import("../../components/YouTubeEmbed/YouTubeEmbed"));
|
||||
export const Tweet = dynamic(() => import("../../components/TweetEmbed/TweetEmbed"));
|
||||
export const Gist = dynamic(() => import("../../components/GistEmbed/GistEmbed"));
|
||||
|
||||
// One-offs for specific posts:
|
||||
export const OctocatLink = dynamic(() => import("../../components/OctocatLink/OctocatLink"));
|
@ -8,8 +8,8 @@ import { compiler } from "markdown-to-jsx";
|
||||
import removeMarkdown from "remove-markdown";
|
||||
import sanitizeHtml from "sanitize-html";
|
||||
import readingTime from "reading-time";
|
||||
import { baseUrl } from "./config";
|
||||
import { NOTES_DIR } from "./config/constants";
|
||||
import { baseUrl } from "../config";
|
||||
import { NOTES_DIR } from "../config/constants";
|
||||
|
||||
// remark/rehype markdown plugins
|
||||
import remarkGfm from "remark-gfm";
|
||||
@ -17,7 +17,7 @@ import rehypeSlug from "rehype-slug";
|
||||
import rehypePrism from "rehype-prism-plus";
|
||||
|
||||
import type { MinifyOptions } from "terser";
|
||||
import type { NoteType } from "../types";
|
||||
import type { NoteType } from "../../types";
|
||||
|
||||
// returns all .mdx files in NOTES_DIR (without .mdx extension)
|
||||
export const getNoteSlugs = () =>
|
@ -1,24 +0,0 @@
|
||||
import dynamic from "next/dynamic";
|
||||
|
||||
// Bundle these components by default:
|
||||
export { default as Image } from "../components/Image/Image";
|
||||
export { default as Figure } from "../components/Figure/Figure";
|
||||
|
||||
// These (mostly very small) components are direct replacements for HTML tags generated by remark:
|
||||
export { default as a } from "../components/Link/Link";
|
||||
export { default as code } from "../components/CodeBlock/CodeBlock";
|
||||
export { default as blockquote } from "../components/Blockquote/Blockquote";
|
||||
export { default as hr } from "../components/HorizontalRule/HorizontalRule";
|
||||
export { H1 as h1, H2 as h2, H3 as h3, H4 as h4, H5 as h5, H6 as h6 } from "../components/Heading/Heading";
|
||||
export { UnorderedList as ul, OrderedList as ol, ListItem as li } from "../components/List/List";
|
||||
|
||||
// ...and these components are technically passed into all posts, but next/dynamic ensures they're loaded only
|
||||
// when they're referenced in the individual mdx files.
|
||||
export const IFrame = dynamic(() => import("../components/IFrame/IFrame"));
|
||||
export const Video = dynamic(() => import("../components/Video/Video"));
|
||||
export const YouTube = dynamic(() => import("../components/YouTubeEmbed/YouTubeEmbed"));
|
||||
export const Tweet = dynamic(() => import("../components/TweetEmbed/TweetEmbed"));
|
||||
export const Gist = dynamic(() => import("../components/GistEmbed/GistEmbed"));
|
||||
|
||||
// One-offs for specific posts:
|
||||
export const OctocatLink = dynamic(() => import("../components/OctocatLink/OctocatLink"));
|
@ -1,29 +0,0 @@
|
||||
// @ts-nocheck
|
||||
|
||||
// Legacy
|
||||
import comicNeueLatin400NormalWoff from "@fontsource/comic-neue/files/comic-neue-latin-400-normal.woff";
|
||||
import comicNeueLatin400NormalWoff2 from "@fontsource/comic-neue/files/comic-neue-latin-400-normal.woff2";
|
||||
import comicNeueLatin700NormalWoff from "@fontsource/comic-neue/files/comic-neue-latin-700-normal.woff";
|
||||
import comicNeueLatin700NormalWoff2 from "@fontsource/comic-neue/files/comic-neue-latin-700-normal.woff2";
|
||||
|
||||
const ComicNeue = {
|
||||
preloadUrl: null, // don't preload, only used on one page
|
||||
family: [
|
||||
{
|
||||
fontFamily: "Comic Neue",
|
||||
fontStyle: "normal",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 400,
|
||||
src: `url(${comicNeueLatin400NormalWoff2}) format("woff2"), url(${comicNeueLatin400NormalWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: "Comic Neue",
|
||||
fontStyle: "normal",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 700,
|
||||
src: `url(${comicNeueLatin700NormalWoff2}) format("woff2"), url(${comicNeueLatin700NormalWoff}) format("woff")`,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default ComicNeue;
|
@ -1,49 +0,0 @@
|
||||
// @ts-nocheck
|
||||
|
||||
// Legacy
|
||||
import interLatin400NormalWoff from "@fontsource/inter/files/inter-latin-400-normal.woff";
|
||||
import interLatin400NormalWoff2 from "@fontsource/inter/files/inter-latin-400-normal.woff2";
|
||||
import interLatin500NormalWoff from "@fontsource/inter/files/inter-latin-500-normal.woff";
|
||||
import interLatin500NormalWoff2 from "@fontsource/inter/files/inter-latin-500-normal.woff2";
|
||||
import interLatin700NormalWoff from "@fontsource/inter/files/inter-latin-700-normal.woff";
|
||||
import interLatin700NormalWoff2 from "@fontsource/inter/files/inter-latin-700-normal.woff2";
|
||||
|
||||
// Variable
|
||||
import interLatinVarFullNormalWoff2 from "@fontsource/inter/files/inter-latin-variable-full-normal.woff2";
|
||||
|
||||
const Inter = {
|
||||
// re-export hashed URL of the most prominent file so we can preload it in head:
|
||||
preloadUrl: interLatinVarFullNormalWoff2,
|
||||
family: [
|
||||
{
|
||||
fontFamily: "Inter",
|
||||
fontStyle: "normal",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 400,
|
||||
src: `url(${interLatin400NormalWoff2}) format("woff2"), url(${interLatin400NormalWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: "Inter",
|
||||
fontStyle: "normal",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 500,
|
||||
src: `url(${interLatin500NormalWoff2}) format("woff2"), url(${interLatin500NormalWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: "Inter",
|
||||
fontStyle: "normal",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 700,
|
||||
src: `url(${interLatin700NormalWoff2}) format("woff2"), url(${interLatin700NormalWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: "Inter var",
|
||||
fontStyle: "oblique 0deg 10deg",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: "100 900",
|
||||
src: `url(${interLatinVarFullNormalWoff2}) format("woff2")`,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default Inter;
|
@ -1,84 +0,0 @@
|
||||
// @ts-nocheck
|
||||
|
||||
// Legacy
|
||||
import robotoMonoLatin400NormalWoff from "@fontsource/roboto-mono/files/roboto-mono-latin-400-normal.woff";
|
||||
import robotoMonoLatin400NormalWoff2 from "@fontsource/roboto-mono/files/roboto-mono-latin-400-normal.woff2";
|
||||
import robotoMonoLatin500NormalWoff from "@fontsource/roboto-mono/files/roboto-mono-latin-500-normal.woff";
|
||||
import robotoMonoLatin500NormalWoff2 from "@fontsource/roboto-mono/files/roboto-mono-latin-500-normal.woff2";
|
||||
import robotoMonoLatin700NormalWoff from "@fontsource/roboto-mono/files/roboto-mono-latin-700-normal.woff";
|
||||
import robotoMonoLatin700NormalWoff2 from "@fontsource/roboto-mono/files/roboto-mono-latin-700-normal.woff2";
|
||||
import robotoMonoLatin400ItalicWoff from "@fontsource/roboto-mono/files/roboto-mono-latin-400-italic.woff";
|
||||
import robotoMonoLatin400ItalicWoff2 from "@fontsource/roboto-mono/files/roboto-mono-latin-400-italic.woff2";
|
||||
import robotoMonoLatin500ItalicWoff from "@fontsource/roboto-mono/files/roboto-mono-latin-500-italic.woff";
|
||||
import robotoMonoLatin500ItalicWoff2 from "@fontsource/roboto-mono/files/roboto-mono-latin-500-italic.woff2";
|
||||
import robotoMonoLatin700ItalicWoff from "@fontsource/roboto-mono/files/roboto-mono-latin-700-italic.woff";
|
||||
import robotoMonoLatin700ItalicWoff2 from "@fontsource/roboto-mono/files/roboto-mono-latin-700-italic.woff2";
|
||||
|
||||
// Variable
|
||||
import robotoMonoLatinVarWghtOnlyNormalWoff2 from "@fontsource/roboto-mono/files/roboto-mono-latin-variable-wghtOnly-normal.woff2";
|
||||
import robotoMonoLatinVarWghtOnlyItalicWoff2 from "@fontsource/roboto-mono/files/roboto-mono-latin-variable-wghtOnly-italic.woff2";
|
||||
|
||||
const RobotoMono = {
|
||||
// re-export hashed URL of the most prominent file so we can preload it in head:
|
||||
preloadUrl: robotoMonoLatinVarWghtOnlyNormalWoff2,
|
||||
family: [
|
||||
{
|
||||
fontFamily: "Roboto Mono",
|
||||
fontStyle: "normal",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 400,
|
||||
src: `url(${robotoMonoLatin400NormalWoff2}) format("woff2"), url(${robotoMonoLatin400NormalWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: "Roboto Mono",
|
||||
fontStyle: "normal",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 500,
|
||||
src: `url(${robotoMonoLatin500NormalWoff2}) format("woff2"), url(${robotoMonoLatin500NormalWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: "Roboto Mono",
|
||||
fontStyle: "normal",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 700,
|
||||
src: `url(${robotoMonoLatin700NormalWoff2}) format("woff2"), url(${robotoMonoLatin700NormalWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: "Roboto Mono",
|
||||
fontStyle: "italic",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 400,
|
||||
src: `url(${robotoMonoLatin400ItalicWoff2}) format("woff2"), url(${robotoMonoLatin400ItalicWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: "Roboto Mono",
|
||||
fontStyle: "italic",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 500,
|
||||
src: `url(${robotoMonoLatin500ItalicWoff2}) format("woff2"), url(${robotoMonoLatin500ItalicWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: "Roboto Mono",
|
||||
fontStyle: "italic",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 700,
|
||||
src: `url(${robotoMonoLatin700ItalicWoff2}) format("woff2"), url(${robotoMonoLatin700ItalicWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: "Roboto Mono var",
|
||||
fontStyle: "normal",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: "100 700",
|
||||
src: `url(${robotoMonoLatinVarWghtOnlyNormalWoff2}) format("woff2")`,
|
||||
},
|
||||
{
|
||||
fontFamily: "Roboto Mono var",
|
||||
fontStyle: "italic",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: "100 700",
|
||||
src: `url(${robotoMonoLatinVarWghtOnlyItalicWoff2}) format("woff2")`,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default RobotoMono;
|
27
lib/styles/helpers/fonts/comic-neue.ts
Normal file
27
lib/styles/helpers/fonts/comic-neue.ts
Normal file
@ -0,0 +1,27 @@
|
||||
// @ts-nocheck
|
||||
|
||||
// Legacy
|
||||
import comicNeueLatin400NormalWoff from "@fontsource/comic-neue/files/comic-neue-latin-400-normal.woff";
|
||||
import comicNeueLatin400NormalWoff2 from "@fontsource/comic-neue/files/comic-neue-latin-400-normal.woff2";
|
||||
import comicNeueLatin700NormalWoff from "@fontsource/comic-neue/files/comic-neue-latin-700-normal.woff";
|
||||
import comicNeueLatin700NormalWoff2 from "@fontsource/comic-neue/files/comic-neue-latin-700-normal.woff2";
|
||||
|
||||
export const name = {
|
||||
regular: "Comic Neue",
|
||||
};
|
||||
export const family = [
|
||||
{
|
||||
fontFamily: name.regular,
|
||||
fontStyle: "normal",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 400,
|
||||
src: `url(${comicNeueLatin400NormalWoff2}) format("woff2"), url(${comicNeueLatin400NormalWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: name.regular,
|
||||
fontStyle: "normal",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 700,
|
||||
src: `url(${comicNeueLatin700NormalWoff2}) format("woff2"), url(${comicNeueLatin700NormalWoff}) format("woff")`,
|
||||
},
|
||||
];
|
49
lib/styles/helpers/fonts/inter.ts
Normal file
49
lib/styles/helpers/fonts/inter.ts
Normal file
@ -0,0 +1,49 @@
|
||||
// @ts-nocheck
|
||||
|
||||
// Legacy
|
||||
import interLatin400NormalWoff from "@fontsource/inter/files/inter-latin-400-normal.woff";
|
||||
import interLatin400NormalWoff2 from "@fontsource/inter/files/inter-latin-400-normal.woff2";
|
||||
import interLatin500NormalWoff from "@fontsource/inter/files/inter-latin-500-normal.woff";
|
||||
import interLatin500NormalWoff2 from "@fontsource/inter/files/inter-latin-500-normal.woff2";
|
||||
import interLatin700NormalWoff from "@fontsource/inter/files/inter-latin-700-normal.woff";
|
||||
import interLatin700NormalWoff2 from "@fontsource/inter/files/inter-latin-700-normal.woff2";
|
||||
|
||||
// Variable
|
||||
import interLatinVarFullNormalWoff2 from "@fontsource/inter/files/inter-latin-variable-full-normal.woff2";
|
||||
|
||||
export const name = {
|
||||
regular: "Inter",
|
||||
variable: "Inter var",
|
||||
};
|
||||
// re-export hashed URL(s) of the most prominent file so we can preload it in head:
|
||||
export const preloadUrls = [interLatinVarFullNormalWoff2];
|
||||
export const family = [
|
||||
{
|
||||
fontFamily: name.regular,
|
||||
fontStyle: "normal",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 400,
|
||||
src: `url(${interLatin400NormalWoff2}) format("woff2"), url(${interLatin400NormalWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: name.regular,
|
||||
fontStyle: "normal",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 500,
|
||||
src: `url(${interLatin500NormalWoff2}) format("woff2"), url(${interLatin500NormalWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: name.regular,
|
||||
fontStyle: "normal",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 700,
|
||||
src: `url(${interLatin700NormalWoff2}) format("woff2"), url(${interLatin700NormalWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: name.variable,
|
||||
fontStyle: "oblique 0deg 10deg",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: "100 900",
|
||||
src: `url(${interLatinVarFullNormalWoff2}) format("woff2")`,
|
||||
},
|
||||
];
|
84
lib/styles/helpers/fonts/roboto-mono.ts
Normal file
84
lib/styles/helpers/fonts/roboto-mono.ts
Normal file
@ -0,0 +1,84 @@
|
||||
// @ts-nocheck
|
||||
|
||||
// Legacy
|
||||
import robotoMonoLatin400NormalWoff from "@fontsource/roboto-mono/files/roboto-mono-latin-400-normal.woff";
|
||||
import robotoMonoLatin400NormalWoff2 from "@fontsource/roboto-mono/files/roboto-mono-latin-400-normal.woff2";
|
||||
import robotoMonoLatin500NormalWoff from "@fontsource/roboto-mono/files/roboto-mono-latin-500-normal.woff";
|
||||
import robotoMonoLatin500NormalWoff2 from "@fontsource/roboto-mono/files/roboto-mono-latin-500-normal.woff2";
|
||||
import robotoMonoLatin700NormalWoff from "@fontsource/roboto-mono/files/roboto-mono-latin-700-normal.woff";
|
||||
import robotoMonoLatin700NormalWoff2 from "@fontsource/roboto-mono/files/roboto-mono-latin-700-normal.woff2";
|
||||
import robotoMonoLatin400ItalicWoff from "@fontsource/roboto-mono/files/roboto-mono-latin-400-italic.woff";
|
||||
import robotoMonoLatin400ItalicWoff2 from "@fontsource/roboto-mono/files/roboto-mono-latin-400-italic.woff2";
|
||||
import robotoMonoLatin500ItalicWoff from "@fontsource/roboto-mono/files/roboto-mono-latin-500-italic.woff";
|
||||
import robotoMonoLatin500ItalicWoff2 from "@fontsource/roboto-mono/files/roboto-mono-latin-500-italic.woff2";
|
||||
import robotoMonoLatin700ItalicWoff from "@fontsource/roboto-mono/files/roboto-mono-latin-700-italic.woff";
|
||||
import robotoMonoLatin700ItalicWoff2 from "@fontsource/roboto-mono/files/roboto-mono-latin-700-italic.woff2";
|
||||
|
||||
// Variable
|
||||
import robotoMonoLatinVarWghtOnlyNormalWoff2 from "@fontsource/roboto-mono/files/roboto-mono-latin-variable-wghtOnly-normal.woff2";
|
||||
import robotoMonoLatinVarWghtOnlyItalicWoff2 from "@fontsource/roboto-mono/files/roboto-mono-latin-variable-wghtOnly-italic.woff2";
|
||||
|
||||
export const name = {
|
||||
regular: "Roboto Mono",
|
||||
variable: "Roboto Mono var",
|
||||
};
|
||||
// re-export hashed URL(s) of the most prominent file so we can preload it in head:
|
||||
export const preloadUrls = [robotoMonoLatinVarWghtOnlyNormalWoff2];
|
||||
export const family = [
|
||||
{
|
||||
fontFamily: name.regular,
|
||||
fontStyle: "normal",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 400,
|
||||
src: `url(${robotoMonoLatin400NormalWoff2}) format("woff2"), url(${robotoMonoLatin400NormalWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: name.regular,
|
||||
fontStyle: "normal",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 500,
|
||||
src: `url(${robotoMonoLatin500NormalWoff2}) format("woff2"), url(${robotoMonoLatin500NormalWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: name.regular,
|
||||
fontStyle: "normal",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 700,
|
||||
src: `url(${robotoMonoLatin700NormalWoff2}) format("woff2"), url(${robotoMonoLatin700NormalWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: name.regular,
|
||||
fontStyle: "italic",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 400,
|
||||
src: `url(${robotoMonoLatin400ItalicWoff2}) format("woff2"), url(${robotoMonoLatin400ItalicWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: name.regular,
|
||||
fontStyle: "italic",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 500,
|
||||
src: `url(${robotoMonoLatin500ItalicWoff2}) format("woff2"), url(${robotoMonoLatin500ItalicWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: name.regular,
|
||||
fontStyle: "italic",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: 700,
|
||||
src: `url(${robotoMonoLatin700ItalicWoff2}) format("woff2"), url(${robotoMonoLatin700ItalicWoff}) format("woff")`,
|
||||
},
|
||||
{
|
||||
fontFamily: name.variable,
|
||||
fontStyle: "normal",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: "100 700",
|
||||
src: `url(${robotoMonoLatinVarWghtOnlyNormalWoff2}) format("woff2")`,
|
||||
},
|
||||
{
|
||||
fontFamily: name.variable,
|
||||
fontStyle: "italic",
|
||||
fontDisplay: "swap",
|
||||
fontWeight: "100 700",
|
||||
src: `url(${robotoMonoLatinVarWghtOnlyItalicWoff2}) format("woff2")`,
|
||||
},
|
||||
];
|
9
lib/styles/helpers/typography.ts
Normal file
9
lib/styles/helpers/typography.ts
Normal file
@ -0,0 +1,9 @@
|
||||
import * as Inter from "./fonts/inter";
|
||||
import * as RobotoMono from "./fonts/roboto-mono";
|
||||
import * as ComicNeue from "./fonts/comic-neue";
|
||||
|
||||
// re-export hashed URLs of the most important variable fonts so we can preload them in pages/_document.tsx
|
||||
export const preloadUrls = [...Inter.preloadUrls, ...RobotoMono.preloadUrls];
|
||||
|
||||
// re-export everything for use in ../stitches.config.ts
|
||||
export { Inter, RobotoMono, ComicNeue };
|
@ -1,22 +1,22 @@
|
||||
import { createStitches, defaultThemeMap } from "@stitches/react";
|
||||
import hex2rgba from "./helpers/hex-to-rgba";
|
||||
|
||||
// modified modern-normalize.css in object form:
|
||||
// https://github.com/jakejarvis/stitches-normalize/blob/main/index.js
|
||||
import normalizeCss from "stitches-normalize";
|
||||
|
||||
// web fonts
|
||||
import Inter from "./fonts/inter";
|
||||
import RobotoMono from "./fonts/roboto-mono";
|
||||
import ComicNeue from "./fonts/comic-neue";
|
||||
import { Inter, RobotoMono, ComicNeue } from "./helpers/typography";
|
||||
|
||||
// misc. helpers
|
||||
import hex2rgba from "./helpers/hex-to-rgba";
|
||||
|
||||
export const { styled, css, getCssText, globalCss, keyframes, createTheme, theme } = createStitches({
|
||||
theme: {
|
||||
fonts: {
|
||||
sans: `Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif`,
|
||||
sansVar: `"Inter var", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif`,
|
||||
mono: `"Roboto Mono", ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier`,
|
||||
monoVar: `"Roboto Mono var", ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier`,
|
||||
sans: `"${Inter.name.regular}", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif`,
|
||||
sansVar: `"${Inter.name.variable}", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif`,
|
||||
mono: `"${RobotoMono.name.regular}", ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier`,
|
||||
monoVar: `"${RobotoMono.name.variable}", ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier`,
|
||||
},
|
||||
|
||||
colors: {
|
||||
@ -160,10 +160,5 @@ export const globalStyles = globalCss(
|
||||
}
|
||||
);
|
||||
|
||||
// re-export hashed URLs of the most important variable fonts so we can preload them in ../../pages/_document.tsx
|
||||
export const preloadUrls = {
|
||||
fonts: {
|
||||
InterVar: Inter.preloadUrl,
|
||||
RobotoMonoVar: RobotoMono.preloadUrl,
|
||||
},
|
||||
};
|
||||
// re-export all font data so we can do things like preloading them in pages/_document.tsx
|
||||
export * as fonts from "./helpers/typography";
|
||||
|
10
package.json
10
package.json
@ -23,13 +23,13 @@
|
||||
"@fontsource/roboto-mono": "4.5.3",
|
||||
"@giscus/react": "^1.1.2",
|
||||
"@hcaptcha/react-hcaptcha": "^1.1.1",
|
||||
"@next/bundle-analyzer": "12.1.1-canary.6",
|
||||
"@next/bundle-analyzer": "12.1.1-canary.8",
|
||||
"@novnc/novnc": "github:novnc/noVNC#679b45fa3b453c7cf32f4b4455f4814818ecf161",
|
||||
"@octokit/graphql": "^4.8.0",
|
||||
"@primer/octicons": "^17.0.0",
|
||||
"@react-spring/web": "^9.4.3",
|
||||
"@sentry/node": "^6.18.1",
|
||||
"@sentry/tracing": "^6.18.1",
|
||||
"@sentry/node": "^6.18.2",
|
||||
"@sentry/tracing": "^6.18.2",
|
||||
"@stitches/react": "^1.2.7",
|
||||
"copy-to-clipboard": "^3.3.1",
|
||||
"date-fns": "^2.28.0",
|
||||
@ -42,7 +42,7 @@
|
||||
"gray-matter": "^4.0.3",
|
||||
"is-absolute-url": "^4.0.1",
|
||||
"markdown-to-jsx": "^7.1.7",
|
||||
"next": "12.1.1-canary.6",
|
||||
"next": "12.1.1-canary.8",
|
||||
"next-compose-plugins": "^2.2.1",
|
||||
"next-mdx-remote": "^4.0.0",
|
||||
"next-seo": "^5.1.0",
|
||||
@ -87,7 +87,7 @@
|
||||
"@typescript-eslint/parser": "^5.14.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"eslint": "~8.10.0",
|
||||
"eslint-config-next": "12.1.1-canary.6",
|
||||
"eslint-config-next": "12.1.1-canary.8",
|
||||
"eslint-config-prettier": "~8.5.0",
|
||||
"eslint-plugin-mdx": "~1.16.0",
|
||||
"eslint-plugin-prettier": "~4.0.0",
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Html, Head, Main, NextScript } from "next/document";
|
||||
import { getCssText, preloadUrls } from "../lib/styles/stitches.config";
|
||||
import { getCssText, fonts } from "../lib/styles/stitches.config";
|
||||
import * as config from "../lib/config";
|
||||
|
||||
// https://nextjs.org/docs/advanced-features/custom-document
|
||||
@ -7,15 +7,17 @@ const Document = () => {
|
||||
return (
|
||||
<Html lang={config.siteLocale?.replace("_", "-")}>
|
||||
<Head>
|
||||
{/* static asset preloads */}
|
||||
<link rel="preload" as="font" type="font/woff2" href={preloadUrls.fonts.InterVar} crossOrigin="anonymous" />
|
||||
{/* preload highest priority fonts defined in ../lib/styles/fonts/ */}
|
||||
{fonts.preloadUrls.map((relativeUrl, index) => (
|
||||
<link
|
||||
key={`font-${index}`}
|
||||
rel="preload"
|
||||
as="font"
|
||||
type="font/woff2"
|
||||
href={preloadUrls.fonts.RobotoMonoVar}
|
||||
href={relativeUrl}
|
||||
crossOrigin="anonymous"
|
||||
/>
|
||||
))}
|
||||
|
||||
{/* stitches SSR: https://stitches.dev/blog/using-nextjs-with-stitches#step-3-ssr */}
|
||||
<style id="stitches" dangerouslySetInnerHTML={{ __html: getCssText() }} />
|
||||
|
@ -1,6 +1,6 @@
|
||||
import pRetry from "p-retry";
|
||||
import faunadb from "faunadb";
|
||||
import { getAllNotes } from "../../lib/parse-notes";
|
||||
import { getAllNotes } from "../../lib/helpers/parse-notes";
|
||||
import { logServerError } from "../../lib/helpers/sentry";
|
||||
import type { NextApiRequest, NextApiResponse } from "next";
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { buildFeed } from "../lib/build-feed";
|
||||
import { buildFeed } from "../lib/helpers/build-feed";
|
||||
import type { GetServerSideProps } from "next";
|
||||
|
||||
export const getServerSideProps: GetServerSideProps = async (context) => {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { buildFeed } from "../lib/build-feed";
|
||||
import { buildFeed } from "../lib/helpers/build-feed";
|
||||
import type { GetServerSideProps } from "next";
|
||||
|
||||
export const getServerSideProps: GetServerSideProps = async (context) => {
|
||||
|
@ -5,8 +5,8 @@ import { htmlEscape } from "escape-goat";
|
||||
import Content from "../../components/Content/Content";
|
||||
import NoteMeta from "../../components/NoteMeta/NoteMeta";
|
||||
import Comments from "../../components/Comments/Comments";
|
||||
import * as mdxComponents from "../../lib/mdx-components";
|
||||
import { getNote, getNoteSlugs } from "../../lib/parse-notes";
|
||||
import * as mdxComponents from "../../lib/helpers/mdx-components";
|
||||
import { getNote, getNoteSlugs } from "../../lib/helpers/parse-notes";
|
||||
import * as config from "../../lib/config";
|
||||
import { articleJsonLd } from "../../lib/config/seo";
|
||||
import type { GetStaticProps, GetStaticPaths } from "next";
|
||||
|
@ -2,7 +2,7 @@ import { NextSeo } from "next-seo";
|
||||
import { format } from "date-fns";
|
||||
import Content from "../../components/Content/Content";
|
||||
import NotesList, { NotesListProps } from "../../components/NotesList/NotesList";
|
||||
import { getAllNotes } from "../../lib/parse-notes";
|
||||
import { getAllNotes } from "../../lib/helpers/parse-notes";
|
||||
import type { GetStaticProps } from "next";
|
||||
|
||||
const Notes = ({ notesByYear }: NotesListProps) => (
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { getServerSideSitemap } from "next-sitemap";
|
||||
import { getAllNotes } from "../lib/parse-notes";
|
||||
import { getAllNotes } from "../lib/helpers/parse-notes";
|
||||
import { baseUrl } from "../lib/config";
|
||||
import type { GetServerSideProps } from "next";
|
||||
import type { ISitemapField } from "next-sitemap";
|
||||
|
2
types/note.d.ts
vendored
2
types/note.d.ts
vendored
@ -14,6 +14,6 @@ export type NoteType = {
|
||||
noComments?: boolean;
|
||||
};
|
||||
|
||||
// the final, compiled JSX by next-mdx-remote; see lib/parse-notes.ts
|
||||
// the final, compiled JSX by next-mdx-remote; see lib/helpers/parse-notes.ts
|
||||
source: MDXRemoteSerializeResult;
|
||||
};
|
||||
|
359
yarn.lock
359
yarn.lock
@ -1147,84 +1147,84 @@
|
||||
resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.6.22.tgz#219dfd89ae5b97a8801f015323ffa4b62f45718b"
|
||||
integrity sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==
|
||||
|
||||
"@next/bundle-analyzer@12.1.1-canary.6":
|
||||
version "12.1.1-canary.6"
|
||||
resolved "https://registry.yarnpkg.com/@next/bundle-analyzer/-/bundle-analyzer-12.1.1-canary.6.tgz#3374e436de0380d268017decdaf5de322c99c776"
|
||||
integrity sha512-m07hig1yJNOGptkl11R2HKX9kAcALcbsIbVZkjNOIT/LSAXElLLJEm0dHOItEr6bMHdY3eqKCDlJC7iM+NavpQ==
|
||||
"@next/bundle-analyzer@12.1.1-canary.8":
|
||||
version "12.1.1-canary.8"
|
||||
resolved "https://registry.yarnpkg.com/@next/bundle-analyzer/-/bundle-analyzer-12.1.1-canary.8.tgz#dc734e552d063196de63f534eeffd373427cdfae"
|
||||
integrity sha512-P2rJ3EhNwVNtfGJ3F3NRbKIJY5jVP3w+cifT7KhbAJdoirGU4tgnA2EyL6DgD1G+sUPKDcEJNsJRRex0CKpW3Q==
|
||||
dependencies:
|
||||
webpack-bundle-analyzer "4.3.0"
|
||||
|
||||
"@next/env@12.1.1-canary.6":
|
||||
version "12.1.1-canary.6"
|
||||
resolved "https://registry.yarnpkg.com/@next/env/-/env-12.1.1-canary.6.tgz#420fde7cf0ef9f46a2e984bbd6d744eeba68f751"
|
||||
integrity sha512-KjoQcatzKYkhHqovx78OMxfb53F92QXRePZvbFO1TTRMwG32FD7+hmpYyyAJBRooD/FWqpfXdYk4t/qZReD6rw==
|
||||
"@next/env@12.1.1-canary.8":
|
||||
version "12.1.1-canary.8"
|
||||
resolved "https://registry.yarnpkg.com/@next/env/-/env-12.1.1-canary.8.tgz#0984c8519a43c83c8627d5d2e4af7696ba4adfd1"
|
||||
integrity sha512-UAjHkTKzpGG3b6cMWZkjHbvgv6NCWCyB9w+7a4U+6z1VNwC61keXiQwSK8mDM9irli+sYlrZjjFKVYiuTPYL4Q==
|
||||
|
||||
"@next/eslint-plugin-next@12.1.1-canary.6":
|
||||
version "12.1.1-canary.6"
|
||||
resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.1.1-canary.6.tgz#e6183f4ef2998242d9a6f2c1a2d716eb001af5b1"
|
||||
integrity sha512-LJphoYE7J0g/5NsyZAmpEzEZO/WXbu18b9oVQHWPHO9dD2UedKgrfeCNUuv/cEwOpKsIuXn4LMo+kBUvcV8fUA==
|
||||
"@next/eslint-plugin-next@12.1.1-canary.8":
|
||||
version "12.1.1-canary.8"
|
||||
resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.1.1-canary.8.tgz#9c2d1cef406b7f912c6a335fdb317aa492738772"
|
||||
integrity sha512-2ry7q/j4mk7PKPo3YGEFnE4t7HCKimuquDGT8OitdTiC5fjKx/N2iuLx+k2CSZxBQU050T3QV+KsKBc+84fkAA==
|
||||
dependencies:
|
||||
glob "7.1.7"
|
||||
|
||||
"@next/swc-android-arm-eabi@12.1.1-canary.6":
|
||||
version "12.1.1-canary.6"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.1-canary.6.tgz#8a979f51b46bb32239541cb50bd5c03050bb5247"
|
||||
integrity sha512-DU25t8TvCyIEWYILLUMXvW4uPfBgMq2vxR/JqqJotDbSf58IPAk5BuAWXOEESWkFphjLGqyuaUS77rHwyGRoZw==
|
||||
"@next/swc-android-arm-eabi@12.1.1-canary.8":
|
||||
version "12.1.1-canary.8"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.1-canary.8.tgz#261f8516854a7217c9c5bee91acd356d89e7373f"
|
||||
integrity sha512-SPXTw0tl1Eb/MIxft6sdFUOPcf+agzC5BrZGG4R6p5YYrpQxFt2GYnXBKYj/nTyrpJ+6cCYRGtGa+c/OlP0SAg==
|
||||
|
||||
"@next/swc-android-arm64@12.1.1-canary.6":
|
||||
version "12.1.1-canary.6"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.1.1-canary.6.tgz#3eb958eee81b072f27fdd8d07de285b64553a878"
|
||||
integrity sha512-7Gj6FrG5S+jbq74vSFhr2FuIVV1j0/ZPJCfvrkIQdFImqefJf2hKt/C+nsSagLWKDWB7B+b7VmY+CUDBP64sAw==
|
||||
"@next/swc-android-arm64@12.1.1-canary.8":
|
||||
version "12.1.1-canary.8"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.1.1-canary.8.tgz#41f58dc81fdee476c2d1925ff8540da940523c45"
|
||||
integrity sha512-tVJ2Y7hTsRnkpwDZQM4io7hls/ApO+Zf+MsddqX70Dq0isW1itZ1v8Rc4Dmy+zyt7TAj2KCnLZwS+G5LQ8ZaVA==
|
||||
|
||||
"@next/swc-darwin-arm64@12.1.1-canary.6":
|
||||
version "12.1.1-canary.6"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.1-canary.6.tgz#42b6204825151d25c69e6ee3e76f6cf5cb904b36"
|
||||
integrity sha512-X8ZMuj4YeiN4OP5yN0KwEVRkC6osAcp8thYcSVF50gBgBQkxNCuvdFTg+GB4tBcfAmJ858LP7ci11T3T5e657A==
|
||||
"@next/swc-darwin-arm64@12.1.1-canary.8":
|
||||
version "12.1.1-canary.8"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.1-canary.8.tgz#36e86f33dc04065cbdce3826179d31b199583ae3"
|
||||
integrity sha512-6WTRO8yrdyHUWvkytfmOfdrcwTrzmvzyLwRiDVl+QpXttUx6USM/bKkSwFHnSKHOwg7vd3mcz4UGPw0nCcrUwA==
|
||||
|
||||
"@next/swc-darwin-x64@12.1.1-canary.6":
|
||||
version "12.1.1-canary.6"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.1-canary.6.tgz#65dfdbfa0c054999bd25cfcb016d92ed30feb967"
|
||||
integrity sha512-B2BAB6x7vj98fgbG/2m1xIqSYT7FI1V0/HpIDLBb1iDGYMt2ex2ov1vMnldVNvgjquZGUUbSg0prNZWDNjLP3A==
|
||||
"@next/swc-darwin-x64@12.1.1-canary.8":
|
||||
version "12.1.1-canary.8"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.1-canary.8.tgz#d7da4c9bd238d06c1854dc5e6a585877acc428cf"
|
||||
integrity sha512-ktp3PiwRkKpnvv0udIb296qqH3yIRk1QQLVWwC9qxpi4w2FeP8q1gBJbBiO8AsKSMomwJ1eUfaJgg9YjYIUt/Q==
|
||||
|
||||
"@next/swc-linux-arm-gnueabihf@12.1.1-canary.6":
|
||||
version "12.1.1-canary.6"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.1-canary.6.tgz#3045c77ba184e1fef553b6e1696a2d5a9202c4c9"
|
||||
integrity sha512-eATESuf0O+sI37/LKP6xJmi22mj5WlCPsQ47gPLcLzoL/y+p9E5c2QsXWnn4Cfi3cxOVraYGVLu4rcUXULk54w==
|
||||
"@next/swc-linux-arm-gnueabihf@12.1.1-canary.8":
|
||||
version "12.1.1-canary.8"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.1-canary.8.tgz#484b4f393a88fc8de65deb9e014f5787820c3f7b"
|
||||
integrity sha512-FJwuvbUdGqtqMfhMxPizxUdkqrzezrJVUVT9WErI6Ea6TjWuwN7DYyj8P5HGE6NwBdc/xZetmUXA8NimKpI1vg==
|
||||
|
||||
"@next/swc-linux-arm64-gnu@12.1.1-canary.6":
|
||||
version "12.1.1-canary.6"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.1-canary.6.tgz#4ad2c39eaab1ad6c68f9fae4b65e89a131c29b55"
|
||||
integrity sha512-e83KBGl28NJ9KHhXknl/56j+1kHXF31rucJbOJ+iSdnXett40eJPmRa9y4XLxBiiawkqMdayeNyEj/vN4VHPKA==
|
||||
"@next/swc-linux-arm64-gnu@12.1.1-canary.8":
|
||||
version "12.1.1-canary.8"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.1-canary.8.tgz#f05f3447ffd02c09182795066eee8d3807946edd"
|
||||
integrity sha512-D4v6mMOsPtSIlR6UX5d84HiqHnSV2wCZKbEMQ4M9pQwBcWcFt9LzNU6cZnWDFEBZeI6gSh66xS5pR/rnUU1BFA==
|
||||
|
||||
"@next/swc-linux-arm64-musl@12.1.1-canary.6":
|
||||
version "12.1.1-canary.6"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.1-canary.6.tgz#c2c0b032f5e2da14db96de34074b6583bc6f9310"
|
||||
integrity sha512-UBCqVwHBnRixWLF/j3iwRqXsTddfEP2BGn104ENDt5so/9NecBL/BiHSzy1EY9GGcGE9DrFVpXuIQjC561uyuQ==
|
||||
"@next/swc-linux-arm64-musl@12.1.1-canary.8":
|
||||
version "12.1.1-canary.8"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.1-canary.8.tgz#10f2f98bd9f75b175ccc98305d651dd172ddd1d9"
|
||||
integrity sha512-XGNREcMBtqJ+/irCMLxPKy3IAZVrkyEra1jFCOqJqMGuPioaBrPMyJpi8110hG/aGSHzLUGMwIj7SFZiEBjiwQ==
|
||||
|
||||
"@next/swc-linux-x64-gnu@12.1.1-canary.6":
|
||||
version "12.1.1-canary.6"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.1-canary.6.tgz#f3f2d72ec71ec32fbce7e35db101341102f8cfc1"
|
||||
integrity sha512-wV4aAG4waocc9yxHRXbZVZG31//5lAlcU3FyJDWEgsdgz1jhBoJRxiypd0Xm8FmjMRIj7FlFz1MsHjHYc7HKQQ==
|
||||
"@next/swc-linux-x64-gnu@12.1.1-canary.8":
|
||||
version "12.1.1-canary.8"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.1-canary.8.tgz#5118536cdc947b00ef1cb66106c1fe40b141862a"
|
||||
integrity sha512-KfWvld2D+RLrAWWBKBgGWkFy90pbiV20WvV8CwI3YVk13r7Uqv5g8FcjdCQmoXtNocC0UylB5lraxBr0x2gT+w==
|
||||
|
||||
"@next/swc-linux-x64-musl@12.1.1-canary.6":
|
||||
version "12.1.1-canary.6"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.1-canary.6.tgz#2265421b0cb62a7ab38789db453aa21c2a802662"
|
||||
integrity sha512-AN+Z7XWsPV+NzvOcISReBlrUhpoy0kiz6MCYGUXWCZXmav/3HcOVqJFJhzo0eHYQNUcgiuy8Q/tMPqMNpQ3mJA==
|
||||
"@next/swc-linux-x64-musl@12.1.1-canary.8":
|
||||
version "12.1.1-canary.8"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.1-canary.8.tgz#c27e691b55eb7b2422059c42fa990029006ddb96"
|
||||
integrity sha512-J8Xzbb5UQ4mjDqB9tBJFUGA9ASY31kuSHq4QjRb5Ko2O1+VWSX2jrxFW6UHjYhfypmLYFgWK6e1HghWDblPoTg==
|
||||
|
||||
"@next/swc-win32-arm64-msvc@12.1.1-canary.6":
|
||||
version "12.1.1-canary.6"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.1-canary.6.tgz#1d7848c6dcc7e470b7bea45b80066183b0cbcfd8"
|
||||
integrity sha512-2p/D4AHBnaojbxA6X5aR6zRoQAC/3eBpszJaW5O4UShEpW1y3JQ+AbQ6cYFjpdTDIxRgdBrcnDwoA1PJLlSmyw==
|
||||
"@next/swc-win32-arm64-msvc@12.1.1-canary.8":
|
||||
version "12.1.1-canary.8"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.1-canary.8.tgz#c850ca1cd7f6fbbc24c394c05be61d31683bf600"
|
||||
integrity sha512-JZETW+8ySo5GPYIiGQBkUG4r7sgaCB+avL26OrRO+BjQY5q59Rl2wMLpVBE5KzOntIiELHm4sKks/wBcHCc4iQ==
|
||||
|
||||
"@next/swc-win32-ia32-msvc@12.1.1-canary.6":
|
||||
version "12.1.1-canary.6"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.1-canary.6.tgz#a747ca8a3dcf993c31be913d0d40ff7e8d9ee4f6"
|
||||
integrity sha512-G/zc/R6D2zpKLM3xpl0zoxmoH2P1InMVxlY/tRo4M5+0w3QINVNlZUwVfiMLDS5zoSwhP6mwu0IkuapXuwUpqw==
|
||||
"@next/swc-win32-ia32-msvc@12.1.1-canary.8":
|
||||
version "12.1.1-canary.8"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.1-canary.8.tgz#dc6dc36b6cbaacddc80823a7e92ba3c1d52b560c"
|
||||
integrity sha512-1180Kc/n2BUVuroZgo2AaaBpxL9ubblsBK/BQUJH1LjLyVlH/34Hn5VceskKM3BtQQWwrdKKAI0r+7gvyhEZbw==
|
||||
|
||||
"@next/swc-win32-x64-msvc@12.1.1-canary.6":
|
||||
version "12.1.1-canary.6"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.1-canary.6.tgz#40398f810e75b0ad9bec55f0eb6c333c87d0554b"
|
||||
integrity sha512-Z4iOJEpod3RWBHT9EnrJCnFSyCaZS0EK/VHxJDxjYehV3EZoRgEhmxREOFMZPShy70FFBZKd66DjzT4ewbjJzQ==
|
||||
"@next/swc-win32-x64-msvc@12.1.1-canary.8":
|
||||
version "12.1.1-canary.8"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.1-canary.8.tgz#84973a757cbabcfa3aefbdc13348955c9aa11baf"
|
||||
integrity sha512-iBg/+D0l5k2EHll5lhPvx+TO8Ymipr/D6KTCxzi9nrfTBTH2ZNW4rJNzvonqfIA9NJDbv7Cyx+zj25xP3RwmTg==
|
||||
|
||||
"@nodelib/fs.scandir@2.1.5":
|
||||
version "2.1.5"
|
||||
@ -1365,72 +1365,71 @@
|
||||
resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.0.8.tgz#be3e914e84eacf16dbebd311c0d0b44aa1174c64"
|
||||
integrity sha512-ZK5v4bJwgXldAUA8r3q9YKfCwOqoHTK/ZqRjSeRXQrBXWouoPnS4MQtgC4AXGiiBuUu5wxrRgTlv0ktmM4P1Aw==
|
||||
|
||||
"@sentry/core@6.18.1":
|
||||
version "6.18.1"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.18.1.tgz#6d09c4f59b30b62d5d288b5f3f3af56f1f7e6336"
|
||||
integrity sha512-9V8Q+3Asi+3RL67CSIMMZ9mjMsu2/hrpQszYStX7hPPpAZIlAKk2MT5B+na/r80iWKhy+3Ts6aDFF218QtnsVw==
|
||||
"@sentry/core@6.18.2":
|
||||
version "6.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.18.2.tgz#d27619b7b4a4b90e2cfdc254d40ee9d630b251b9"
|
||||
integrity sha512-r5ad/gq5S/JHc9sd5CUhZQT9ojQ+f+thk/AoGeGawX/8HURZYAgIqD565d6FK0VsZEDkdRMl58z1Qon20h3y1g==
|
||||
dependencies:
|
||||
"@sentry/hub" "6.18.1"
|
||||
"@sentry/minimal" "6.18.1"
|
||||
"@sentry/types" "6.18.1"
|
||||
"@sentry/utils" "6.18.1"
|
||||
"@sentry/hub" "6.18.2"
|
||||
"@sentry/minimal" "6.18.2"
|
||||
"@sentry/types" "6.18.2"
|
||||
"@sentry/utils" "6.18.2"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/hub@6.18.1":
|
||||
version "6.18.1"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.18.1.tgz#fcfb8cb84515efefaf4e48472305ea5a71455abb"
|
||||
integrity sha512-+zGzgc/xX3an/nKA3ELMn9YD9VmqbNaNwWZ5/SjNUvzsYHh2UNZ7YzT8WawQsRVOXLljyCKxkWpFB4EchiYGbw==
|
||||
"@sentry/hub@6.18.2":
|
||||
version "6.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.18.2.tgz#fdb8536f61899fd48f3d1b49a6957348ad729ec5"
|
||||
integrity sha512-d0AugekMkbnN12b4EXMjseJxtLPc9S20DGobCPUb4oAQT6S2oDQEj1jwP6PQ5vtgyy+GMYWxBMgqAQ4pjVYISQ==
|
||||
dependencies:
|
||||
"@sentry/types" "6.18.1"
|
||||
"@sentry/utils" "6.18.1"
|
||||
"@sentry/types" "6.18.2"
|
||||
"@sentry/utils" "6.18.2"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/minimal@6.18.1":
|
||||
version "6.18.1"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.18.1.tgz#eac73d2262589930aa0bb33e0e12380ac5b766a9"
|
||||
integrity sha512-dm+0MuasWNi/LASvHX+09oCo8IBZY5WpMK8qXvQMnwQ9FVfklrjcfEI3666WORDCmeUhDCSeL2MbjPDm+AmPLg==
|
||||
"@sentry/minimal@6.18.2":
|
||||
version "6.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.18.2.tgz#581c2fc030b9c89f1fcdc3e4855b91ce6c95db56"
|
||||
integrity sha512-n7KYuo34W2LxE+3dnZ47of7XHuORINCnXq66XH72eoj67tf0XeWbIhEJrYGmoLRyRfoCYYrBLWiDl/uTjLzrzQ==
|
||||
dependencies:
|
||||
"@sentry/hub" "6.18.1"
|
||||
"@sentry/types" "6.18.1"
|
||||
"@sentry/hub" "6.18.2"
|
||||
"@sentry/types" "6.18.2"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/node@^6.18.1":
|
||||
version "6.18.1"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.18.1.tgz#8eddc80226bda77dd91100eb522e1e7d88963461"
|
||||
integrity sha512-aTb2gwfZUq0lGDRGH5zNOYDfFMOQZu6E0QcAsvH2ZBcEj3rUWZz3r25COFrHmfzHLUV1KcF2AmnWo1QU1jmm0g==
|
||||
"@sentry/node@^6.18.2":
|
||||
version "6.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.18.2.tgz#0d3a294ad89434b108f79da5c4d9fcde4f251993"
|
||||
integrity sha512-1S+44c09n3KVpCYjwOfnA9jKvnpPegpQWM81Nu5J6ToGx+ZiddMq6B9GRXUnFfZ7Z6fJHZzFtySasQC7KqkQoA==
|
||||
dependencies:
|
||||
"@sentry/core" "6.18.1"
|
||||
"@sentry/hub" "6.18.1"
|
||||
"@sentry/tracing" "6.18.1"
|
||||
"@sentry/types" "6.18.1"
|
||||
"@sentry/utils" "6.18.1"
|
||||
"@sentry/core" "6.18.2"
|
||||
"@sentry/hub" "6.18.2"
|
||||
"@sentry/types" "6.18.2"
|
||||
"@sentry/utils" "6.18.2"
|
||||
cookie "^0.4.1"
|
||||
https-proxy-agent "^5.0.0"
|
||||
lru_map "^0.3.3"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/tracing@6.18.1", "@sentry/tracing@^6.18.1":
|
||||
version "6.18.1"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.18.1.tgz#7cc54b328dd051102900ade53e907e7441426f83"
|
||||
integrity sha512-OxozmSfxGx246Ae1XhO01I7ZWxO3briwMBh55E5KyjQb8fuS9gVE7Uy8ZRs5hhNjDutFAU7nMtC0zipfVxP6fg==
|
||||
"@sentry/tracing@^6.18.2":
|
||||
version "6.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.18.2.tgz#163ecf0042aeb300c12952a91784fda6630085ef"
|
||||
integrity sha512-hg6NLqrqJ5sUPTyWEQ2RqdnhQVnyLtx8II0IyWxQLDWD8UCe3Mu6G7mroDtakPWcP+lWz6OnKfMEfuhMcxR8fw==
|
||||
dependencies:
|
||||
"@sentry/hub" "6.18.1"
|
||||
"@sentry/minimal" "6.18.1"
|
||||
"@sentry/types" "6.18.1"
|
||||
"@sentry/utils" "6.18.1"
|
||||
"@sentry/hub" "6.18.2"
|
||||
"@sentry/minimal" "6.18.2"
|
||||
"@sentry/types" "6.18.2"
|
||||
"@sentry/utils" "6.18.2"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/types@6.18.1":
|
||||
version "6.18.1"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.18.1.tgz#e2de38dd0da8096a5d22f8effc6756c919266ede"
|
||||
integrity sha512-wp741NoBKnXE/4T9L723sWJ8EcNMxeTIT1smgNJOfbPwrsDICoYmGEt6JFa05XHpWBGI66WuNvnDjoHVeh6zhA==
|
||||
"@sentry/types@6.18.2":
|
||||
version "6.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.18.2.tgz#f528fec8b75c19d5a6976004e71703184c6cf7be"
|
||||
integrity sha512-WzpJf/Q5aORTzrSwer/As1NlO90dBAQpaHV2ikDDKqOyMWEgjKb5/4gh59p9gH8JMMnLetP1AvQel0fOj5UnUw==
|
||||
|
||||
"@sentry/utils@6.18.1":
|
||||
version "6.18.1"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.18.1.tgz#1aa819502b042540612f4db7bcb86c7b176f5a6b"
|
||||
integrity sha512-IFZmuvA+c5lDGlZEri13JSyUP0BHelzY0S4dcKxAzskPW+BtBdQDgYGV90iED1y+IRMLawWb34GF7HyJSouN1Q==
|
||||
"@sentry/utils@6.18.2":
|
||||
version "6.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.18.2.tgz#c572a3ff49113e7dc4c97db1a18d117f199b9fff"
|
||||
integrity sha512-EC619jesknyu4xpwud5WC/5odYLz6JUy7OSFy5405PpdGeh/m8XUvuJAx4zDx0Iz/Mlk0S1Md+ZcQwqkv39dkw==
|
||||
dependencies:
|
||||
"@sentry/types" "6.18.1"
|
||||
"@sentry/types" "6.18.2"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@stitches/react@^1.2.7":
|
||||
@ -1717,15 +1716,15 @@
|
||||
semver "^7.3.5"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/parser@5.0.0":
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.0.0.tgz#50d1be2e0def82d73e863cceba74aeeac9973592"
|
||||
integrity sha512-B6D5rmmQ14I1fdzs71eL3DAuvnPHTY/t7rQABrL9BLnx/H51Un8ox1xqYAchs0/V2trcoyxB1lMJLlrwrJCDgw==
|
||||
"@typescript-eslint/parser@5.10.1":
|
||||
version "5.10.1"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.10.1.tgz#4ce9633cc33fc70bc13786cb793c1a76fe5ad6bd"
|
||||
integrity sha512-GReo3tjNBwR5RnRO0K2wDIDN31cM3MmDtgyQ85oAxAmC5K3j/g85IjP+cDfcqDsDDBf1HNKQAD0WqOYL8jXqUA==
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager" "5.0.0"
|
||||
"@typescript-eslint/types" "5.0.0"
|
||||
"@typescript-eslint/typescript-estree" "5.0.0"
|
||||
debug "^4.3.1"
|
||||
"@typescript-eslint/scope-manager" "5.10.1"
|
||||
"@typescript-eslint/types" "5.10.1"
|
||||
"@typescript-eslint/typescript-estree" "5.10.1"
|
||||
debug "^4.3.2"
|
||||
|
||||
"@typescript-eslint/parser@^5.14.0":
|
||||
version "5.14.0"
|
||||
@ -1737,13 +1736,13 @@
|
||||
"@typescript-eslint/typescript-estree" "5.14.0"
|
||||
debug "^4.3.2"
|
||||
|
||||
"@typescript-eslint/scope-manager@5.0.0":
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.0.0.tgz#aea0fb0e2480c1169a02e89d9005ac3f2835713f"
|
||||
integrity sha512-5RFjdA/ain/MDUHYXdF173btOKncIrLuBmA9s6FJhzDrRAyVSA+70BHg0/MW6TE+UiKVyRtX91XpVS0gVNwVDQ==
|
||||
"@typescript-eslint/scope-manager@5.10.1":
|
||||
version "5.10.1"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.10.1.tgz#f0539c73804d2423506db2475352a4dec36cd809"
|
||||
integrity sha512-Lyvi559Gvpn94k7+ElXNMEnXu/iundV5uFmCUNnftbFrUbAJ1WBoaGgkbOBm07jVZa682oaBU37ao/NGGX4ZDg==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.0.0"
|
||||
"@typescript-eslint/visitor-keys" "5.0.0"
|
||||
"@typescript-eslint/types" "5.10.1"
|
||||
"@typescript-eslint/visitor-keys" "5.10.1"
|
||||
|
||||
"@typescript-eslint/scope-manager@5.14.0":
|
||||
version "5.14.0"
|
||||
@ -1762,26 +1761,26 @@
|
||||
debug "^4.3.2"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/types@5.0.0":
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.0.0.tgz#25d93f6d269b2d25fdc51a0407eb81ccba60eb0f"
|
||||
integrity sha512-dU/pKBUpehdEqYuvkojmlv0FtHuZnLXFBn16zsDmlFF3LXkOpkAQ2vrKc3BidIIve9EMH2zfTlxqw9XM0fFN5w==
|
||||
"@typescript-eslint/types@5.10.1":
|
||||
version "5.10.1"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.10.1.tgz#dca9bd4cb8c067fc85304a31f38ec4766ba2d1ea"
|
||||
integrity sha512-ZvxQ2QMy49bIIBpTqFiOenucqUyjTQ0WNLhBM6X1fh1NNlYAC6Kxsx8bRTY3jdYsYg44a0Z/uEgQkohbR0H87Q==
|
||||
|
||||
"@typescript-eslint/types@5.14.0":
|
||||
version "5.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.14.0.tgz#96317cf116cea4befabc0defef371a1013f8ab11"
|
||||
integrity sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw==
|
||||
|
||||
"@typescript-eslint/typescript-estree@5.0.0":
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.0.0.tgz#bc20f413c6e572c7309dbe5fa3be027984952af3"
|
||||
integrity sha512-V/6w+PPQMhinWKSn+fCiX5jwvd1vRBm7AX7SJQXEGQtwtBvjMPjaU3YTQ1ik2UF1u96X7tsB96HMnulG3eLi9Q==
|
||||
"@typescript-eslint/typescript-estree@5.10.1":
|
||||
version "5.10.1"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.10.1.tgz#b268e67be0553f8790ba3fe87113282977adda15"
|
||||
integrity sha512-PwIGnH7jIueXv4opcwEbVGDATjGPO1dx9RkUl5LlHDSe+FXxPwFL5W/qYd5/NHr7f6lo/vvTrAzd0KlQtRusJQ==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.0.0"
|
||||
"@typescript-eslint/visitor-keys" "5.0.0"
|
||||
debug "^4.3.1"
|
||||
globby "^11.0.3"
|
||||
is-glob "^4.0.1"
|
||||
"@typescript-eslint/types" "5.10.1"
|
||||
"@typescript-eslint/visitor-keys" "5.10.1"
|
||||
debug "^4.3.2"
|
||||
globby "^11.0.4"
|
||||
is-glob "^4.0.3"
|
||||
semver "^7.3.5"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
@ -1810,12 +1809,12 @@
|
||||
eslint-scope "^5.1.1"
|
||||
eslint-utils "^3.0.0"
|
||||
|
||||
"@typescript-eslint/visitor-keys@5.0.0":
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.0.0.tgz#b789f7cd105e59bee5c0983a353942a5a48f56df"
|
||||
integrity sha512-yRyd2++o/IrJdyHuYMxyFyBhU762MRHQ/bAGQeTnN3pGikfh+nEmM61XTqaDH1XDp53afZ+waXrk0ZvenoZ6xw==
|
||||
"@typescript-eslint/visitor-keys@5.10.1":
|
||||
version "5.10.1"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.1.tgz#29102de692f59d7d34ecc457ed59ab5fc558010b"
|
||||
integrity sha512-NjQ0Xinhy9IL979tpoTRuLKxMc0zJC7QVSdeerXs2/QvOy2yRkzX5dRb10X5woNUdJgU8G3nYRDlI33sq1K4YQ==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.0.0"
|
||||
"@typescript-eslint/types" "5.10.1"
|
||||
eslint-visitor-keys "^3.0.0"
|
||||
|
||||
"@typescript-eslint/visitor-keys@5.14.0":
|
||||
@ -2113,9 +2112,9 @@ camelcase@^6.2.0:
|
||||
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
|
||||
|
||||
caniuse-lite@^1.0.30001283, caniuse-lite@^1.0.30001313:
|
||||
version "1.0.30001313"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001313.tgz#a380b079db91621e1b7120895874e2fd62ed2e2f"
|
||||
integrity sha512-rI1UN0koZUiKINjysQDuRi2VeSCce3bYJNmDcj3PIKREiAmjakugBul1QSkg/fPrlULYl6oWfGg3PbgOSY9X4Q==
|
||||
version "1.0.30001314"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001314.tgz#65c7f9fb7e4594fca0a333bec1d8939662377596"
|
||||
integrity sha512-0zaSO+TnCHtHJIbpLroX7nsD+vYuOVjl3uzFbJO1wMVbuveJA0RK2WcQA9ZUIOiO0/ArMiMgHJLxfEZhQiC0kw==
|
||||
|
||||
ccount@^1.0.0:
|
||||
version "1.1.0"
|
||||
@ -2408,7 +2407,7 @@ date-fns@^2.28.0:
|
||||
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.28.0.tgz#9570d656f5fc13143e50c975a3b6bbeb46cd08b2"
|
||||
integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==
|
||||
|
||||
debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3:
|
||||
debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3:
|
||||
version "4.3.3"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
|
||||
integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
|
||||
@ -2545,9 +2544,9 @@ eastasianwidth@^0.2.0:
|
||||
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
|
||||
|
||||
electron-to-chromium@^1.4.76:
|
||||
version "1.4.76"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.76.tgz#a0494baedaf51094b1c172999919becd9975a934"
|
||||
integrity sha512-3Vftv7cenJtQb+k00McEBZ2vVmZ/x+HEF7pcZONZIkOsESqAqVuACmBxMv0JhzX7u0YltU0vSqRqgBSTAhFUjA==
|
||||
version "1.4.78"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.78.tgz#7a1cf853efafde2c4cf6e86facf3e5792d3541a5"
|
||||
integrity sha512-o61+D/Lx7j/E0LIin/efOqeHpXhwi1TaQco9vUcRmr91m25SfZY6L5hWJDv/r+6kNjboFKgBw1LbfM0lbhuK6Q==
|
||||
|
||||
emoji-regex@^8.0.0:
|
||||
version "8.0.0"
|
||||
@ -2644,14 +2643,14 @@ escape-string-regexp@^5.0.0:
|
||||
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
|
||||
integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
|
||||
|
||||
eslint-config-next@12.1.1-canary.6:
|
||||
version "12.1.1-canary.6"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.1.1-canary.6.tgz#2948acca0bc6c7daa28a5f4f334b2e421e09a804"
|
||||
integrity sha512-AP0/W1C9rxcBVsf6V1L07QUnkRf6Ws/VzSaoWMGNrd22BR0vQ5v4faSba1tHMtgu0xBXnDojnIwSx9ryefDEOg==
|
||||
eslint-config-next@12.1.1-canary.8:
|
||||
version "12.1.1-canary.8"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.1.1-canary.8.tgz#b8ec6e0b42ce81cc830a24f80d5acb9fc509da5b"
|
||||
integrity sha512-glkfC2yB7+0flZLryTb7GlX1KFy35RAYza4jFXh67a6gH3PG7yElHfK8OY4p3OP7dw3BKtcromhpaVEWYSJ3ZQ==
|
||||
dependencies:
|
||||
"@next/eslint-plugin-next" "12.1.1-canary.6"
|
||||
"@next/eslint-plugin-next" "12.1.1-canary.8"
|
||||
"@rushstack/eslint-patch" "1.0.8"
|
||||
"@typescript-eslint/parser" "5.0.0"
|
||||
"@typescript-eslint/parser" "5.10.1"
|
||||
eslint-import-resolver-node "0.3.4"
|
||||
eslint-import-resolver-typescript "2.4.0"
|
||||
eslint-plugin-import "2.25.2"
|
||||
@ -3228,7 +3227,7 @@ globals@^13.6.0, globals@^13.9.0:
|
||||
dependencies:
|
||||
type-fest "^0.20.2"
|
||||
|
||||
globby@^11.0.3, globby@^11.0.4:
|
||||
globby@^11.0.4:
|
||||
version "11.1.0"
|
||||
resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
|
||||
integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
|
||||
@ -3820,16 +3819,16 @@ lint-staged@^12.3.5:
|
||||
yaml "^1.10.2"
|
||||
|
||||
listr2@^4.0.1:
|
||||
version "4.0.4"
|
||||
resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.4.tgz#d098a1c419284fb26e184b5d5889b235e8912245"
|
||||
integrity sha512-vJOm5KD6uZXjSsrwajr+mNacIjf87gWvlBEltPWLbTkslUscWAzquyK4xfe9Zd4RDgO5nnwFyV06FC+uVR+5mg==
|
||||
version "4.0.5"
|
||||
resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5"
|
||||
integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==
|
||||
dependencies:
|
||||
cli-truncate "^2.1.0"
|
||||
colorette "^2.0.16"
|
||||
log-update "^4.0.0"
|
||||
p-map "^4.0.0"
|
||||
rfdc "^1.3.0"
|
||||
rxjs "^7.5.4"
|
||||
rxjs "^7.5.5"
|
||||
through "^2.3.8"
|
||||
wrap-ansi "^7.0.0"
|
||||
|
||||
@ -4618,29 +4617,29 @@ next-transpile-modules@^9.0.0:
|
||||
enhanced-resolve "^5.7.0"
|
||||
escalade "^3.1.1"
|
||||
|
||||
next@12.1.1-canary.6:
|
||||
version "12.1.1-canary.6"
|
||||
resolved "https://registry.yarnpkg.com/next/-/next-12.1.1-canary.6.tgz#9b4c6ee392e5dc802ef6ad7c576747873b16e0ab"
|
||||
integrity sha512-aBNdKnu56n7VmDy4V3r+1mbn4Rcq0yfe4PkfZWkANtdNxnsnchAPWkL9NRzyVbIYSIgNX+QSLQWujMFt7BsXVA==
|
||||
next@12.1.1-canary.8:
|
||||
version "12.1.1-canary.8"
|
||||
resolved "https://registry.yarnpkg.com/next/-/next-12.1.1-canary.8.tgz#498541a504050825875981d58f2757d5d1165942"
|
||||
integrity sha512-UHd5sHxNSQcjGlyblve0wC/XHG/PvLdfOAvTO4Kg4WMl6NIH1ZgZGXWOAm1tba5jynaBrdIyErurs4+Mhhjf6w==
|
||||
dependencies:
|
||||
"@next/env" "12.1.1-canary.6"
|
||||
"@next/env" "12.1.1-canary.8"
|
||||
caniuse-lite "^1.0.30001283"
|
||||
postcss "8.4.5"
|
||||
styled-jsx "5.0.0"
|
||||
use-subscription "1.5.1"
|
||||
optionalDependencies:
|
||||
"@next/swc-android-arm-eabi" "12.1.1-canary.6"
|
||||
"@next/swc-android-arm64" "12.1.1-canary.6"
|
||||
"@next/swc-darwin-arm64" "12.1.1-canary.6"
|
||||
"@next/swc-darwin-x64" "12.1.1-canary.6"
|
||||
"@next/swc-linux-arm-gnueabihf" "12.1.1-canary.6"
|
||||
"@next/swc-linux-arm64-gnu" "12.1.1-canary.6"
|
||||
"@next/swc-linux-arm64-musl" "12.1.1-canary.6"
|
||||
"@next/swc-linux-x64-gnu" "12.1.1-canary.6"
|
||||
"@next/swc-linux-x64-musl" "12.1.1-canary.6"
|
||||
"@next/swc-win32-arm64-msvc" "12.1.1-canary.6"
|
||||
"@next/swc-win32-ia32-msvc" "12.1.1-canary.6"
|
||||
"@next/swc-win32-x64-msvc" "12.1.1-canary.6"
|
||||
"@next/swc-android-arm-eabi" "12.1.1-canary.8"
|
||||
"@next/swc-android-arm64" "12.1.1-canary.8"
|
||||
"@next/swc-darwin-arm64" "12.1.1-canary.8"
|
||||
"@next/swc-darwin-x64" "12.1.1-canary.8"
|
||||
"@next/swc-linux-arm-gnueabihf" "12.1.1-canary.8"
|
||||
"@next/swc-linux-arm64-gnu" "12.1.1-canary.8"
|
||||
"@next/swc-linux-arm64-musl" "12.1.1-canary.8"
|
||||
"@next/swc-linux-x64-gnu" "12.1.1-canary.8"
|
||||
"@next/swc-linux-x64-musl" "12.1.1-canary.8"
|
||||
"@next/swc-win32-arm64-msvc" "12.1.1-canary.8"
|
||||
"@next/swc-win32-ia32-msvc" "12.1.1-canary.8"
|
||||
"@next/swc-win32-x64-msvc" "12.1.1-canary.8"
|
||||
|
||||
node-abort-controller@^3.0.1:
|
||||
version "3.0.1"
|
||||
@ -5345,10 +5344,10 @@ run-parallel@^1.1.9:
|
||||
dependencies:
|
||||
queue-microtask "^1.2.2"
|
||||
|
||||
rxjs@^7.5.4:
|
||||
version "7.5.4"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.4.tgz#3d6bd407e6b7ce9a123e76b1e770dc5761aa368d"
|
||||
integrity sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ==
|
||||
rxjs@^7.5.5:
|
||||
version "7.5.5"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f"
|
||||
integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==
|
||||
dependencies:
|
||||
tslib "^2.1.0"
|
||||
|
||||
@ -5928,9 +5927,9 @@ unified@9.2.0:
|
||||
vfile "^4.0.0"
|
||||
|
||||
unified@^10.0.0:
|
||||
version "10.1.1"
|
||||
resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.1.tgz#345e349e3ab353ab612878338eb9d57b4dea1d46"
|
||||
integrity sha512-v4ky1+6BN9X3pQrOdkFIPWAaeDsHPE1svRDxq7YpTc2plkIqFMwukfqM+l0ewpP9EfwARlt9pPFAeWYhHm8X9w==
|
||||
version "10.1.2"
|
||||
resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df"
|
||||
integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==
|
||||
dependencies:
|
||||
"@types/unist" "^2.0.0"
|
||||
bail "^2.0.0"
|
||||
|
Reference in New Issue
Block a user