mirror of
https://github.com/jakejarvis/jarv.is.git
synced 2025-04-26 15:08:27 -04:00
use safer method of concatenating absolute URLs
This commit is contained in:
parent
1d3727cca0
commit
a8c1a3ba3c
@ -1,5 +1,6 @@
|
|||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
import NextLink from "next/link";
|
import NextLink from "next/link";
|
||||||
|
import urlJoin from "url-join";
|
||||||
import { styled } from "../../lib/styles/stitches.config";
|
import { styled } from "../../lib/styles/stitches.config";
|
||||||
import { baseUrl } from "../../lib/config";
|
import { baseUrl } from "../../lib/config";
|
||||||
import type { ComponentProps } from "react";
|
import type { ComponentProps } from "react";
|
||||||
@ -24,7 +25,7 @@ export type PageTitleProps = ComponentProps<typeof Title>;
|
|||||||
|
|
||||||
const PageTitle = ({ children, ...rest }: PageTitleProps) => {
|
const PageTitle = ({ children, ...rest }: PageTitleProps) => {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const canonical = `${baseUrl}${router.pathname}/`;
|
const canonical = urlJoin(baseUrl, router.pathname, "/");
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Title {...rest}>
|
<Title {...rest}>
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
import urlJoin from "url-join";
|
||||||
|
import type { StaticImageData } from "next/image";
|
||||||
|
import type { DefaultSeoProps, SocialProfileJsonLdProps, ArticleJsonLdProps } from "next-seo";
|
||||||
|
|
||||||
import * as config from ".";
|
import * as config from ".";
|
||||||
|
|
||||||
// favicons (some used here, some re-exported and used elsewhere)
|
// favicons (some used here, some re-exported and used elsewhere)
|
||||||
@ -10,9 +14,6 @@ import maskable512Png from "../../public/static/favicons/maskable-512x512.png";
|
|||||||
import maskable192Png from "../../public/static/favicons/maskable-192x192.png";
|
import maskable192Png from "../../public/static/favicons/maskable-192x192.png";
|
||||||
import meJpg from "../../public/static/images/me.jpg";
|
import meJpg from "../../public/static/images/me.jpg";
|
||||||
|
|
||||||
import type { StaticImageData } from "next/image";
|
|
||||||
import type { DefaultSeoProps, SocialProfileJsonLdProps, ArticleJsonLdProps } from "next-seo";
|
|
||||||
|
|
||||||
// Most of this file simply takes the data already defined in ./config.js and translates it into objects that are
|
// 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:
|
// compatible with next-seo's props:
|
||||||
// https://github.com/garmeeh/next-seo#default-seo-configuration
|
// https://github.com/garmeeh/next-seo#default-seo-configuration
|
||||||
@ -27,7 +28,7 @@ export const defaultSeo: DefaultSeoProps = {
|
|||||||
type: "website",
|
type: "website",
|
||||||
images: [
|
images: [
|
||||||
{
|
{
|
||||||
url: `${config.baseUrl}${meJpg.src}`,
|
url: urlJoin(config.baseUrl, meJpg.src),
|
||||||
alt: `${config.siteName} – ${config.shortDescription}`,
|
alt: `${config.siteName} – ${config.shortDescription}`,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -112,9 +113,9 @@ export const defaultSeo: DefaultSeoProps = {
|
|||||||
export const socialProfileJsonLd: SocialProfileJsonLdProps = {
|
export const socialProfileJsonLd: SocialProfileJsonLdProps = {
|
||||||
type: "Person",
|
type: "Person",
|
||||||
name: config.authorName,
|
name: config.authorName,
|
||||||
url: `${config.baseUrl}/`,
|
url: urlJoin(config.baseUrl, "/"),
|
||||||
sameAs: [
|
sameAs: [
|
||||||
`${config.baseUrl}/`,
|
urlJoin(config.baseUrl, "/"),
|
||||||
`https://github.com/${config.authorSocial?.github}`,
|
`https://github.com/${config.authorSocial?.github}`,
|
||||||
`https://keybase.io/${config.authorSocial?.keybase}`,
|
`https://keybase.io/${config.authorSocial?.keybase}`,
|
||||||
`https://twitter.com/${config.authorSocial?.twitter}`,
|
`https://twitter.com/${config.authorSocial?.twitter}`,
|
||||||
@ -130,7 +131,7 @@ export const socialProfileJsonLd: SocialProfileJsonLdProps = {
|
|||||||
export const articleJsonLd: Pick<ArticleJsonLdProps, "authorName" | "publisherName" | "publisherLogo"> = {
|
export const articleJsonLd: Pick<ArticleJsonLdProps, "authorName" | "publisherName" | "publisherLogo"> = {
|
||||||
authorName: [config.authorName],
|
authorName: [config.authorName],
|
||||||
publisherName: config.siteName,
|
publisherName: config.siteName,
|
||||||
publisherLogo: `${config.baseUrl}${meJpg.src}`,
|
publisherLogo: urlJoin(config.baseUrl, meJpg.src),
|
||||||
};
|
};
|
||||||
|
|
||||||
// Re-export icons to use their static image data elsewhere
|
// Re-export icons to use their static image data elsewhere
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { Feed } from "feed";
|
import { Feed } from "feed";
|
||||||
|
import urlJoin from "url-join";
|
||||||
import { getAllNotes } from "./parse-notes";
|
import { getAllNotes } from "./parse-notes";
|
||||||
import * as config from "../config";
|
import * as config from "../config";
|
||||||
import { RELEASE_DATE } from "../config/constants";
|
import { RELEASE_DATE } from "../config/constants";
|
||||||
@ -17,20 +18,20 @@ export const buildFeed = (
|
|||||||
|
|
||||||
// https://github.com/jpmonette/feed#example
|
// https://github.com/jpmonette/feed#example
|
||||||
const feed = new Feed({
|
const feed = new Feed({
|
||||||
id: `${config.baseUrl}/`,
|
id: urlJoin(config.baseUrl, "/"),
|
||||||
link: `${config.baseUrl}/`,
|
link: urlJoin(config.baseUrl, "/"),
|
||||||
title: config.siteName,
|
title: config.siteName,
|
||||||
description: config.longDescription,
|
description: config.longDescription,
|
||||||
copyright: "https://creativecommons.org/licenses/by/4.0/",
|
copyright: "https://creativecommons.org/licenses/by/4.0/",
|
||||||
updated: new Date(RELEASE_DATE),
|
updated: new Date(RELEASE_DATE),
|
||||||
image: `${config.baseUrl}${favicons.meJpg.src}`,
|
image: urlJoin(config.baseUrl, favicons.meJpg.src),
|
||||||
feedLinks: {
|
feedLinks: {
|
||||||
rss: `${config.baseUrl}/feed.xml`,
|
rss: urlJoin(config.baseUrl, "feed.xml"),
|
||||||
atom: `${config.baseUrl}/feed.atom`,
|
atom: urlJoin(config.baseUrl, "feed.atom"),
|
||||||
},
|
},
|
||||||
author: {
|
author: {
|
||||||
name: config.authorName,
|
name: config.authorName,
|
||||||
link: `${config.baseUrl}/`,
|
link: urlJoin(config.baseUrl, "/"),
|
||||||
email: config.authorEmail,
|
email: config.authorEmail,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@ -43,11 +44,11 @@ export const buildFeed = (
|
|||||||
link: note.permalink,
|
link: note.permalink,
|
||||||
title: note.title,
|
title: note.title,
|
||||||
description: note.description,
|
description: note.description,
|
||||||
image: note.image ? `${config.baseUrl}${note.image}` : "",
|
image: note.image ? urlJoin(config.baseUrl, note.image) : "",
|
||||||
author: [
|
author: [
|
||||||
{
|
{
|
||||||
name: config.authorName,
|
name: config.authorName,
|
||||||
link: config.baseUrl,
|
link: urlJoin(config.baseUrl, "/"),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
date: new Date(note.date),
|
date: new Date(note.date),
|
||||||
|
@ -3,6 +3,7 @@ import path from "path";
|
|||||||
import { renderToStaticMarkup } from "react-dom/server";
|
import { renderToStaticMarkup } from "react-dom/server";
|
||||||
import matter from "gray-matter";
|
import matter from "gray-matter";
|
||||||
import { serialize } from "next-mdx-remote/serialize";
|
import { serialize } from "next-mdx-remote/serialize";
|
||||||
|
import urlJoin from "url-join";
|
||||||
import { minify } from "terser";
|
import { minify } from "terser";
|
||||||
import { compiler } from "markdown-to-jsx";
|
import { compiler } from "markdown-to-jsx";
|
||||||
import removeMarkdown from "remove-markdown";
|
import removeMarkdown from "remove-markdown";
|
||||||
@ -54,7 +55,7 @@ export const getNoteData = (slug: string): Omit<NoteType, "source"> & { content:
|
|||||||
// parsed markdown title:
|
// parsed markdown title:
|
||||||
htmlTitle,
|
htmlTitle,
|
||||||
slug,
|
slug,
|
||||||
permalink: `${baseUrl}/notes/${slug}/`,
|
permalink: urlJoin(baseUrl, "notes", slug, "/"),
|
||||||
date: new Date(data.date).toISOString(), // validate/normalize the date string provided from front matter
|
date: new Date(data.date).toISOString(), // validate/normalize the date string provided from front matter
|
||||||
readingMins: Math.ceil(readingTime(content).minutes),
|
readingMins: Math.ceil(readingTime(content).minutes),
|
||||||
},
|
},
|
||||||
|
15
package.json
15
package.json
@ -41,7 +41,7 @@
|
|||||||
"gray-matter": "^4.0.3",
|
"gray-matter": "^4.0.3",
|
||||||
"is-absolute-url": "^4.0.1",
|
"is-absolute-url": "^4.0.1",
|
||||||
"markdown-to-jsx": "^7.1.7",
|
"markdown-to-jsx": "^7.1.7",
|
||||||
"next": "12.1.5-canary.3",
|
"next": "12.1.5-canary.4",
|
||||||
"next-compose-plugins": "^2.2.1",
|
"next-compose-plugins": "^2.2.1",
|
||||||
"next-mdx-remote": "4.0.1",
|
"next-mdx-remote": "4.0.1",
|
||||||
"next-seo": "^5.4.0",
|
"next-seo": "^5.4.0",
|
||||||
@ -68,16 +68,17 @@
|
|||||||
"sanitize-html": "^2.7.0",
|
"sanitize-html": "^2.7.0",
|
||||||
"simple-icons": "^6.17.0",
|
"simple-icons": "^6.17.0",
|
||||||
"stitches-normalize": "^2.0.0",
|
"stitches-normalize": "^2.0.0",
|
||||||
"swr": "^1.2.2"
|
"swr": "^1.2.2",
|
||||||
|
"url-join": "^5.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@jakejarvis/eslint-config": "*",
|
"@jakejarvis/eslint-config": "*",
|
||||||
"@next/bundle-analyzer": "12.1.5-canary.3",
|
"@next/bundle-analyzer": "12.1.5-canary.4",
|
||||||
"@svgr/webpack": "^6.2.1",
|
"@svgr/webpack": "^6.2.1",
|
||||||
"@types/node": "*",
|
"@types/node": "*",
|
||||||
"@types/prop-types": "^15.7.4",
|
"@types/prop-types": "^15.7.5",
|
||||||
"@types/react": "^17.0.43",
|
"@types/react": "^18.0.0",
|
||||||
"@types/react-dom": "^17.0.14",
|
"@types/react-dom": "^18.0.0",
|
||||||
"@types/react-is": "^17.0.3",
|
"@types/react-is": "^17.0.3",
|
||||||
"@types/remove-markdown": "^0.3.1",
|
"@types/remove-markdown": "^0.3.1",
|
||||||
"@types/sanitize-html": "^2.6.2",
|
"@types/sanitize-html": "^2.6.2",
|
||||||
@ -85,7 +86,7 @@
|
|||||||
"@typescript-eslint/parser": "^5.18.0",
|
"@typescript-eslint/parser": "^5.18.0",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"eslint": "~8.12.0",
|
"eslint": "~8.12.0",
|
||||||
"eslint-config-next": "12.1.5-canary.3",
|
"eslint-config-next": "12.1.5-canary.4",
|
||||||
"eslint-config-prettier": "~8.5.0",
|
"eslint-config-prettier": "~8.5.0",
|
||||||
"eslint-plugin-mdx": "~1.17.0",
|
"eslint-plugin-mdx": "~1.17.0",
|
||||||
"eslint-plugin-prettier": "~4.0.0",
|
"eslint-plugin-prettier": "~4.0.0",
|
||||||
|
@ -2,6 +2,7 @@ import { useEffect } from "react";
|
|||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
import { DefaultSeo, SocialProfileJsonLd } from "next-seo";
|
import { DefaultSeo, SocialProfileJsonLd } from "next-seo";
|
||||||
import * as Fathom from "fathom-client";
|
import * as Fathom from "fathom-client";
|
||||||
|
import urlJoin from "url-join";
|
||||||
import { ThemeProvider } from "../contexts/ThemeContext";
|
import { ThemeProvider } from "../contexts/ThemeContext";
|
||||||
import Layout from "../components/Layout";
|
import Layout from "../components/Layout";
|
||||||
import * as config from "../lib/config";
|
import * as config from "../lib/config";
|
||||||
@ -24,7 +25,7 @@ const App = ({ Component, pageProps }: AppProps) => {
|
|||||||
|
|
||||||
// get this page's URL with full domain, and hack around query parameters and anchors
|
// get this page's URL with full domain, and hack around query parameters and anchors
|
||||||
// NOTE: this assumes trailing slashes are enabled in next.config.js
|
// NOTE: this assumes trailing slashes are enabled in next.config.js
|
||||||
const canonical = `${config.baseUrl}${router.pathname === "/" ? "" : router.pathname}/`;
|
const canonical = urlJoin(config.baseUrl, router.pathname === "/" ? "" : router.pathname, "/");
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// https://usefathom.com/docs/integrations/next
|
// https://usefathom.com/docs/integrations/next
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { InView } from "react-intersection-observer";
|
import { InView } from "react-intersection-observer";
|
||||||
import { NextSeo, ArticleJsonLd } from "next-seo";
|
import { NextSeo, ArticleJsonLd } from "next-seo";
|
||||||
import { MDXRemote } from "next-mdx-remote";
|
import { MDXRemote } from "next-mdx-remote";
|
||||||
|
import urlJoin from "url-join";
|
||||||
import Content from "../../components/Content";
|
import Content from "../../components/Content";
|
||||||
import NoteMeta from "../../components/NoteMeta";
|
import NoteMeta from "../../components/NoteMeta";
|
||||||
import Comments from "../../components/Comments";
|
import Comments from "../../components/Comments";
|
||||||
@ -30,7 +31,7 @@ const Note = ({ frontMatter, source }: NoteType) => {
|
|||||||
},
|
},
|
||||||
images: frontMatter.image && [
|
images: frontMatter.image && [
|
||||||
{
|
{
|
||||||
url: `${config.baseUrl}${frontMatter.image}`,
|
url: urlJoin(config.baseUrl, frontMatter.image),
|
||||||
alt: frontMatter.title,
|
alt: frontMatter.title,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -45,7 +46,7 @@ const Note = ({ frontMatter, source }: NoteType) => {
|
|||||||
description={frontMatter.description}
|
description={frontMatter.description}
|
||||||
datePublished={frontMatter.date}
|
datePublished={frontMatter.date}
|
||||||
dateModified={frontMatter.date}
|
dateModified={frontMatter.date}
|
||||||
images={frontMatter.image && [`${config.baseUrl}${frontMatter.image}`]}
|
images={frontMatter.image && [urlJoin(config.baseUrl, frontMatter.image)]}
|
||||||
{...articleJsonLd}
|
{...articleJsonLd}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { getServerSideSitemap } from "next-sitemap";
|
import { getServerSideSitemap } from "next-sitemap";
|
||||||
|
import urlJoin from "url-join";
|
||||||
import { getAllNotes } from "../lib/helpers/parse-notes";
|
import { getAllNotes } from "../lib/helpers/parse-notes";
|
||||||
import { baseUrl } from "../lib/config";
|
import { baseUrl } from "../lib/config";
|
||||||
import { RELEASE_DATE } from "../lib/config/constants";
|
import { RELEASE_DATE } from "../lib/config/constants";
|
||||||
@ -33,7 +34,7 @@ export const getServerSideProps: GetServerSideProps = async (context) => {
|
|||||||
const notes = getAllNotes();
|
const notes = getAllNotes();
|
||||||
notes.map((note) =>
|
notes.map((note) =>
|
||||||
pages.push({
|
pages.push({
|
||||||
loc: `/notes/${note.slug}/`,
|
loc: urlJoin("/notes/", note.slug, "/"),
|
||||||
// pull lastMod from front matter date
|
// pull lastMod from front matter date
|
||||||
lastmod: new Date(note.date).toISOString(),
|
lastmod: new Date(note.date).toISOString(),
|
||||||
priority: 0.7,
|
priority: 0.7,
|
||||||
@ -41,7 +42,7 @@ export const getServerSideProps: GetServerSideProps = async (context) => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
// make all relative URLs absolute
|
// make all relative URLs absolute
|
||||||
pages.map((page) => (page.loc = `${baseUrl}${page.loc}`));
|
pages.map((page) => (page.loc = urlJoin(baseUrl, page.loc)));
|
||||||
|
|
||||||
// cache on edge for 12 hours
|
// cache on edge for 12 hours
|
||||||
const { res } = context;
|
const { res } = context;
|
||||||
|
193
yarn.lock
193
yarn.lock
@ -1147,84 +1147,84 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.6.22.tgz#219dfd89ae5b97a8801f015323ffa4b62f45718b"
|
resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.6.22.tgz#219dfd89ae5b97a8801f015323ffa4b62f45718b"
|
||||||
integrity sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==
|
integrity sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==
|
||||||
|
|
||||||
"@next/bundle-analyzer@12.1.5-canary.3":
|
"@next/bundle-analyzer@12.1.5-canary.4":
|
||||||
version "12.1.5-canary.3"
|
version "12.1.5-canary.4"
|
||||||
resolved "https://registry.yarnpkg.com/@next/bundle-analyzer/-/bundle-analyzer-12.1.5-canary.3.tgz#5df706a80bcd018158d1a12a2d36c67b6d627cd5"
|
resolved "https://registry.yarnpkg.com/@next/bundle-analyzer/-/bundle-analyzer-12.1.5-canary.4.tgz#a23efebeec7e19dade55fb417df5068aecfa2efb"
|
||||||
integrity sha512-nm0zGVaIIIhluXwKSciYUXapNB6dkvahzM0fMzyqnsUUZKI8u2wZHmXdqpOdnlwIJB82uiXm/bpDX31VjLO2pQ==
|
integrity sha512-utgqpE6L6pwVSkqRd4OjLiw8LuX3BBiaB96CaJrZj4UWxwiyGFokWd28Z7mslpb+dLke86WLjUv/QF+MH1qDUQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
webpack-bundle-analyzer "4.3.0"
|
webpack-bundle-analyzer "4.3.0"
|
||||||
|
|
||||||
"@next/env@12.1.5-canary.3":
|
"@next/env@12.1.5-canary.4":
|
||||||
version "12.1.5-canary.3"
|
version "12.1.5-canary.4"
|
||||||
resolved "https://registry.yarnpkg.com/@next/env/-/env-12.1.5-canary.3.tgz#ecafaf1e59ce0232245b1d540664a4188e856e66"
|
resolved "https://registry.yarnpkg.com/@next/env/-/env-12.1.5-canary.4.tgz#9b5e5108e2124edcddd5a7f9ddda7d244bd96c68"
|
||||||
integrity sha512-8oxgSPYaoGY1AyCHKJIsyPoWM+LEimnxLnw0q5yfT+SEY7E8/vCcQRmZtn9SgijIc0t0wDHlYtVD0L9DCB8usg==
|
integrity sha512-cXMjrodrFcQE38eELp6n2Q8zSnLiHVX88+CuW7QID2UDmillKNYW/OKYVjcB981wWz/OFM0UGIdf5KwA6IeDeA==
|
||||||
|
|
||||||
"@next/eslint-plugin-next@12.1.5-canary.3":
|
"@next/eslint-plugin-next@12.1.5-canary.4":
|
||||||
version "12.1.5-canary.3"
|
version "12.1.5-canary.4"
|
||||||
resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.1.5-canary.3.tgz#4675c5e17e41bdc9b2a29e21ae439eba8c314a2f"
|
resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.1.5-canary.4.tgz#180f14ec0a62da5842af0f4bf5bc2278e6a0c5db"
|
||||||
integrity sha512-rO3vHQmsIxdL4e6hYSeDw5NK713DUCHc022yhN3/NVpPceYYK1T9HYA5ikQ13tWNmXVeb+FP7nfAZeBWBcdFpQ==
|
integrity sha512-Nq96LvUgHphZaZRxLyCaobhiTorZNG8zh0FrslikP2NMPgxT6MCSiucO4tER1zP0YghZzQYpLcjfIQbJ0crQNw==
|
||||||
dependencies:
|
dependencies:
|
||||||
glob "7.1.7"
|
glob "7.1.7"
|
||||||
|
|
||||||
"@next/swc-android-arm-eabi@12.1.5-canary.3":
|
"@next/swc-android-arm-eabi@12.1.5-canary.4":
|
||||||
version "12.1.5-canary.3"
|
version "12.1.5-canary.4"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.5-canary.3.tgz#644e7b5481db40c54553e595516c29b5962a467a"
|
resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.5-canary.4.tgz#9e25cd6abadbd9b0edb50cabe2daaab4061afea4"
|
||||||
integrity sha512-EI7L9+1r29AHSUMdv+Kd9uqUQ8X+MeNwkmuDaEqCS36iHiKXmTL+t4gnMMCYGU0T07yKwku3RydDhpk4NzXyYw==
|
integrity sha512-tt99U4bSgqPWbSsp0oyzol0fxwfLlsjlF9oSdwGlPOR2nQ91QpGtUsT5uyXlXyPBhjaCT5OS739GsT5IHoAEQg==
|
||||||
|
|
||||||
"@next/swc-android-arm64@12.1.5-canary.3":
|
"@next/swc-android-arm64@12.1.5-canary.4":
|
||||||
version "12.1.5-canary.3"
|
version "12.1.5-canary.4"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.1.5-canary.3.tgz#35113acce726252c3a441b238674bb781d6ab96e"
|
resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.1.5-canary.4.tgz#93876e17fc4034ae15f74e111f77aab4fdbcecdf"
|
||||||
integrity sha512-1C0UP4CNDfunsdjJ1h8ByhO5Rda+CJwRI4/3m8lnYp1QekCi5l5GB3uXRTA584fu9iQUV0m4AwqJjbJy2XRZGw==
|
integrity sha512-LEX7por70dlKigcBWj8OfzU36pVTJ3C6r4Hrr3kKrS6zEstCJlUmUp9CLOUT4aJ1gDNym0p2AYwvsXShp/cxWA==
|
||||||
|
|
||||||
"@next/swc-darwin-arm64@12.1.5-canary.3":
|
"@next/swc-darwin-arm64@12.1.5-canary.4":
|
||||||
version "12.1.5-canary.3"
|
version "12.1.5-canary.4"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.5-canary.3.tgz#f74e4dd84e689d77375211e5d61f04658db848fe"
|
resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.5-canary.4.tgz#1024cf80c4c76e0385e0e19dd775a2798e82f7ad"
|
||||||
integrity sha512-0/tGblqyomguI0zcSPE+dThYAUzGt8eEiHiq227dGeBI3L/DJli7O9uzY2N1PR7qXMuSI6dioc5dqRtAXT886Q==
|
integrity sha512-ddXvdzo6HrK8rU+A5AGy7iC0yjVi0Pzv9LjzqXmzoZDlKEB8PPnjop+HAsQJf/Kzk1Yw9CH7eNjQsMbi8HhX0w==
|
||||||
|
|
||||||
"@next/swc-darwin-x64@12.1.5-canary.3":
|
"@next/swc-darwin-x64@12.1.5-canary.4":
|
||||||
version "12.1.5-canary.3"
|
version "12.1.5-canary.4"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.5-canary.3.tgz#9f8263dc0ffdbaedaf25b7d43fe431356c48615c"
|
resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.5-canary.4.tgz#56c536203c574909559a06e9e18695b2a876841d"
|
||||||
integrity sha512-cD/wT73vnx8BpgGTH0qpN8N+MAWjQjLuzhjK68uFlBNQ4YBB9/CiJSlp+bBjLRllw3tMcFmDNKqpn/hLE2sjGg==
|
integrity sha512-AFN9Go6KF7kApDnxcwvMunPxrfMZMIEr8ud/GElpl/aBpEgoFj/MGol33xwBQc1NZGrY+7IjOeVCGe5jEqya/A==
|
||||||
|
|
||||||
"@next/swc-linux-arm-gnueabihf@12.1.5-canary.3":
|
"@next/swc-linux-arm-gnueabihf@12.1.5-canary.4":
|
||||||
version "12.1.5-canary.3"
|
version "12.1.5-canary.4"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.5-canary.3.tgz#b284aae77c29d21bd688a31055165096a9533b6e"
|
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.5-canary.4.tgz#c30c196392b4413d2a8c7e5e8b4b7b21eb32aa68"
|
||||||
integrity sha512-9lWDlhrXJLY2pku/qP8MTqsLRO7eR62kbr+N5UvKXuUCuiky3DoSBL0ppWSBlKTS7mftZjy8AmX5GKPq3KQOCQ==
|
integrity sha512-GCzrV7K3sITb1nxlnTfI901firrXCOa/7uKoiUhMPPxP+xJVNu0EjwelgpobWfYgEBHqsa/uKBYURnKrh0/fZQ==
|
||||||
|
|
||||||
"@next/swc-linux-arm64-gnu@12.1.5-canary.3":
|
"@next/swc-linux-arm64-gnu@12.1.5-canary.4":
|
||||||
version "12.1.5-canary.3"
|
version "12.1.5-canary.4"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.5-canary.3.tgz#ce07d5e8d4907e8f4ee10a4593cf2efe0e52144e"
|
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.5-canary.4.tgz#f224cf0568ed56fe3f031f347c48bbcd205bd64b"
|
||||||
integrity sha512-BhVlu7WYQYqadtex5wQdNE2WPvnkZjkvt6ZDD+lr9BnddxjUqnG0cpSCwyaYMUwib2efRslCaDAElkfTwWH6Gw==
|
integrity sha512-LFxRvADEjSTIN+j+j5kuzmzZqloWo8VZi4Yl6/dooa7iBkRlViC28wtr6is1rqwrCp0J4PxL5Z6oGCPVJCez1Q==
|
||||||
|
|
||||||
"@next/swc-linux-arm64-musl@12.1.5-canary.3":
|
"@next/swc-linux-arm64-musl@12.1.5-canary.4":
|
||||||
version "12.1.5-canary.3"
|
version "12.1.5-canary.4"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.5-canary.3.tgz#2e13a8a0b93dbf5618c5b82c65b6673dcd5d09d0"
|
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.5-canary.4.tgz#e16a7aa069c494bd39a20e1646a87db1bedc551f"
|
||||||
integrity sha512-iULGOQHYEgcaXE4aXuH7/KlOk2SPBUNIQC2HlqS3qMoW8T8I+v4cIz6B6S1uywXjaJD/RGKiDNsNX8w5gUGIZA==
|
integrity sha512-5/YLEVy8vuSooulMq5V0D1zH9/wkU3beJ5yrmAOL8gLYQAo/wHfDoR3ORznMF2uZsMX6pQ6NeMFycL9GSwy7lg==
|
||||||
|
|
||||||
"@next/swc-linux-x64-gnu@12.1.5-canary.3":
|
"@next/swc-linux-x64-gnu@12.1.5-canary.4":
|
||||||
version "12.1.5-canary.3"
|
version "12.1.5-canary.4"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.5-canary.3.tgz#9ff8cc29afdd0a2297d0e2fd9d37274209d5b4cb"
|
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.5-canary.4.tgz#773627dbc681130021345b8fe3c89c58d61420be"
|
||||||
integrity sha512-1FztGThf+Q6sB+jDnwsFB25kdKFSDSQy9OmnYguf+KbDcDoDDcTLsulGhZ7F2/eIOI6/QW6OM3q2OdI3JseYpg==
|
integrity sha512-Hy2poAkPya0dRhfeqeCeBcCSoYJbc3llwrTLEDyci0QrrrengxpQXghR2iNO/E+ycz2xVGqPfuMel3JCGTwRWA==
|
||||||
|
|
||||||
"@next/swc-linux-x64-musl@12.1.5-canary.3":
|
"@next/swc-linux-x64-musl@12.1.5-canary.4":
|
||||||
version "12.1.5-canary.3"
|
version "12.1.5-canary.4"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.5-canary.3.tgz#b0c65d2e0f08ca2caee60d920cf2459495393e50"
|
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.5-canary.4.tgz#373af8da463821081070023d790d4f98565a8b32"
|
||||||
integrity sha512-XPEbvsa9uZc8gBI1ytNrxRAw8PhazckeYtDMggeqDTSQznCp9ba+dZ7CzCHHpf9X0HVRqQdF1MZ7Y52ji3PH8Q==
|
integrity sha512-CP5uYJqG/0bWYIG+IuDXGAZ6e5LLrMXEyg0C/6XM/ATM5GrdF0GrVnw32KlzBKmMrEk1/BE0z+mxO0DbN3IfXw==
|
||||||
|
|
||||||
"@next/swc-win32-arm64-msvc@12.1.5-canary.3":
|
"@next/swc-win32-arm64-msvc@12.1.5-canary.4":
|
||||||
version "12.1.5-canary.3"
|
version "12.1.5-canary.4"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.5-canary.3.tgz#52852c338fa1414bdca0cb12cd9d0f4879d66c38"
|
resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.5-canary.4.tgz#3ca7331960140a0d387ed1b6079ecd0bd7178dc6"
|
||||||
integrity sha512-1ehsnGq+DB5Ncd6aUjYl9+9DR/qvbR6BwMtSwvkOx4ZrrNyzP5CxH/wYtmevc5Rb9MovN+IphYUUuQELvwsIPQ==
|
integrity sha512-9orbZuIWxISoyvhf236wp8uRO9f0C0/voRZ6wb8DJNfL7n2ZTu6Rj9GXYhBbbFyidaPW44jdJ/yR7EFvAkJs/w==
|
||||||
|
|
||||||
"@next/swc-win32-ia32-msvc@12.1.5-canary.3":
|
"@next/swc-win32-ia32-msvc@12.1.5-canary.4":
|
||||||
version "12.1.5-canary.3"
|
version "12.1.5-canary.4"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.5-canary.3.tgz#bce9c2d9a045d4b62cd00db79c4818339ae29dc6"
|
resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.5-canary.4.tgz#672bf5b50e686e2b824c7cbaf25920a3fce5f3f5"
|
||||||
integrity sha512-5R/MLYxGNHisQOSd9vQCJL9qwGq6P9dN6k4ZtIa3z2r//bCRNPjNK7odMSasamMmzMD9e8N6k601U01K2rh4BQ==
|
integrity sha512-GJR5Q/SkHIVlBn8Lbo/HXzq/KyeXVYoHtaNOp+okYemdTAPmYLqTwH8F7+mVTKg6pzGdRXO3yUj6DM6lTSIMWQ==
|
||||||
|
|
||||||
"@next/swc-win32-x64-msvc@12.1.5-canary.3":
|
"@next/swc-win32-x64-msvc@12.1.5-canary.4":
|
||||||
version "12.1.5-canary.3"
|
version "12.1.5-canary.4"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.5-canary.3.tgz#23210738ec113bc616d32b995f430a4f436707e5"
|
resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.5-canary.4.tgz#644046929034530fd692faa8fab0cb1b418289a3"
|
||||||
integrity sha512-xTASNc87iWMtNdpyKgTm91Z4+1EzkQH9K2HmktkyPYtGP5ZzIbvzUQ64TzFo+XemtOrTlYsTuagpEB0fouXD6w==
|
integrity sha512-wsXqXj4g9CHagoQ78diYc44rl3Hyvsv/EPEJLoHZldnGLW5Y8jS/2rTQkN55Y5KqTVdO7HkEwp3oww22eRqYxQ==
|
||||||
|
|
||||||
"@nodelib/fs.scandir@2.1.5":
|
"@nodelib/fs.scandir@2.1.5":
|
||||||
version "2.1.5"
|
version "2.1.5"
|
||||||
@ -1646,15 +1646,15 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.26.0.tgz#a1c3809b0ad61c62cac6d4e0c56d610c910b7654"
|
resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.26.0.tgz#a1c3809b0ad61c62cac6d4e0c56d610c910b7654"
|
||||||
integrity sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ==
|
integrity sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ==
|
||||||
|
|
||||||
"@types/prop-types@*", "@types/prop-types@^15.7.4":
|
"@types/prop-types@*", "@types/prop-types@^15.7.5":
|
||||||
version "15.7.4"
|
version "15.7.5"
|
||||||
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11"
|
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
|
||||||
integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==
|
integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
|
||||||
|
|
||||||
"@types/react-dom@^17.0.14":
|
"@types/react-dom@^18.0.0":
|
||||||
version "17.0.14"
|
version "18.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.14.tgz#c8f917156b652ddf807711f5becbd2ab018dea9f"
|
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.0.tgz#b13f8d098e4b0c45df4f1ed123833143b0c71141"
|
||||||
integrity sha512-H03xwEP1oXmSfl3iobtmQ/2dHF5aBHr8aUMwyGZya6OW45G+xtdzmq6HkncefiBt5JU8DVyaWl/nWZbjZCnzAQ==
|
integrity sha512-49897Y0UiCGmxZqpC8Blrf6meL8QUla6eb+BBhn69dTXlmuOlzkfr7HHY/O8J25e1lTUMs+YYxSlVDAaGHCOLg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/react" "*"
|
"@types/react" "*"
|
||||||
|
|
||||||
@ -1665,10 +1665,10 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@types/react" "*"
|
"@types/react" "*"
|
||||||
|
|
||||||
"@types/react@*", "@types/react@>=16", "@types/react@^17.0.43":
|
"@types/react@*", "@types/react@>=16", "@types/react@^18.0.0":
|
||||||
version "17.0.43"
|
version "18.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.43.tgz#4adc142887dd4a2601ce730bc56c3436fdb07a55"
|
resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.0.tgz#4be8aa3a2d04afc3ac2cc1ca43d39b0bd412890c"
|
||||||
integrity sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A==
|
integrity sha512-7+K7zEQYu7NzOwQGLR91KwWXXDzmTFODRVizJyIALf6RfLv2GDpqpknX64pvRVILXCpXi7O/pua8NGk44dLvJw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/prop-types" "*"
|
"@types/prop-types" "*"
|
||||||
"@types/scheduler" "*"
|
"@types/scheduler" "*"
|
||||||
@ -2648,12 +2648,12 @@ escape-string-regexp@^5.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
|
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
|
||||||
integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
|
integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
|
||||||
|
|
||||||
eslint-config-next@12.1.5-canary.3:
|
eslint-config-next@12.1.5-canary.4:
|
||||||
version "12.1.5-canary.3"
|
version "12.1.5-canary.4"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.1.5-canary.3.tgz#d2b3dee528f3308df0ef25b3f8858a55cb5923c8"
|
resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.1.5-canary.4.tgz#e0b7d237fd8025b2885a79c26314b7cf2c756603"
|
||||||
integrity sha512-UPAbCQ55owz9H8YdigpcaWIpGPYxvX/Cv98F9+3U5EXI1LUvDY7ajbYKvUFj8EMBeRDdY5BO8WrqXL8ZjgYexQ==
|
integrity sha512-VShmyM4rnCkFGTA9Eg+pqFLTbpWxAvayWShvmc+a+IXGQCWXPgiza8T4Pq+dgIXLdm2ytyZ5IZ+vZZv01Y+4bQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@next/eslint-plugin-next" "12.1.5-canary.3"
|
"@next/eslint-plugin-next" "12.1.5-canary.4"
|
||||||
"@rushstack/eslint-patch" "1.0.8"
|
"@rushstack/eslint-patch" "1.0.8"
|
||||||
"@typescript-eslint/parser" "5.10.1"
|
"@typescript-eslint/parser" "5.10.1"
|
||||||
eslint-import-resolver-node "0.3.4"
|
eslint-import-resolver-node "0.3.4"
|
||||||
@ -4626,28 +4626,28 @@ next-transpile-modules@^9.0.0:
|
|||||||
enhanced-resolve "^5.7.0"
|
enhanced-resolve "^5.7.0"
|
||||||
escalade "^3.1.1"
|
escalade "^3.1.1"
|
||||||
|
|
||||||
next@12.1.5-canary.3:
|
next@12.1.5-canary.4:
|
||||||
version "12.1.5-canary.3"
|
version "12.1.5-canary.4"
|
||||||
resolved "https://registry.yarnpkg.com/next/-/next-12.1.5-canary.3.tgz#37b83e7992c4386b99b1f7a0f08f71b949d2a6e5"
|
resolved "https://registry.yarnpkg.com/next/-/next-12.1.5-canary.4.tgz#8298484d505c2b1d7f2d739f2066726ec76e90b6"
|
||||||
integrity sha512-up9GXlebBIR4kL7D9HnlK56Vj9IVZXLa5L8FKmNqF5oias8EqnrU2CRUjO/cinbxmmBqH780qSBFtZ6HzpoX5A==
|
integrity sha512-A8yrJQWU+5AXeA6Obp7MB2dXyLaKxJ2vstkaQ8FR7ZYs0ldRzjySE/TArBzM2w4utjJoLP1IKuu+49gGozT7Wg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@next/env" "12.1.5-canary.3"
|
"@next/env" "12.1.5-canary.4"
|
||||||
caniuse-lite "^1.0.30001283"
|
caniuse-lite "^1.0.30001283"
|
||||||
postcss "8.4.5"
|
postcss "8.4.5"
|
||||||
styled-jsx "5.0.1"
|
styled-jsx "5.0.1"
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
"@next/swc-android-arm-eabi" "12.1.5-canary.3"
|
"@next/swc-android-arm-eabi" "12.1.5-canary.4"
|
||||||
"@next/swc-android-arm64" "12.1.5-canary.3"
|
"@next/swc-android-arm64" "12.1.5-canary.4"
|
||||||
"@next/swc-darwin-arm64" "12.1.5-canary.3"
|
"@next/swc-darwin-arm64" "12.1.5-canary.4"
|
||||||
"@next/swc-darwin-x64" "12.1.5-canary.3"
|
"@next/swc-darwin-x64" "12.1.5-canary.4"
|
||||||
"@next/swc-linux-arm-gnueabihf" "12.1.5-canary.3"
|
"@next/swc-linux-arm-gnueabihf" "12.1.5-canary.4"
|
||||||
"@next/swc-linux-arm64-gnu" "12.1.5-canary.3"
|
"@next/swc-linux-arm64-gnu" "12.1.5-canary.4"
|
||||||
"@next/swc-linux-arm64-musl" "12.1.5-canary.3"
|
"@next/swc-linux-arm64-musl" "12.1.5-canary.4"
|
||||||
"@next/swc-linux-x64-gnu" "12.1.5-canary.3"
|
"@next/swc-linux-x64-gnu" "12.1.5-canary.4"
|
||||||
"@next/swc-linux-x64-musl" "12.1.5-canary.3"
|
"@next/swc-linux-x64-musl" "12.1.5-canary.4"
|
||||||
"@next/swc-win32-arm64-msvc" "12.1.5-canary.3"
|
"@next/swc-win32-arm64-msvc" "12.1.5-canary.4"
|
||||||
"@next/swc-win32-ia32-msvc" "12.1.5-canary.3"
|
"@next/swc-win32-ia32-msvc" "12.1.5-canary.4"
|
||||||
"@next/swc-win32-x64-msvc" "12.1.5-canary.3"
|
"@next/swc-win32-x64-msvc" "12.1.5-canary.4"
|
||||||
|
|
||||||
node-abort-controller@^3.0.1:
|
node-abort-controller@^3.0.1:
|
||||||
version "3.0.1"
|
version "3.0.1"
|
||||||
@ -6084,6 +6084,11 @@ uri-js@^4.2.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
punycode "^2.1.0"
|
punycode "^2.1.0"
|
||||||
|
|
||||||
|
url-join@^5.0.0:
|
||||||
|
version "5.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/url-join/-/url-join-5.0.0.tgz#c2f1e5cbd95fa91082a93b58a1f42fecb4bdbcf1"
|
||||||
|
integrity sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==
|
||||||
|
|
||||||
use-composed-ref@^1.0.0:
|
use-composed-ref@^1.0.0:
|
||||||
version "1.2.1"
|
version "1.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.2.1.tgz#9bdcb5ccd894289105da2325e1210079f56bf849"
|
resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.2.1.tgz#9bdcb5ccd894289105da2325e1210079f56bf849"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user