on master help sign in
Merge pull request #1744 from urbit/mp/og-cards
544ab20Gordon
components/BasicPage.js+1−1
@@ -22,7 +22,7 @@ export default function BasicPage({ post, markdown, search, index = false }) {
22 return (
22 return (
23 <Container>
23 <Container>
24 <Head>
24 <Head>
25− <title>Urbit • {post.title}</title>
25+ <title>{post.title}</title>
26 {Meta(post)}
26 {Meta(post)}
27 </Head>
27 </Head>
28 <IntraNav ourSite="https://urbit.org" search={search} />
28 <IntraNav ourSite="https://urbit.org" search={search} />
components/GrantProgramOverview.js+1−1
@@ -32,7 +32,7 @@ export default function GrantProgramOverview({
32 return (
32 return (
33 <Container>
33 <Container>
34 <Head>
34 <Head>
35− <title>{title} • Grants • urbit.org</title>
35+ <title>{title} • Grants</title>
36 {Meta(post)}
36 {Meta(post)}
37 </Head>
37 </Head>
38 <IntraNav ourSite="https://urbit.org" search={search} />
38 <IntraNav ourSite="https://urbit.org" search={search} />
components/Meta.js+8−6
@@ -1,21 +1,23 @@
1−export default function Meta(post, disableImage) {
1+export default function Meta(post, disableImage, large = false) {
2− const author = post?.extra?.author || "Urbit";
2+ const author = post?.extra?.author || "urbit.org";
3− const title = post?.title ? `${post.title} - ` : "";
3+ const title = post?.title ? post.title : "";
4 const description =
4 const description =
5 post?.description || "Urbit is a personal server built from scratch.";
5 post?.description || "Urbit is a personal server built from scratch.";
6 const image =
6 const image =
7+ post?.extra?.image ||
8+ post?.image ||
7− post?.extra?.image || post?.image || "https://media.urbit.org/logo/urbit-logo-card.png";
9+ "https://media.urbit.org/logo/urbit-logo-card.png";
8 return (
10 return (
9 <>
11 <>
10 <link rel="icon" type="image/png" href="/images/favicon.ico" />
12 <link rel="icon" type="image/png" href="/images/favicon.ico" />
11 <meta
13 <meta
12 name="twitter:card"
14 name="twitter:card"
13− content="summary_large_image"
15+ content={large ? "summary_large_image" : "summary"}
14 key="twitter-card"
16 key="twitter-card"
15 />
17 />
16 <meta name="twitter:site" content="@urbit" key="twitter-site" />
18 <meta name="twitter:site" content="@urbit" key="twitter-site" />
17 <meta name="twitter:creator" content="@urbit" key="twitter-creator" />
19 <meta name="twitter:creator" content="@urbit" key="twitter-creator" />
18− <meta name="og:title" content={`${title}urbit.org`} key="title" />
20+ <meta name="og:title" content={title} key="title" />
19 <meta name="og:description" content={description} key="description" />
21 <meta name="og:description" content={description} key="description" />
20 <meta name="description" content={description} />
22 <meta name="description" content={description} />
21 <meta name="author" content={author} key="author" />
23 <meta name="author" content={author} key="author" />
components/ecosystem/BasicPage.js+11−9
@@ -25,13 +25,17 @@ export default function BasicPage({
25 if (!router.isFallback && !post?.slug) {
25 if (!router.isFallback && !post?.slug) {
26 return <ErrorPage />;
26 return <ErrorPage />;
27 }
27 }
28+ const metaPost = Object.assign({}, post);
29+ metaPost.title = `${post.title} - ${section}`;
30+ metaPost.description =
31+ section === "Podcast" ? `${post.podcast} - ${post.date}` : post.description;
28 return (
32 return (
29 <Container>
33 <Container>
30 <Head>
34 <Head>
31 <title>
35 <title>
32− {post.title} • {section} • Urbit
36+ {post.title} • {section}
33 </title>
37 </title>
34− {Meta(post)}
38+ {Meta(metaPost)}
35 </Head>
39 </Head>
36 <IntraNav ourSite="https://urbit.org" search={search} />
40 <IntraNav ourSite="https://urbit.org" search={search} />
37 <SingleColumn>
41 <SingleColumn>
@@ -40,12 +44,10 @@ export default function BasicPage({
40 <div className="flex items-center space-x-4">
44 <div className="flex items-center space-x-4">
41 <img src={post.image} className="w-36" />
45 <img src={post.image} className="w-36" />
42 <div className="flex flex-col pl-2">
46 <div className="flex flex-col pl-2">
43− <h1
44− className={classnames({ "text-3xl": section === "Podcasts" })}
47+ <h1 className={classnames({ "text-3xl": section === "Podcast" })}>
45− >
46 {post.title}
48 {post.title}
47 </h1>
49 </h1>
48− <p>{section.slice(0, -1)}</p>
50+ <p>{section}</p>
49 </div>
51 </div>
50 </div>
52 </div>
51 {/* General purpose metadata bar -- podcast listen button is special-cased URL, flexed at the end of the row */}
53 {/* General purpose metadata bar -- podcast listen button is special-cased URL, flexed at the end of the row */}
@@ -63,7 +65,7 @@ export default function BasicPage({
63 <p className="shrink-0">{post.date}</p>
65 <p className="shrink-0">{post.date}</p>
64 </div>
66 </div>
65 )}
67 )}
66− {post?.URL && section !== "Podcasts" && (
68+ {post?.URL && section !== "Podcast" && (
67 <div className="flex flex-col">
69 <div className="flex flex-col">
68 <p className="font-bold text-wall-400">Website</p>
70 <p className="font-bold text-wall-400">Website</p>
69 <a
71 <a
@@ -74,7 +76,7 @@ export default function BasicPage({
74 </a>
76 </a>
75 </div>
77 </div>
76 )}
78 )}
77− {post?.URL && section === "Marketplaces" && (
79+ {post?.URL && section === "Urbit Marketplace" && (
78 <div className="flex flex-col">
80 <div className="flex flex-col">
79 <p className="font-bold text-wall-400">Accepts</p>
81 <p className="font-bold text-wall-400">Accepts</p>
80 <p className="text-sm font-semibold font-mono">
82 <p className="text-sm font-semibold font-mono">
@@ -83,7 +85,7 @@ export default function BasicPage({
83 </div>
85 </div>
84 )}
86 )}
85 </div>
87 </div>
86− {post?.URL && section === "Podcasts" && (
88+ {post?.URL && section === "Podcast" && (
87 <a
89 <a
88 href={post.URL}
90 href={post.URL}
89 className="button-lg bg-green-400 text-white cursor-pointer flex space-x-2"
91 className="button-lg bg-green-400 text-white cursor-pointer flex space-x-2"
content/marketplaces/azimuth-shop.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "Azimuth Shop"
2title = "Azimuth Shop"
3+description = "Azimuth.shop is a Layer 2 planet marketplace offering planets for sale at extremely competitive prices, accepting ETH for payment."
3image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/marketplaces/azimuthshop.png"
4image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/marketplaces/azimuthshop.png"
4URL = "https://azimuth.shop/"
5URL = "https://azimuth.shop/"
5payment = ["ETH"]
6payment = ["ETH"]
content/marketplaces/lanlyd.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "~lanlyd"
2title = "~lanlyd"
3+description = "~lanlyd is a star on the Urbit network."
3image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/marketplaces/lanlyd.png"
4image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/marketplaces/lanlyd.png"
4URL = "https://lanlyd.net"
5URL = "https://lanlyd.net"
5payment = ["USD"]
6payment = ["USD"]
content/marketplaces/mocbel-house.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "~mocbel house"
2title = "~mocbel house"
3+description = "~mocbel house is a layer 2 planet marketplace, accepting BTC, ETH, and ADA."
3image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/marketplaces/mocbelhouse.png"
4image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/marketplaces/mocbelhouse.png"
4URL = "https://mocbel.house/"
5URL = "https://mocbel.house/"
5payment = ["ETH","BTC","ADA"]
6payment = ["ETH","BTC","ADA"]
content/marketplaces/networked-subject.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "networked subject_"
2title = "networked subject_"
3+description = "Networked Subject is an independent, boutique Urbit star service, planet market and a collection of Urbit information and tutorials."
3image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/marketplaces/subject.network.png"
4image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/marketplaces/subject.network.png"
4URL = "https://subject.network/buy/"
5URL = "https://subject.network/buy/"
5payment = ["BTC"]
6payment = ["BTC"]
content/marketplaces/opensea.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "OpenSea"
2title = "OpenSea"
3+description = "Opensea is the world's largest market for NFTs."
3image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/opensea.png"
4image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/opensea.png"
4URL = "https://opensea.io/category/urbit-id"
5URL = "https://opensea.io/category/urbit-id"
5payment = ["ETH"]
6payment = ["ETH"]
content/marketplaces/planet-market.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "Planet Market"
2title = "Planet Market"
3+description = "The easiest way to get on Urbit."
3image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/marketplaces/planet.market.png"
4image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/marketplaces/planet.market.png"
4URL = "https://planet.market"
5URL = "https://planet.market"
5payment = ["USD"]
6payment = ["USD"]
content/marketplaces/urbit-live.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "Urbit.live"
2title = "Urbit.live"
3+description = "Urbit.live is Urbit’s largest planet exchange and first network explorer, selling Layer 1 planets and stars for ETH."
3image = "https://urbit.live/static/media/urbit-live-logo-png-400.6ec9a92b.png"
4image = "https://urbit.live/static/media/urbit-live-logo-png-400.6ec9a92b.png"
4URL = "https://urbit.live"
5URL = "https://urbit.live"
5payment = ["ETH"]
6payment = ["ETH"]
content/marketplaces/urbitex.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "Urbitex"
2title = "Urbitex"
3+description = "Urbitex is an automated marketplace and network explorer for Urbit address space."
3image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/marketplaces/urbitex-logo.png"
4image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/marketplaces/urbitex-logo.png"
4URL = "https://urbitex.io"
5URL = "https://urbitex.io"
5payment = ["ETH"]
6payment = ["ETH"]
content/marketplaces/urbitme.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "Urbit.me"
2title = "Urbit.me"
3+description = "Urbit.me offers planets with rare sigils."
3image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/marketplaces/urbitme.png"
4image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/marketplaces/urbitme.png"
4URL = "https://urbit.me"
5URL = "https://urbit.me"
5payment = ["ETH"]
6payment = ["ETH"]
content/marketplaces/wexpert-systems.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "Wexpert.systems"
2title = "Wexpert.systems"
3+description = "Wexpert Systems is an Urbit software and services company which offers full-service premium Urbit hosting on physical servers, with minimal dependence on Big Tech cloud services."
3image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/marketplaces/wexpertsystems.png"
4image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/marketplaces/wexpertsystems.png"
4URL = "https://wexpert.systems"
5URL = "https://wexpert.systems"
5payment = ["BTC"]
6payment = ["BTC"]
content/organizations/dalten.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "Dalten Collective"
2title = "Dalten Collective"
3+description = "Dalten is a distributed fellowship of like minded individuals."
3image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/dalten.jpg"
4image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/dalten.jpg"
4URL = "https://dalten.org"
5URL = "https://dalten.org"
5ships = ["~dalten", "~magped-magped-rabsef-bicrym", "~mirler-dozzod-talwet"]
6ships = ["~dalten", "~magped-magped-rabsef-bicrym", "~mirler-dozzod-talwet"]
content/organizations/holium.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "Holium"
2title = "Holium"
3+description = "Holium's mission is to enable the networked state."
3image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/holium.png"
4image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/holium.png"
4URL = "https://holium.com"
5URL = "https://holium.com"
5ships = ["~livdel-binmun-lomder-librun", "~lomder-librun"]
6ships = ["~livdel-binmun-lomder-librun", "~lomder-librun"]
content/organizations/mars-review-of-books.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "The Mars Review of Books"
2title = "The Mars Review of Books"
3+description = "The Mars Review of Books is a magazine in print and on Urbit which combines ruthlessly intelligent and fearless sense-making on subjects of global importance with today’s most stylish belletristic writing on contemporary arts and culture."
3image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/marsreview.jpg"
4image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/marsreview.jpg"
4URL = "https://store.marsreview.org"
5URL = "https://store.marsreview.org"
5ships = []
6ships = []
content/organizations/quartus.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "Quartus by Dalten"
2title = "Quartus by Dalten"
3+description = "We build software using the novel affordances of Urbit."
3image = "https://freedom-club.sfo2.digitaloceanspaces.com/ab_Quartus-03.jpg"
4image = "https://freedom-club.sfo2.digitaloceanspaces.com/ab_Quartus-03.jpg"
4URL = "https://www.quartus.co/"
5URL = "https://www.quartus.co/"
5ships = ["~mister-dozzod-dalten", "~laddys-dozzod-dalten", "~magped-magped-rabsef-bicrym", "~doller-doller-rabsef-bicrym"]
6ships = ["~mister-dozzod-dalten", "~laddys-dozzod-dalten", "~magped-magped-rabsef-bicrym", "~doller-doller-rabsef-bicrym"]
content/organizations/reciprocal.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "Reciprocal Ltd."
2title = "Reciprocal Ltd."
3+description = "Reciprocal Ltd. is an interactive design and development studio."
3image = "https://s3.us-east-1.amazonaws.com/haddefsigwen1/reciprocal/2022.5.20..19.52.50-B137D4AA-DA9E-4B07-98CE-C001C576C7CA_1_201_a.jpeg"
4image = "https://s3.us-east-1.amazonaws.com/haddefsigwen1/reciprocal/2022.5.20..19.52.50-B137D4AA-DA9E-4B07-98CE-C001C576C7CA_1_201_a.jpeg"
4URL = "https://reciprocal.ltd"
5URL = "https://reciprocal.ltd"
5ships = ["~sitden-sonnet", "~haddef-sigwen"]
6ships = ["~sitden-sonnet", "~haddef-sigwen"]
content/organizations/third-earth.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "Third.Earth"
2title = "Third.Earth"
3+description = "Third.Earth is an Urbit hosting and development company focused on bridging Web2 capabilities to the Urbit ecosystem."
3image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/thirdearth.png"
4image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/thirdearth.png"
4URL = "https://third.earth"
5URL = "https://third.earth"
5ships = ["~botwet"]
6ships = ["~botwet"]
content/organizations/tirrel.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "Tirrel Corporation"
2title = "Tirrel Corporation"
3+description = "Tirrel Corporation is an Urbit product studio."
3image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/Tirrel%20Corp%20Logo.png"
4image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/Tirrel%20Corp%20Logo.png"
4URL = "https://tirrel.io"
5URL = "https://tirrel.io"
5ships = ["~tirrel"]
6ships = ["~tirrel"]
content/organizations/tlon.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "Tlon"
2title = "Tlon"
3+description = "The first developer of Urbit. Their work continues to maintain core infrastructure development in addition to designing products for communities on the network."
3image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/tlon.png"
4image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/tlon.png"
4URL = "https://tlon.io"
5URL = "https://tlon.io"
5ships = ["~mister-dister-dozzod-dozzod", "~lander-dister-dozzod-dozzod"]
6ships = ["~mister-dister-dozzod-dozzod", "~lander-dister-dozzod-dozzod"]
content/organizations/uqbar.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "Uqbar"
2title = "Uqbar"
3+description = "Uqbar is a one-stop coding environment that makes writing and deploying smart contracts simple, efficient, and secure."
3image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/uqbar.png"
4image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/uqbar.png"
4URL = "https://uqbar.network"
5URL = "https://uqbar.network"
5ships = ["~dister-fabnev-hinmur", "~hocwyn-tipwex"]
6ships = ["~dister-fabnev-hinmur", "~hocwyn-tipwex"]
content/organizations/urbit-foundation.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "Urbit Foundation"
2title = "Urbit Foundation"
3+description = "Urbit Foundation is a non-profit organization whose mission is to ensure Urbit's success as a technology."
3image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/urbit-foundation.png"
4image = "https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/urbit-foundation.png"
4URL = "https://urbit.org"
5URL = "https://urbit.org"
5ships = ["~lapdeg"]
6ships = ["~lapdeg"]
content/overview/_index.md+1
@@ -1,5 +1,6 @@
1+++
1+++
2title = "Introduction"
2title = "Introduction"
3+description = "We think the internet can’t be saved."
3sort_by = "weight"
4sort_by = "weight"
4+++
5+++
5
6
package-lock.json+876−22
@@ -16,6 +16,7 @@
16 "@urbit/markdoc": "^0.1.4",
16 "@urbit/markdoc": "^0.1.4",
17 "axios": "^0.26.1",
17 "axios": "^0.26.1",
18 "buffer": "^6.0.3",
18 "buffer": "^6.0.3",
19+ "canvas": "^2.9.3",
19 "classnames": "^2.3.1",
20 "classnames": "^2.3.1",
20 "deepmerge": "^4.2.2",
21 "deepmerge": "^4.2.2",
21 "downshift": "^6.1.5",
22 "downshift": "^6.1.5",
@@ -62,6 +63,25 @@
62 "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
63 "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
63 "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg=="
64 "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg=="
64 },
65 },
66+ "node_modules/@mapbox/node-pre-gyp": {
67+ "version": "1.0.9",
68+ "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz",
69+ "integrity": "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==",
70+ "dependencies": {
71+ "detect-libc": "^2.0.0",
72+ "https-proxy-agent": "^5.0.0",
73+ "make-dir": "^3.1.0",
74+ "node-fetch": "^2.6.7",
75+ "nopt": "^5.0.0",
76+ "npmlog": "^5.0.1",
77+ "rimraf": "^3.0.2",
78+ "semver": "^7.3.5",
79+ "tar": "^6.1.11"
80+ },
81+ "bin": {
82+ "node-pre-gyp": "bin/node-pre-gyp"
83+ }
84+ },
65 "node_modules/@next/env": {
85 "node_modules/@next/env": {
66 "version": "12.2.4",
86 "version": "12.2.4",
67 "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.4.tgz",
87 "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.4.tgz",
@@ -368,6 +388,11 @@
368 "node": ">=14.7.0"
388 "node": ">=14.7.0"
369 }
389 }
370 },
390 },
391+ "node_modules/abbrev": {
392+ "version": "1.1.1",
393+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
394+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
395+ },
371 "node_modules/acorn": {
396 "node_modules/acorn": {
372 "version": "7.4.1",
397 "version": "7.4.1",
373 "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
398 "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
@@ -397,6 +422,25 @@
397 "node": ">=0.4.0"
422 "node": ">=0.4.0"
398 }
423 }
399 },
424 },
425+ "node_modules/agent-base": {
426+ "version": "6.0.2",
427+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
428+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
429+ "dependencies": {
430+ "debug": "4"
431+ },
432+ "engines": {
433+ "node": ">= 6.0.0"
434+ }
435+ },
436+ "node_modules/ansi-regex": {
437+ "version": "5.0.1",
438+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
439+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
440+ "engines": {
441+ "node": ">=8"
442+ }
443+ },
400 "node_modules/ansi-styles": {
444 "node_modules/ansi-styles": {
401 "version": "4.3.0",
445 "version": "4.3.0",
402 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
446 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -424,6 +468,23 @@
424 "node": ">= 8"
468 "node": ">= 8"
425 }
469 }
426 },
470 },
471+ "node_modules/aproba": {
472+ "version": "2.0.0",
473+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
474+ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="
475+ },
476+ "node_modules/are-we-there-yet": {
477+ "version": "2.0.0",
478+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
479+ "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
480+ "dependencies": {
481+ "delegates": "^1.0.0",
482+ "readable-stream": "^3.6.0"
483+ },
484+ "engines": {
485+ "node": ">=10"
486+ }
487+ },
427 "node_modules/arg": {
488 "node_modules/arg": {
428 "version": "5.0.2",
489 "version": "5.0.2",
429 "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
490 "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
@@ -507,8 +568,7 @@
507 "node_modules/balanced-match": {
568 "node_modules/balanced-match": {
508 "version": "1.0.2",
569 "version": "1.0.2",
509 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
570 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
510− "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
571+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
511− "dev": true
512 },
572 },
513 "node_modules/base64-js": {
573 "node_modules/base64-js": {
514 "version": "1.5.1",
574 "version": "1.5.1",
@@ -546,7 +606,6 @@
546 "version": "1.1.11",
606 "version": "1.1.11",
547 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
607 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
548 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
608 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
549− "dev": true,
550 "dependencies": {
609 "dependencies": {
551 "balanced-match": "^1.0.0",
610 "balanced-match": "^1.0.0",
552 "concat-map": "0.0.1"
611 "concat-map": "0.0.1"
@@ -636,6 +695,20 @@
636 }
695 }
637 ]
696 ]
638 },
697 },
698+ "node_modules/canvas": {
699+ "version": "2.9.3",
700+ "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.9.3.tgz",
701+ "integrity": "sha512-WOUM7ghii5TV2rbhaZkh1youv/vW1/Canev6Yx6BG2W+1S07w8jKZqKkPnbiPpQEDsnJdN8ouDd7OvQEGXDcUw==",
702+ "hasInstallScript": true,
703+ "dependencies": {
704+ "@mapbox/node-pre-gyp": "^1.0.0",
705+ "nan": "^2.15.0",
706+ "simple-get": "^3.0.3"
707+ },
708+ "engines": {
709+ "node": ">=6"
710+ }
711+ },
639 "node_modules/chalk": {
712 "node_modules/chalk": {
640 "version": "3.0.0",
713 "version": "3.0.0",
641 "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
714 "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
@@ -686,6 +759,14 @@
686 "node": ">= 6"
759 "node": ">= 6"
687 }
760 }
688 },
761 },
762+ "node_modules/chownr": {
763+ "version": "2.0.0",
764+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
765+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
766+ "engines": {
767+ "node": ">=10"
768+ }
769+ },
689 "node_modules/classnames": {
770 "node_modules/classnames": {
690 "version": "2.3.1",
771 "version": "2.3.1",
691 "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
772 "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
@@ -728,6 +809,14 @@
728 "simple-swizzle": "^0.2.2"
809 "simple-swizzle": "^0.2.2"
729 }
810 }
730 },
811 },
812+ "node_modules/color-support": {
813+ "version": "1.1.3",
814+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
815+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
816+ "bin": {
817+ "color-support": "bin.js"
818+ }
819+ },
731 "node_modules/compute-scroll-into-view": {
820 "node_modules/compute-scroll-into-view": {
732 "version": "1.0.17",
821 "version": "1.0.17",
733 "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz",
822 "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz",
@@ -736,8 +825,12 @@
736 "node_modules/concat-map": {
825 "node_modules/concat-map": {
737 "version": "0.0.1",
826 "version": "0.0.1",
738 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
827 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
739− "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
828+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
740− "dev": true
829+ },
830+ "node_modules/console-control-strings": {
831+ "version": "1.1.0",
832+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
833+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
741 },
834 },
742 "node_modules/core-js": {
835 "node_modules/core-js": {
743 "version": "3.24.1",
836 "version": "3.24.1",
@@ -774,6 +867,33 @@
774 "node": ">=4"
867 "node": ">=4"
775 }
868 }
776 },
869 },
870+ "node_modules/debug": {
871+ "version": "4.3.4",
872+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
873+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
874+ "dependencies": {
875+ "ms": "2.1.2"
876+ },
877+ "engines": {
878+ "node": ">=6.0"
879+ },
880+ "peerDependenciesMeta": {
881+ "supports-color": {
882+ "optional": true
883+ }
884+ }
885+ },
886+ "node_modules/decompress-response": {
887+ "version": "4.2.1",
888+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
889+ "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
890+ "dependencies": {
891+ "mimic-response": "^2.0.0"
892+ },
893+ "engines": {
894+ "node": ">=8"
895+ }
896+ },
777 "node_modules/deep-rename-keys": {
897 "node_modules/deep-rename-keys": {
778 "version": "0.2.1",
898 "version": "0.2.1",
779 "resolved": "https://registry.npmjs.org/deep-rename-keys/-/deep-rename-keys-0.2.1.tgz",
899 "resolved": "https://registry.npmjs.org/deep-rename-keys/-/deep-rename-keys-0.2.1.tgz",
@@ -810,6 +930,19 @@
810 "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
930 "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
811 "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ=="
931 "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ=="
812 },
932 },
933+ "node_modules/delegates": {
934+ "version": "1.0.0",
935+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
936+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
937+ },
938+ "node_modules/detect-libc": {
939+ "version": "2.0.1",
940+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
941+ "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==",
942+ "engines": {
943+ "node": ">=8"
944+ }
945+ },
813 "node_modules/detective": {
946 "node_modules/detective": {
814 "version": "5.2.1",
947 "version": "5.2.1",
815 "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
948 "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
@@ -915,6 +1048,11 @@
915 "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.211.tgz",
1048 "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.211.tgz",
916 "integrity": "sha512-BZSbMpyFQU0KBJ1JG26XGeFI3i4op+qOYGxftmZXFZoHkhLgsSv4DHDJfl8ogII3hIuzGt51PaZ195OVu0yJ9A=="
1049 "integrity": "sha512-BZSbMpyFQU0KBJ1JG26XGeFI3i4op+qOYGxftmZXFZoHkhLgsSv4DHDJfl8ogII3hIuzGt51PaZ195OVu0yJ9A=="
917 },
1050 },
1051+ "node_modules/emoji-regex": {
1052+ "version": "8.0.0",
1053+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1054+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
1055+ },
918 "node_modules/end-of-stream": {
1056 "node_modules/end-of-stream": {
919 "version": "1.4.4",
1057 "version": "1.4.4",
920 "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
1058 "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
@@ -1094,6 +1232,22 @@
1094 "url": "https://www.patreon.com/infusion"
1232 "url": "https://www.patreon.com/infusion"
1095 }
1233 }
1096 },
1234 },
1235+ "node_modules/fs-minipass": {
1236+ "version": "2.1.0",
1237+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
1238+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
1239+ "dependencies": {
1240+ "minipass": "^3.0.0"
1241+ },
1242+ "engines": {
1243+ "node": ">= 8"
1244+ }
1245+ },
1246+ "node_modules/fs.realpath": {
1247+ "version": "1.0.0",
1248+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1249+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
1250+ },
1097 "node_modules/fsevents": {
1251 "node_modules/fsevents": {
1098 "version": "2.3.2",
1252 "version": "2.3.2",
1099 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
1253 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
@@ -1112,6 +1266,25 @@
1112 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1266 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1113 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
1267 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
1114 },
1268 },
1269+ "node_modules/gauge": {
1270+ "version": "3.0.2",
1271+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
1272+ "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
1273+ "dependencies": {
1274+ "aproba": "^1.0.3 || ^2.0.0",
1275+ "color-support": "^1.1.2",
1276+ "console-control-strings": "^1.0.0",
1277+ "has-unicode": "^2.0.1",
1278+ "object-assign": "^4.1.1",
1279+ "signal-exit": "^3.0.0",
1280+ "string-width": "^4.2.3",
1281+ "strip-ansi": "^6.0.1",
1282+ "wide-align": "^1.1.2"
1283+ },
1284+ "engines": {
1285+ "node": ">=10"
1286+ }
1287+ },
1115 "node_modules/get-stream": {
1288 "node_modules/get-stream": {
1116 "version": "5.2.0",
1289 "version": "5.2.0",
1117 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
1290 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
@@ -1135,6 +1308,25 @@
1135 "node": ">=0.10.0"
1308 "node": ">=0.10.0"
1136 }
1309 }
1137 },
1310 },
1311+ "node_modules/glob": {
1312+ "version": "7.2.3",
1313+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
1314+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
1315+ "dependencies": {
1316+ "fs.realpath": "^1.0.0",
1317+ "inflight": "^1.0.4",
1318+ "inherits": "2",
1319+ "minimatch": "^3.1.1",
1320+ "once": "^1.3.0",
1321+ "path-is-absolute": "^1.0.0"
1322+ },
1323+ "engines": {
1324+ "node": "*"
1325+ },
1326+ "funding": {
1327+ "url": "https://github.com/sponsors/isaacs"
1328+ }
1329+ },
1138 "node_modules/glob-parent": {
1330 "node_modules/glob-parent": {
1139 "version": "6.0.2",
1331 "version": "6.0.2",
1140 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
1332 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
@@ -1180,6 +1372,11 @@
1180 "node": ">=8"
1372 "node": ">=8"
1181 }
1373 }
1182 },
1374 },
1375+ "node_modules/has-unicode": {
1376+ "version": "2.0.1",
1377+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
1378+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
1379+ },
1183 "node_modules/has-value": {
1380 "node_modules/has-value": {
1184 "version": "0.3.1",
1381 "version": "0.3.1",
1185 "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
1382 "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
@@ -1253,6 +1450,18 @@
1253 "entities": "^3.0.1"
1450 "entities": "^3.0.1"
1254 }
1451 }
1255 },
1452 },
1453+ "node_modules/https-proxy-agent": {
1454+ "version": "5.0.1",
1455+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
1456+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
1457+ "dependencies": {
1458+ "agent-base": "6",
1459+ "debug": "4"
1460+ },
1461+ "engines": {
1462+ "node": ">= 6"
1463+ }
1464+ },
1256 "node_modules/human-signals": {
1465 "node_modules/human-signals": {
1257 "version": "1.1.1",
1466 "version": "1.1.1",
1258 "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
1467 "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
@@ -1290,6 +1499,15 @@
1290 "node": ">= 4"
1499 "node": ">= 4"
1291 }
1500 }
1292 },
1501 },
1502+ "node_modules/inflight": {
1503+ "version": "1.0.6",
1504+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1505+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
1506+ "dependencies": {
1507+ "once": "^1.3.0",
1508+ "wrappy": "1"
1509+ }
1510+ },
1293 "node_modules/inherits": {
1511 "node_modules/inherits": {
1294 "version": "2.0.4",
1512 "version": "2.0.4",
1295 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1513 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
@@ -1356,6 +1574,14 @@
1356 "node": ">=0.10.0"
1574 "node": ">=0.10.0"
1357 }
1575 }
1358 },
1576 },
1577+ "node_modules/is-fullwidth-code-point": {
1578+ "version": "3.0.0",
1579+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1580+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1581+ "engines": {
1582+ "node": ">=8"
1583+ }
1584+ },
1359 "node_modules/is-glob": {
1585 "node_modules/is-glob": {
1360 "version": "4.0.3",
1586 "version": "4.0.3",
1361 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
1587 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
@@ -1509,6 +1735,17 @@
1509 "loose-envify": "cli.js"
1735 "loose-envify": "cli.js"
1510 }
1736 }
1511 },
1737 },
1738+ "node_modules/lru-cache": {
1739+ "version": "6.0.0",
1740+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
1741+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1742+ "dependencies": {
1743+ "yallist": "^4.0.0"
1744+ },
1745+ "engines": {
1746+ "node": ">=10"
1747+ }
1748+ },
1512 "node_modules/luxon": {
1749 "node_modules/luxon": {
1513 "version": "2.5.0",
1750 "version": "2.5.0",
1514 "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.5.0.tgz",
1751 "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.5.0.tgz",
@@ -1517,6 +1754,28 @@
1517 "node": ">=12"
1754 "node": ">=12"
1518 }
1755 }
1519 },
1756 },
1757+ "node_modules/make-dir": {
1758+ "version": "3.1.0",
1759+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
1760+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
1761+ "dependencies": {
1762+ "semver": "^6.0.0"
1763+ },
1764+ "engines": {
1765+ "node": ">=8"
1766+ },
1767+ "funding": {
1768+ "url": "https://github.com/sponsors/sindresorhus"
1769+ }
1770+ },
1771+ "node_modules/make-dir/node_modules/semver": {
1772+ "version": "6.3.0",
1773+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1774+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1775+ "bin": {
1776+ "semver": "bin/semver.js"
1777+ }
1778+ },
1520 "node_modules/merge-stream": {
1779 "node_modules/merge-stream": {
1521 "version": "2.0.0",
1780 "version": "2.0.0",
1522 "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
1781 "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@@ -1552,11 +1811,21 @@
1552 "node": ">=6"
1811 "node": ">=6"
1553 }
1812 }
1554 },
1813 },
1814+ "node_modules/mimic-response": {
1815+ "version": "2.1.0",
1816+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
1817+ "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==",
1818+ "engines": {
1819+ "node": ">=8"
1820+ },
1821+ "funding": {
1822+ "url": "https://github.com/sponsors/sindresorhus"
1823+ }
1824+ },
1555 "node_modules/minimatch": {
1825 "node_modules/minimatch": {
1556 "version": "3.1.2",
1826 "version": "3.1.2",
1557 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1827 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1558 "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1828 "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1559− "dev": true,
1560 "dependencies": {
1829 "dependencies": {
1561 "brace-expansion": "^1.1.7"
1830 "brace-expansion": "^1.1.7"
1562 },
1831 },
@@ -1569,6 +1838,40 @@
1569 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
1838 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
1570 "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
1839 "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
1571 },
1840 },
1841+ "node_modules/minipass": {
1842+ "version": "3.3.4",
1843+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz",
1844+ "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==",
1845+ "dependencies": {
1846+ "yallist": "^4.0.0"
1847+ },
1848+ "engines": {
1849+ "node": ">=8"
1850+ }
1851+ },
1852+ "node_modules/minizlib": {
1853+ "version": "2.1.2",
1854+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
1855+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
1856+ "dependencies": {
1857+ "minipass": "^3.0.0",
1858+ "yallist": "^4.0.0"
1859+ },
1860+ "engines": {
1861+ "node": ">= 8"
1862+ }
1863+ },
1864+ "node_modules/mkdirp": {
1865+ "version": "1.0.4",
1866+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
1867+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
1868+ "bin": {
1869+ "mkdirp": "bin/cmd.js"
1870+ },
1871+ "engines": {
1872+ "node": ">=10"
1873+ }
1874+ },
1572 "node_modules/mri": {
1875 "node_modules/mri": {
1573 "version": "1.2.0",
1876 "version": "1.2.0",
1574 "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
1877 "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
@@ -1578,6 +1881,11 @@
1578 "node": ">=4"
1881 "node": ">=4"
1579 }
1882 }
1580 },
1883 },
1884+ "node_modules/ms": {
1885+ "version": "2.1.2",
1886+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1887+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1888+ },
1581 "node_modules/multimatch": {
1889 "node_modules/multimatch": {
1582 "version": "4.0.0",
1890 "version": "4.0.0",
1583 "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz",
1891 "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz",
@@ -1594,6 +1902,11 @@
1594 "node": ">=8"
1902 "node": ">=8"
1595 }
1903 }
1596 },
1904 },
1905+ "node_modules/nan": {
1906+ "version": "2.16.0",
1907+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz",
1908+ "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA=="
1909+ },
1597 "node_modules/nanoid": {
1910 "node_modules/nanoid": {
1598 "version": "3.3.4",
1911 "version": "3.3.4",
1599 "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
1912 "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
@@ -1657,11 +1970,44 @@
1657 }
1970 }
1658 }
1971 }
1659 },
1972 },
1973+ "node_modules/node-fetch": {
1974+ "version": "2.6.7",
1975+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
1976+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
1977+ "dependencies": {
1978+ "whatwg-url": "^5.0.0"
1979+ },
1980+ "engines": {
1981+ "node": "4.x || >=6.0.0"
1982+ },
1983+ "peerDependencies": {
1984+ "encoding": "^0.1.0"
1985+ },
1986+ "peerDependenciesMeta": {
1987+ "encoding": {
1988+ "optional": true
1989+ }
1990+ }
1991+ },
1660 "node_modules/node-releases": {
1992 "node_modules/node-releases": {
1661 "version": "2.0.6",
1993 "version": "2.0.6",
1662 "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
1994 "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
1663 "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg=="
1995 "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg=="
1664 },
1996 },
1997+ "node_modules/nopt": {
1998+ "version": "5.0.0",
1999+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
2000+ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
2001+ "dependencies": {
2002+ "abbrev": "1"
2003+ },
2004+ "bin": {
2005+ "nopt": "bin/nopt.js"
2006+ },
2007+ "engines": {
2008+ "node": ">=6"
2009+ }
2010+ },
1665 "node_modules/normalize-path": {
2011 "node_modules/normalize-path": {
1666 "version": "3.0.0",
2012 "version": "3.0.0",
1667 "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
2013 "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
@@ -1690,6 +2036,17 @@
1690 "node": ">=8"
2036 "node": ">=8"
1691 }
2037 }
1692 },
2038 },
2039+ "node_modules/npmlog": {
2040+ "version": "5.0.1",
2041+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
2042+ "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
2043+ "dependencies": {
2044+ "are-we-there-yet": "^2.0.0",
2045+ "console-control-strings": "^1.1.0",
2046+ "gauge": "^3.0.0",
2047+ "set-blocking": "^2.0.0"
2048+ }
2049+ },
1693 "node_modules/object-assign": {
2050 "node_modules/object-assign": {
1694 "version": "4.1.1",
2051 "version": "4.1.1",
1695 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
2052 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -1722,7 +2079,6 @@
1722 "version": "1.4.0",
2079 "version": "1.4.0",
1723 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2080 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1724 "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
2081 "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1725− "dev": true,
1726 "dependencies": {
2082 "dependencies": {
1727 "wrappy": "1"
2083 "wrappy": "1"
1728 }
2084 }
@@ -1792,6 +2148,14 @@
1792 "node": ">=8"
2148 "node": ">=8"
1793 }
2149 }
1794 },
2150 },
2151+ "node_modules/path-is-absolute": {
2152+ "version": "1.0.1",
2153+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2154+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
2155+ "engines": {
2156+ "node": ">=0.10.0"
2157+ }
2158+ },
1795 "node_modules/path-key": {
2159 "node_modules/path-key": {
1796 "version": "3.1.1",
2160 "version": "3.1.1",
1797 "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
2161 "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
@@ -2199,6 +2563,20 @@
2199 "node": ">=0.10.0"
2563 "node": ">=0.10.0"
2200 }
2564 }
2201 },
2565 },
2566+ "node_modules/rimraf": {
2567+ "version": "3.0.2",
2568+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
2569+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
2570+ "dependencies": {
2571+ "glob": "^7.1.3"
2572+ },
2573+ "bin": {
2574+ "rimraf": "bin.js"
2575+ },
2576+ "funding": {
2577+ "url": "https://github.com/sponsors/isaacs"
2578+ }
2579+ },
2202 "node_modules/run-parallel": {
2580 "node_modules/run-parallel": {
2203 "version": "1.2.0",
2581 "version": "1.2.0",
2204 "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
2582 "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -2266,6 +2644,25 @@
2266 "node": ">=4"
2644 "node": ">=4"
2267 }
2645 }
2268 },
2646 },
2647+ "node_modules/semver": {
2648+ "version": "7.3.7",
2649+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
2650+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
2651+ "dependencies": {
2652+ "lru-cache": "^6.0.0"
2653+ },
2654+ "bin": {
2655+ "semver": "bin/semver.js"
2656+ },
2657+ "engines": {
2658+ "node": ">=10"
2659+ }
2660+ },
2661+ "node_modules/set-blocking": {
2662+ "version": "2.0.0",
2663+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
2664+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
2665+ },
2269 "node_modules/shebang-command": {
2666 "node_modules/shebang-command": {
2270 "version": "2.0.0",
2667 "version": "2.0.0",
2271 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
2668 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -2290,8 +2687,36 @@
2290 "node_modules/signal-exit": {
2687 "node_modules/signal-exit": {
2291 "version": "3.0.7",
2688 "version": "3.0.7",
2292 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
2689 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
2293− "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
2690+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
2294− "dev": true
2691+ },
2692+ "node_modules/simple-concat": {
2693+ "version": "1.0.1",
2694+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
2695+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
2696+ "funding": [
2697+ {
2698+ "type": "github",
2699+ "url": "https://github.com/sponsors/feross"
2700+ },
2701+ {
2702+ "type": "patreon",
2703+ "url": "https://www.patreon.com/feross"
2704+ },
2705+ {
2706+ "type": "consulting",
2707+ "url": "https://feross.org/support"
2708+ }
2709+ ]
2710+ },
2711+ "node_modules/simple-get": {
2712+ "version": "3.1.1",
2713+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz",
2714+ "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==",
2715+ "dependencies": {
2716+ "decompress-response": "^4.2.0",
2717+ "once": "^1.3.1",
2718+ "simple-concat": "^1.0.0"
2719+ }
2295 },
2720 },
2296 "node_modules/simple-swizzle": {
2721 "node_modules/simple-swizzle": {
2297 "version": "0.2.2",
2722 "version": "0.2.2",
@@ -2331,6 +2756,30 @@
2331 "safe-buffer": "~5.2.0"
2756 "safe-buffer": "~5.2.0"
2332 }
2757 }
2333 },
2758 },
2759+ "node_modules/string-width": {
2760+ "version": "4.2.3",
2761+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2762+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2763+ "dependencies": {
2764+ "emoji-regex": "^8.0.0",
2765+ "is-fullwidth-code-point": "^3.0.0",
2766+ "strip-ansi": "^6.0.1"
2767+ },
2768+ "engines": {
2769+ "node": ">=8"
2770+ }
2771+ },
2772+ "node_modules/strip-ansi": {
2773+ "version": "6.0.1",
2774+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2775+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2776+ "dependencies": {
2777+ "ansi-regex": "^5.0.1"
2778+ },
2779+ "engines": {
2780+ "node": ">=8"
2781+ }
2782+ },
2334 "node_modules/strip-bom-string": {
2783 "node_modules/strip-bom-string": {
2335 "version": "1.0.0",
2784 "version": "1.0.0",
2336 "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
2785 "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
@@ -2465,6 +2914,22 @@
2465 "tailwindcss": "^3.0.23"
2914 "tailwindcss": "^3.0.23"
2466 }
2915 }
2467 },
2916 },
2917+ "node_modules/tar": {
2918+ "version": "6.1.11",
2919+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
2920+ "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
2921+ "dependencies": {
2922+ "chownr": "^2.0.0",
2923+ "fs-minipass": "^2.0.0",
2924+ "minipass": "^3.0.0",
2925+ "minizlib": "^2.1.1",
2926+ "mkdirp": "^1.0.3",
2927+ "yallist": "^4.0.0"
2928+ },
2929+ "engines": {
2930+ "node": ">= 10"
2931+ }
2932+ },
2468 "node_modules/to-regex-range": {
2933 "node_modules/to-regex-range": {
2469 "version": "5.0.1",
2934 "version": "5.0.1",
2470 "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
2935 "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -2476,6 +2941,11 @@
2476 "node": ">=8.0"
2941 "node": ">=8.0"
2477 }
2942 }
2478 },
2943 },
2944+ "node_modules/tr46": {
2945+ "version": "0.0.3",
2946+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
2947+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
2948+ },
2479 "node_modules/transformation-matrix": {
2949 "node_modules/transformation-matrix": {
2480 "version": "2.1.1",
2950 "version": "2.1.1",
2481 "resolved": "https://registry.npmjs.org/transformation-matrix/-/transformation-matrix-2.1.1.tgz",
2951 "resolved": "https://registry.npmjs.org/transformation-matrix/-/transformation-matrix-2.1.1.tgz",
@@ -2546,6 +3016,20 @@
2546 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3016 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2547 "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
3017 "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
2548 },
3018 },
3019+ "node_modules/webidl-conversions": {
3020+ "version": "3.0.1",
3021+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
3022+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
3023+ },
3024+ "node_modules/whatwg-url": {
3025+ "version": "5.0.0",
3026+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
3027+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
3028+ "dependencies": {
3029+ "tr46": "~0.0.3",
3030+ "webidl-conversions": "^3.0.0"
3031+ }
3032+ },
2549 "node_modules/which": {
3033 "node_modules/which": {
2550 "version": "2.0.2",
3034 "version": "2.0.2",
2551 "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
3035 "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -2561,11 +3045,18 @@
2561 "node": ">= 8"
3045 "node": ">= 8"
2562 }
3046 }
2563 },
3047 },
3048+ "node_modules/wide-align": {
3049+ "version": "1.1.5",
3050+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
3051+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
3052+ "dependencies": {
3053+ "string-width": "^1.0.2 || 2 || 3 || 4"
3054+ }
3055+ },
2564 "node_modules/wrappy": {
3056 "node_modules/wrappy": {
2565 "version": "1.0.2",
3057 "version": "1.0.2",
2566 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3058 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2567− "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
3059+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
2568− "dev": true
2569 },
3060 },
2570 "node_modules/xml-js": {
3061 "node_modules/xml-js": {
2571 "version": "1.6.11",
3062 "version": "1.6.11",
@@ -2603,6 +3094,11 @@
2603 "node": ">=0.4"
3094 "node": ">=0.4"
2604 }
3095 }
2605 },
3096 },
3097+ "node_modules/yallist": {
3098+ "version": "4.0.0",
3099+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
3100+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
3101+ },
2606 "node_modules/yaml": {
3102 "node_modules/yaml": {
2607 "version": "1.10.2",
3103 "version": "1.10.2",
2608 "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
3104 "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
@@ -2626,6 +3122,22 @@
2626 "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
3122 "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
2627 "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg=="
3123 "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg=="
2628 },
3124 },
3125+ "@mapbox/node-pre-gyp": {
3126+ "version": "1.0.9",
3127+ "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz",
3128+ "integrity": "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==",
3129+ "requires": {
3130+ "detect-libc": "^2.0.0",
3131+ "https-proxy-agent": "^5.0.0",
3132+ "make-dir": "^3.1.0",
3133+ "node-fetch": "^2.6.7",
3134+ "nopt": "^5.0.0",
3135+ "npmlog": "^5.0.1",
3136+ "rimraf": "^3.0.2",
3137+ "semver": "^7.3.5",
3138+ "tar": "^6.1.11"
3139+ }
3140+ },
2629 "@next/env": {
3141 "@next/env": {
2630 "version": "12.2.4",
3142 "version": "12.2.4",
2631 "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.4.tgz",
3143 "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.4.tgz",
@@ -2783,6 +3295,11 @@
2783 "resolved": "https://registry.npmjs.org/@urbit/markdoc/-/markdoc-0.1.6.tgz",
3295 "resolved": "https://registry.npmjs.org/@urbit/markdoc/-/markdoc-0.1.6.tgz",
2784 "integrity": "sha512-ocFGlhmleGkX53+kYLzN4UYjyndppEqHKIG2XVKZNkHsLvAeZRy0o13qCE9dfmZli/vSw11cUinOpxuXOBYxSQ=="
3296 "integrity": "sha512-ocFGlhmleGkX53+kYLzN4UYjyndppEqHKIG2XVKZNkHsLvAeZRy0o13qCE9dfmZli/vSw11cUinOpxuXOBYxSQ=="
2785 },
3297 },
3298+ "abbrev": {
3299+ "version": "1.1.1",
3300+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
3301+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
3302+ },
2786 "acorn": {
3303 "acorn": {
2787 "version": "7.4.1",
3304 "version": "7.4.1",
2788 "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
3305 "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
@@ -2803,6 +3320,19 @@
2803 "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
3320 "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
2804 "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA=="
3321 "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA=="
2805 },
3322 },
3323+ "agent-base": {
3324+ "version": "6.0.2",
3325+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
3326+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
3327+ "requires": {
3328+ "debug": "4"
3329+ }
3330+ },
3331+ "ansi-regex": {
3332+ "version": "5.0.1",
3333+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
3334+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
3335+ },
2806 "ansi-styles": {
3336 "ansi-styles": {
2807 "version": "4.3.0",
3337 "version": "4.3.0",
2808 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3338 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -2821,6 +3351,20 @@
2821 "picomatch": "^2.0.4"
3351 "picomatch": "^2.0.4"
2822 }
3352 }
2823 },
3353 },
3354+ "aproba": {
3355+ "version": "2.0.0",
3356+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
3357+ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="
3358+ },
3359+ "are-we-there-yet": {
3360+ "version": "2.0.0",
3361+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
3362+ "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
3363+ "requires": {
3364+ "delegates": "^1.0.0",
3365+ "readable-stream": "^3.6.0"
3366+ }
3367+ },
2824 "arg": {
3368 "arg": {
2825 "version": "5.0.2",
3369 "version": "5.0.2",
2826 "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
3370 "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
@@ -2876,8 +3420,7 @@
2876 "balanced-match": {
3420 "balanced-match": {
2877 "version": "1.0.2",
3421 "version": "1.0.2",
2878 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
3422 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
2879− "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
3423+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
2880− "dev": true
2881 },
3424 },
2882 "base64-js": {
3425 "base64-js": {
2883 "version": "1.5.1",
3426 "version": "1.5.1",
@@ -2898,7 +3441,6 @@
2898 "version": "1.1.11",
3441 "version": "1.1.11",
2899 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
3442 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
2900 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
3443 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
2901− "dev": true,
2902 "requires": {
3444 "requires": {
2903 "balanced-match": "^1.0.0",
3445 "balanced-match": "^1.0.0",
2904 "concat-map": "0.0.1"
3446 "concat-map": "0.0.1"
@@ -2942,6 +3484,16 @@
2942 "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001374.tgz",
3484 "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001374.tgz",
2943 "integrity": "sha512-mWvzatRx3w+j5wx/mpFN5v5twlPrabG8NqX2c6e45LCpymdoGqNvRkRutFUqpRTXKFQFNQJasvK0YT7suW6/Hw=="
3485 "integrity": "sha512-mWvzatRx3w+j5wx/mpFN5v5twlPrabG8NqX2c6e45LCpymdoGqNvRkRutFUqpRTXKFQFNQJasvK0YT7suW6/Hw=="
2944 },
3486 },
3487+ "canvas": {
3488+ "version": "2.9.3",
3489+ "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.9.3.tgz",
3490+ "integrity": "sha512-WOUM7ghii5TV2rbhaZkh1youv/vW1/Canev6Yx6BG2W+1S07w8jKZqKkPnbiPpQEDsnJdN8ouDd7OvQEGXDcUw==",
3491+ "requires": {
3492+ "@mapbox/node-pre-gyp": "^1.0.0",
3493+ "nan": "^2.15.0",
3494+ "simple-get": "^3.0.3"
3495+ }
3496+ },
2945 "chalk": {
3497 "chalk": {
2946 "version": "3.0.0",
3498 "version": "3.0.0",
2947 "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
3499 "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
@@ -2977,6 +3529,11 @@
2977 }
3529 }
2978 }
3530 }
2979 },
3531 },
3532+ "chownr": {
3533+ "version": "2.0.0",
3534+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
3535+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
3536+ },
2980 "classnames": {
3537 "classnames": {
2981 "version": "2.3.1",
3538 "version": "2.3.1",
2982 "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
3539 "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
@@ -3013,6 +3570,11 @@
3013 "simple-swizzle": "^0.2.2"
3570 "simple-swizzle": "^0.2.2"
3014 }
3571 }
3015 },
3572 },
3573+ "color-support": {
3574+ "version": "1.1.3",
3575+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
3576+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="
3577+ },
3016 "compute-scroll-into-view": {
3578 "compute-scroll-into-view": {
3017 "version": "1.0.17",
3579 "version": "1.0.17",
3018 "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz",
3580 "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz",
@@ -3021,8 +3583,12 @@
3021 "concat-map": {
3583 "concat-map": {
3022 "version": "0.0.1",
3584 "version": "0.0.1",
3023 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
3585 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
3024− "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
3586+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
3025− "dev": true
3587+ },
3588+ "console-control-strings": {
3589+ "version": "1.1.0",
3590+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
3591+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
3026 },
3592 },
3027 "core-js": {
3593 "core-js": {
3028 "version": "3.24.1",
3594 "version": "3.24.1",
@@ -3045,6 +3611,22 @@
3045 "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
3611 "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
3046 "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
3612 "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
3047 },
3613 },
3614+ "debug": {
3615+ "version": "4.3.4",
3616+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
3617+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
3618+ "requires": {
3619+ "ms": "2.1.2"
3620+ }
3621+ },
3622+ "decompress-response": {
3623+ "version": "4.2.1",
3624+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
3625+ "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
3626+ "requires": {
3627+ "mimic-response": "^2.0.0"
3628+ }
3629+ },
3048 "deep-rename-keys": {
3630 "deep-rename-keys": {
3049 "version": "0.2.1",
3631 "version": "0.2.1",
3050 "resolved": "https://registry.npmjs.org/deep-rename-keys/-/deep-rename-keys-0.2.1.tgz",
3632 "resolved": "https://registry.npmjs.org/deep-rename-keys/-/deep-rename-keys-0.2.1.tgz",
@@ -3074,6 +3656,16 @@
3074 "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
3656 "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
3075 "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ=="
3657 "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ=="
3076 },
3658 },
3659+ "delegates": {
3660+ "version": "1.0.0",
3661+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
3662+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
3663+ },
3664+ "detect-libc": {
3665+ "version": "2.0.1",
3666+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
3667+ "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w=="
3668+ },
3077 "detective": {
3669 "detective": {
3078 "version": "5.2.1",
3670 "version": "5.2.1",
3079 "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
3671 "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
@@ -3151,6 +3743,11 @@
3151 "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.211.tgz",
3743 "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.211.tgz",
3152 "integrity": "sha512-BZSbMpyFQU0KBJ1JG26XGeFI3i4op+qOYGxftmZXFZoHkhLgsSv4DHDJfl8ogII3hIuzGt51PaZ195OVu0yJ9A=="
3744 "integrity": "sha512-BZSbMpyFQU0KBJ1JG26XGeFI3i4op+qOYGxftmZXFZoHkhLgsSv4DHDJfl8ogII3hIuzGt51PaZ195OVu0yJ9A=="
3153 },
3745 },
3746+ "emoji-regex": {
3747+ "version": "8.0.0",
3748+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
3749+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
3750+ },
3154 "end-of-stream": {
3751 "end-of-stream": {
3155 "version": "1.4.4",
3752 "version": "1.4.4",
3156 "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
3753 "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
@@ -3271,6 +3868,19 @@
3271 "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
3868 "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
3272 "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA=="
3869 "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA=="
3273 },
3870 },
3871+ "fs-minipass": {
3872+ "version": "2.1.0",
3873+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
3874+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
3875+ "requires": {
3876+ "minipass": "^3.0.0"
3877+ }
3878+ },
3879+ "fs.realpath": {
3880+ "version": "1.0.0",
3881+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
3882+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
3883+ },
3274 "fsevents": {
3884 "fsevents": {
3275 "version": "2.3.2",
3885 "version": "2.3.2",
3276 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
3886 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
@@ -3282,6 +3892,22 @@
3282 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
3892 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
3283 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
3893 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
3284 },
3894 },
3895+ "gauge": {
3896+ "version": "3.0.2",
3897+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
3898+ "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
3899+ "requires": {
3900+ "aproba": "^1.0.3 || ^2.0.0",
3901+ "color-support": "^1.1.2",
3902+ "console-control-strings": "^1.0.0",
3903+ "has-unicode": "^2.0.1",
3904+ "object-assign": "^4.1.1",
3905+ "signal-exit": "^3.0.0",
3906+ "string-width": "^4.2.3",
3907+ "strip-ansi": "^6.0.1",
3908+ "wide-align": "^1.1.2"
3909+ }
3910+ },
3285 "get-stream": {
3911 "get-stream": {
3286 "version": "5.2.0",
3912 "version": "5.2.0",
3287 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
3913 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
@@ -3296,6 +3922,19 @@
3296 "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
3922 "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
3297 "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA=="
3923 "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA=="
3298 },
3924 },
3925+ "glob": {
3926+ "version": "7.2.3",
3927+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
3928+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
3929+ "requires": {
3930+ "fs.realpath": "^1.0.0",
3931+ "inflight": "^1.0.4",
3932+ "inherits": "2",
3933+ "minimatch": "^3.1.1",
3934+ "once": "^1.3.0",
3935+ "path-is-absolute": "^1.0.0"
3936+ }
3937+ },
3299 "glob-parent": {
3938 "glob-parent": {
3300 "version": "6.0.2",
3939 "version": "6.0.2",
3301 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
3940 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
@@ -3329,6 +3968,11 @@
3329 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
3968 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
3330 "dev": true
3969 "dev": true
3331 },
3970 },
3971+ "has-unicode": {
3972+ "version": "2.0.1",
3973+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
3974+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
3975+ },
3332 "has-value": {
3976 "has-value": {
3333 "version": "0.3.1",
3977 "version": "0.3.1",
3334 "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
3978 "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
@@ -3385,6 +4029,15 @@
3385 "entities": "^3.0.1"
4029 "entities": "^3.0.1"
3386 }
4030 }
3387 },
4031 },
4032+ "https-proxy-agent": {
4033+ "version": "5.0.1",
4034+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
4035+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
4036+ "requires": {
4037+ "agent-base": "6",
4038+ "debug": "4"
4039+ }
4040+ },
3388 "human-signals": {
4041 "human-signals": {
3389 "version": "1.1.1",
4042 "version": "1.1.1",
3390 "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
4043 "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
@@ -3402,6 +4055,15 @@
3402 "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
4055 "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
3403 "dev": true
4056 "dev": true
3404 },
4057 },
4058+ "inflight": {
4059+ "version": "1.0.6",
4060+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
4061+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
4062+ "requires": {
4063+ "once": "^1.3.0",
4064+ "wrappy": "1"
4065+ }
4066+ },
3405 "inherits": {
4067 "inherits": {
3406 "version": "2.0.4",
4068 "version": "2.0.4",
3407 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
4069 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
@@ -3456,6 +4118,11 @@
3456 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
4118 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
3457 "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
4119 "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
3458 },
4120 },
4121+ "is-fullwidth-code-point": {
4122+ "version": "3.0.0",
4123+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
4124+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
4125+ },
3459 "is-glob": {
4126 "is-glob": {
3460 "version": "4.0.3",
4127 "version": "4.0.3",
3461 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
4128 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
@@ -3573,11 +4240,34 @@
3573 "js-tokens": "^3.0.0 || ^4.0.0"
4240 "js-tokens": "^3.0.0 || ^4.0.0"
3574 }
4241 }
3575 },
4242 },
4243+ "lru-cache": {
4244+ "version": "6.0.0",
4245+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
4246+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
4247+ "requires": {
4248+ "yallist": "^4.0.0"
4249+ }
4250+ },
3576 "luxon": {
4251 "luxon": {
3577 "version": "2.5.0",
4252 "version": "2.5.0",
3578 "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.5.0.tgz",
4253 "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.5.0.tgz",
3579 "integrity": "sha512-IDkEPB80Rb6gCAU+FEib0t4FeJ4uVOuX1CQ9GsvU3O+JAGIgu0J7sf1OarXKaKDygTZIoJyU6YdZzTFRu+YR0A=="
4254 "integrity": "sha512-IDkEPB80Rb6gCAU+FEib0t4FeJ4uVOuX1CQ9GsvU3O+JAGIgu0J7sf1OarXKaKDygTZIoJyU6YdZzTFRu+YR0A=="
3580 },
4255 },
4256+ "make-dir": {
4257+ "version": "3.1.0",
4258+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
4259+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
4260+ "requires": {
4261+ "semver": "^6.0.0"
4262+ },
4263+ "dependencies": {
4264+ "semver": {
4265+ "version": "6.3.0",
4266+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
4267+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
4268+ }
4269+ }
4270+ },
3581 "merge-stream": {
4271 "merge-stream": {
3582 "version": "2.0.0",
4272 "version": "2.0.0",
3583 "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
4273 "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@@ -3604,11 +4294,15 @@
3604 "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
4294 "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
3605 "dev": true
4295 "dev": true
3606 },
4296 },
4297+ "mimic-response": {
4298+ "version": "2.1.0",
4299+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
4300+ "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA=="
4301+ },
3607 "minimatch": {
4302 "minimatch": {
3608 "version": "3.1.2",
4303 "version": "3.1.2",
3609 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
4304 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
3610 "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
4305 "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
3611− "dev": true,
3612 "requires": {
4306 "requires": {
3613 "brace-expansion": "^1.1.7"
4307 "brace-expansion": "^1.1.7"
3614 }
4308 }
@@ -3618,12 +4312,39 @@
3618 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
4312 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
3619 "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
4313 "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
3620 },
4314 },
4315+ "minipass": {
4316+ "version": "3.3.4",
4317+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz",
4318+ "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==",
4319+ "requires": {
4320+ "yallist": "^4.0.0"
4321+ }
4322+ },
4323+ "minizlib": {
4324+ "version": "2.1.2",
4325+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
4326+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
4327+ "requires": {
4328+ "minipass": "^3.0.0",
4329+ "yallist": "^4.0.0"
4330+ }
4331+ },
4332+ "mkdirp": {
4333+ "version": "1.0.4",
4334+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
4335+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
4336+ },
3621 "mri": {
4337 "mri": {
3622 "version": "1.2.0",
4338 "version": "1.2.0",
3623 "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
4339 "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
3624 "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
4340 "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
3625 "dev": true
4341 "dev": true
3626 },
4342 },
4343+ "ms": {
4344+ "version": "2.1.2",
4345+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
4346+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
4347+ },
3627 "multimatch": {
4348 "multimatch": {
3628 "version": "4.0.0",
4349 "version": "4.0.0",
3629 "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz",
4350 "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz",
@@ -3637,6 +4358,11 @@
3637 "minimatch": "^3.0.4"
4358 "minimatch": "^3.0.4"
3638 }
4359 }
3639 },
4360 },
4361+ "nan": {
4362+ "version": "2.16.0",
4363+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz",
4364+ "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA=="
4365+ },
3640 "nanoid": {
4366 "nanoid": {
3641 "version": "3.3.4",
4367 "version": "3.3.4",
3642 "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
4368 "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
@@ -3668,11 +4394,27 @@
3668 "use-sync-external-store": "1.2.0"
4394 "use-sync-external-store": "1.2.0"
3669 }
4395 }
3670 },
4396 },
4397+ "node-fetch": {
4398+ "version": "2.6.7",
4399+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
4400+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
4401+ "requires": {
4402+ "whatwg-url": "^5.0.0"
4403+ }
4404+ },
3671 "node-releases": {
4405 "node-releases": {
3672 "version": "2.0.6",
4406 "version": "2.0.6",
3673 "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
4407 "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
3674 "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg=="
4408 "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg=="
3675 },
4409 },
4410+ "nopt": {
4411+ "version": "5.0.0",
4412+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
4413+ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
4414+ "requires": {
4415+ "abbrev": "1"
4416+ }
4417+ },
3676 "normalize-path": {
4418 "normalize-path": {
3677 "version": "3.0.0",
4419 "version": "3.0.0",
3678 "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
4420 "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
@@ -3692,6 +4434,17 @@
3692 "path-key": "^3.0.0"
4434 "path-key": "^3.0.0"
3693 }
4435 }
3694 },
4436 },
4437+ "npmlog": {
4438+ "version": "5.0.1",
4439+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
4440+ "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
4441+ "requires": {
4442+ "are-we-there-yet": "^2.0.0",
4443+ "console-control-strings": "^1.1.0",
4444+ "gauge": "^3.0.0",
4445+ "set-blocking": "^2.0.0"
4446+ }
4447+ },
3695 "object-assign": {
4448 "object-assign": {
3696 "version": "4.1.1",
4449 "version": "4.1.1",
3697 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
4450 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -3715,7 +4468,6 @@
3715 "version": "1.4.0",
4468 "version": "1.4.0",
3716 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
4469 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
3717 "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
4470 "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
3718− "dev": true,
3719 "requires": {
4471 "requires": {
3720 "wrappy": "1"
4472 "wrappy": "1"
3721 }
4473 }
@@ -3764,6 +4516,11 @@
3764 "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
4516 "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
3765 "dev": true
4517 "dev": true
3766 },
4518 },
4519+ "path-is-absolute": {
4520+ "version": "1.0.1",
4521+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
4522+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
4523+ },
3767 "path-key": {
4524 "path-key": {
3768 "version": "3.1.1",
4525 "version": "3.1.1",
3769 "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
4526 "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
@@ -4022,6 +4779,14 @@
4022 "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
4779 "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
4023 "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
4780 "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
4024 },
4781 },
4782+ "rimraf": {
4783+ "version": "3.0.2",
4784+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
4785+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
4786+ "requires": {
4787+ "glob": "^7.1.3"
4788+ }
4789+ },
4025 "run-parallel": {
4790 "run-parallel": {
4026 "version": "1.2.0",
4791 "version": "1.2.0",
4027 "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
4792 "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -4058,6 +4823,19 @@
4058 "kind-of": "^6.0.0"
4823 "kind-of": "^6.0.0"
4059 }
4824 }
4060 },
4825 },
4826+ "semver": {
4827+ "version": "7.3.7",
4828+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
4829+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
4830+ "requires": {
4831+ "lru-cache": "^6.0.0"
4832+ }
4833+ },
4834+ "set-blocking": {
4835+ "version": "2.0.0",
4836+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
4837+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
4838+ },
4061 "shebang-command": {
4839 "shebang-command": {
4062 "version": "2.0.0",
4840 "version": "2.0.0",
4063 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
4841 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -4076,8 +4854,22 @@
4076 "signal-exit": {
4854 "signal-exit": {
4077 "version": "3.0.7",
4855 "version": "3.0.7",
4078 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
4856 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
4079− "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
4857+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
4080− "dev": true
4858+ },
4859+ "simple-concat": {
4860+ "version": "1.0.1",
4861+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
4862+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
4863+ },
4864+ "simple-get": {
4865+ "version": "3.1.1",
4866+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz",
4867+ "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==",
4868+ "requires": {
4869+ "decompress-response": "^4.2.0",
4870+ "once": "^1.3.1",
4871+ "simple-concat": "^1.0.0"
4872+ }
4081 },
4873 },
4082 "simple-swizzle": {
4874 "simple-swizzle": {
4083 "version": "0.2.2",
4875 "version": "0.2.2",
@@ -4114,6 +4906,24 @@
4114 "safe-buffer": "~5.2.0"
4906 "safe-buffer": "~5.2.0"
4115 }
4907 }
4116 },
4908 },
4909+ "string-width": {
4910+ "version": "4.2.3",
4911+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
4912+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
4913+ "requires": {
4914+ "emoji-regex": "^8.0.0",
4915+ "is-fullwidth-code-point": "^3.0.0",
4916+ "strip-ansi": "^6.0.1"
4917+ }
4918+ },
4919+ "strip-ansi": {
4920+ "version": "6.0.1",
4921+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
4922+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
4923+ "requires": {
4924+ "ansi-regex": "^5.0.1"
4925+ }
4926+ },
4117 "strip-bom-string": {
4927 "strip-bom-string": {
4118 "version": "1.0.0",
4928 "version": "1.0.0",
4119 "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
4929 "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
@@ -4210,6 +5020,19 @@
4210 "tailwindcss": "^3.0.23"
5020 "tailwindcss": "^3.0.23"
4211 }
5021 }
4212 },
5022 },
5023+ "tar": {
5024+ "version": "6.1.11",
5025+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
5026+ "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
5027+ "requires": {
5028+ "chownr": "^2.0.0",
5029+ "fs-minipass": "^2.0.0",
5030+ "minipass": "^3.0.0",
5031+ "minizlib": "^2.1.1",
5032+ "mkdirp": "^1.0.3",
5033+ "yallist": "^4.0.0"
5034+ }
5035+ },
4213 "to-regex-range": {
5036 "to-regex-range": {
4214 "version": "5.0.1",
5037 "version": "5.0.1",
4215 "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
5038 "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -4218,6 +5041,11 @@
4218 "is-number": "^7.0.0"
5041 "is-number": "^7.0.0"
4219 }
5042 }
4220 },
5043 },
5044+ "tr46": {
5045+ "version": "0.0.3",
5046+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
5047+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
5048+ },
4221 "transformation-matrix": {
5049 "transformation-matrix": {
4222 "version": "2.1.1",
5050 "version": "2.1.1",
4223 "resolved": "https://registry.npmjs.org/transformation-matrix/-/transformation-matrix-2.1.1.tgz",
5051 "resolved": "https://registry.npmjs.org/transformation-matrix/-/transformation-matrix-2.1.1.tgz",
@@ -4267,6 +5095,20 @@
4267 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
5095 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
4268 "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
5096 "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
4269 },
5097 },
5098+ "webidl-conversions": {
5099+ "version": "3.0.1",
5100+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
5101+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
5102+ },
5103+ "whatwg-url": {
5104+ "version": "5.0.0",
5105+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
5106+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
5107+ "requires": {
5108+ "tr46": "~0.0.3",
5109+ "webidl-conversions": "^3.0.0"
5110+ }
5111+ },
4270 "which": {
5112 "which": {
4271 "version": "2.0.2",
5113 "version": "2.0.2",
4272 "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
5114 "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -4276,11 +5118,18 @@
4276 "isexe": "^2.0.0"
5118 "isexe": "^2.0.0"
4277 }
5119 }
4278 },
5120 },
5121+ "wide-align": {
5122+ "version": "1.1.5",
5123+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
5124+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
5125+ "requires": {
5126+ "string-width": "^1.0.2 || 2 || 3 || 4"
5127+ }
5128+ },
4279 "wrappy": {
5129 "wrappy": {
4280 "version": "1.0.2",
5130 "version": "1.0.2",
4281 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
5131 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
4282− "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
5132+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
4283− "dev": true
4284 },
5133 },
4285 "xml-js": {
5134 "xml-js": {
4286 "version": "1.6.11",
5135 "version": "1.6.11",
@@ -4312,6 +5161,11 @@
4312 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
5161 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
4313 "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
5162 "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
4314 },
5163 },
5164+ "yallist": {
5165+ "version": "4.0.0",
5166+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
5167+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
5168+ },
4315 "yaml": {
5169 "yaml": {
4316 "version": "1.10.2",
5170 "version": "1.10.2",
4317 "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
5171 "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
package.json+3−1
@@ -12,7 +12,8 @@
12 "getting-started-tree": "node lib/buildPageTree getting-started weight",
12 "getting-started-tree": "node lib/buildPageTree getting-started weight",
13 "overview-tree": "node lib/buildPageTree overview weight",
13 "overview-tree": "node lib/buildPageTree overview weight",
14 "cache-posts": "node lib/cache.js",
14 "cache-posts": "node lib/cache.js",
15− "rss": "node lib/rss.js"
15+ "rss": "node lib/rss.js",
16+ "vercel-build": "yum install libuuid-devel libmount-devel && cp /lib64/{libuuid,libmount,libblkid}.so.1 node_modules/canvas/build/Release/ && npm run build"
16 },
17 },
17 "dependencies": {
18 "dependencies": {
18 "@iarna/toml": "^2.2.5",
19 "@iarna/toml": "^2.2.5",
@@ -23,6 +24,7 @@
23 "@urbit/markdoc": "^0.1.4",
24 "@urbit/markdoc": "^0.1.4",
24 "axios": "^0.26.1",
25 "axios": "^0.26.1",
25 "buffer": "^6.0.3",
26 "buffer": "^6.0.3",
27+ "canvas": "^2.9.3",
26 "classnames": "^2.3.1",
28 "classnames": "^2.3.1",
27 "deepmerge": "^4.2.2",
29 "deepmerge": "^4.2.2",
28 "downshift": "^6.1.5",
30 "downshift": "^6.1.5",
pages/api/sigil.jsnew file+60
@@ -0,0 +1,60 @@
1+const { sigil, stringRenderer } = require("@tlon/sigil-js");
2+const { createCanvas, loadImage, Image } = require("canvas");
3+
4+const foregroundFromBackground = (background) => {
5+ const rgb = {
6+ r: parseInt(background.slice(1, 3), 16),
7+ g: parseInt(background.slice(3, 5), 16),
8+ b: parseInt(background.slice(5, 7), 16),
9+ };
10+ const brightness = (299 * rgb.r + 587 * rgb.g + 114 * rgb.b) / 1000;
11+ const whiteBrightness = 255;
12+
13+ return whiteBrightness - brightness < 50 ? "black" : "white";
14+};
15+
16+const Sigil = ({ patp, size, color = "#24201E", icon }) => {
17+ if (patp.length > 14) {
18+ return <div />;
19+ }
20+ const foreground = foregroundFromBackground(color);
21+ return (
22+ <div
23+ className={icon ? "p-1" : ""}
24+ style={{ backgroundColor: icon ? color || "black" : "transparent" }}
25+ >
26+ {sigil({
27+ patp: patp,
28+ renderer: stringRenderer,
29+ size: icon ? size / 2 : size,
30+ colors: [color, foreground],
31+ icon: icon || false,
32+ })}
33+ </div>
34+ );
35+};
36+
37+export default (req, res) => {
38+ const foreground = foregroundFromBackground(
39+ `#${req.query.color || "24201E"}`
40+ );
41+ const svg = sigil({
42+ patp: req.query.patp,
43+ renderer: stringRenderer,
44+ size: 1024,
45+ colors: [`#${req.query.color || "24201E"}`, foreground],
46+ icon: false,
47+ });
48+ const svgDataString = "data:image/svg+xml," + svg;
49+ const canvas = createCanvas(1024, 1024);
50+ const ctx = canvas.getContext("2d");
51+ const canvasImage = new Image();
52+ canvasImage.src = svgDataString;
53+ ctx.drawImage(canvasImage, 0, 0);
54+ const buffer = canvas.toBuffer();
55+ res.writeHead(200, {
56+ "Content-Type": "image/png",
57+ "Content-Length": buffer.length,
58+ });
59+ res.end(buffer, "binary");
60+};
pages/applications/[[...application]].js+4−15
@@ -24,13 +24,6 @@ const ApplicationPage = ({ data, markdown, organisation, search, params }) => {
24 if (!ob.isValidPatp(application[0])) {
24 if (!ob.isValidPatp(application[0])) {
25 return <Gateway404 type="application" />;
25 return <Gateway404 type="application" />;
26 }
26 }
27− const reqParams = [
28− data?.bgColor ? `color=${encodeURIComponent(data?.bgColor)}` : "",
29− data?.image ? `images=${encodeURIComponent(data?.image)}` : "",
30− ].filter((e) => e !== "");
31− const image = `https://urbit-id-og-cards-78ieodof2-urbit.vercel.app/${
32− data.title
33− }.png?${reqParams.join("&")}`;
34
27
35 let devLink;
28 let devLink;
36
29
@@ -60,16 +53,12 @@ const ApplicationPage = ({ data, markdown, organisation, search, params }) => {
60 return (
53 return (
61 <Container>
54 <Container>
62 <Head>
55 <Head>
63− <title>{data.title} • Applications • urbit.org</title>
56+ <title>{data.title} • Urbit Application</title>
64 <link rel="icon" type="image/png" href="/images/favicon.ico" />
57 <link rel="icon" type="image/png" href="/images/favicon.ico" />
65− <meta
66− name="twitter:card"
58+ <meta name="twitter:card" content="summary" key="twitter-card" />
67− content="summary_large_image"
68− key="twitter-card"
69− />
70 <meta
59 <meta
71 name="og:title"
60 name="og:title"
72− content={`${data.title} • Applications • urbit.org`}
61+ content={`${data.title} • Urbit Application`}
73 key="title"
62 key="title"
74 />
63 />
75 <meta
64 <meta
@@ -80,7 +69,7 @@ const ApplicationPage = ({ data, markdown, organisation, search, params }) => {
80 }
69 }
81 key="description"
70 key="description"
82 />
71 />
83− <meta property="twitter:image" content={image} key="image" />
72+ <meta property="twitter:image" content={data.image} key="image" />
84 </Head>
73 </Head>
85 <IntraNav ourSite="https://urbit.org" search={search} />
74 <IntraNav ourSite="https://urbit.org" search={search} />
86 <SingleColumn>
75 <SingleColumn>
pages/blog/[slug].js+1−2
@@ -21,7 +21,6 @@ import {
21} from "@urbit/foundation-design-system";
21} from "@urbit/foundation-design-system";
22import Header from "../../components/Header";
22import Header from "../../components/Header";
23import Footer from "../../components/Footer";
23import Footer from "../../components/Footer";
24−import Contact from "../../components/Contact";
25import PostPreview from "../../components/PostPreview";
24import PostPreview from "../../components/PostPreview";
26import TwoUp from "../../components/TwoUp";
25import TwoUp from "../../components/TwoUp";
27
26
@@ -41,7 +40,7 @@ export default function Post({
41 <Container>
40 <Container>
42 <Head>
41 <Head>
43 <title>{post.title} • Blog • urbit.org</title>
42 <title>{post.title} • Blog • urbit.org</title>
44− {Meta(post)}
43+ {Meta(post, false, true)}
45 </Head>
44 </Head>
46 <IntraNav ourSite="https://urbit.org" search={search} />
45 <IntraNav ourSite="https://urbit.org" search={search} />
47 <SingleColumn>
46 <SingleColumn>
pages/community/[[...slug]].js+1−1
@@ -62,7 +62,7 @@ export default function UsingLayout({ posts, data, markdown, params, search }) {
62 return (
62 return (
63 <>
63 <>
64 <Head>
64 <Head>
65− <title>{data.title} • Community • urbit.org</title>
65+ <title>{data.title} • Community</title>
66 {Meta(data)}
66 {Meta(data)}
67 </Head>
67 </Head>
68 <div className="flex h-screen min-h-screen w-screen sidebar">
68 <div className="flex h-screen min-h-screen w-screen sidebar">
pages/ecosystem/index.js+1−1
@@ -67,7 +67,7 @@ export default function Ecosystem({
67 return (
67 return (
68 <Container>
68 <Container>
69 <Head>
69 <Head>
70− <title>{title} • Urbit</title>
70+ <title>{title}</title>
71 {Meta(data)}
71 {Meta(data)}
72 </Head>
72 </Head>
73 <IntraNav ourSite="https://urbit.org" search={search} />
73 <IntraNav ourSite="https://urbit.org" search={search} />
pages/ecosystem/spotlight/[slug].js+1−1
@@ -24,7 +24,7 @@ export default function BasicPage({ post, markdown, search, index = false }) {
24 return (
24 return (
25 <Container>
25 <Container>
26 <Head>
26 <Head>
27− <title>Urbit • {post.title}</title>
27+ <title>Ecosystem Spotlight - {post.title}</title>
28 {Meta(post)}
28 {Meta(post)}
29 </Head>
29 </Head>
30 <IntraNav ourSite="https://urbit.org" search={search} />
30 <IntraNav ourSite="https://urbit.org" search={search} />
pages/events/[slug].js+1−1
@@ -49,7 +49,7 @@ export default function Event({
49 <Container>
49 <Container>
50 <Head>
50 <Head>
51 <title>{event.title} • Events • urbit.org</title>
51 <title>{event.title} • Events • urbit.org</title>
52− {Meta(event)}
52+ {Meta(event, false, true)}
53 </Head>
53 </Head>
54 <IntraNav ourSite="https://urbit.org" search={search} />
54 <IntraNav ourSite="https://urbit.org" search={search} />
55 <SingleColumn>
55 <SingleColumn>
pages/getting-started/[[...slug]].js+1−1
@@ -42,7 +42,7 @@ export default function UsingLayout({ posts, data, params, search, markdown }) {
42 return (
42 return (
43 <>
43 <>
44 <Head>
44 <Head>
45− <title>{data.title} • Getting Started • urbit.org</title>
45+ <title>{data.title} • Getting Started</title>
46 {Meta(data)}
46 {Meta(data)}
47 </Head>
47 </Head>
48 <div className="flex h-screen min-h-screen w-screen sidebar">
48 <div className="flex h-screen min-h-screen w-screen sidebar">
pages/grants/[slug].js+4−2
@@ -51,12 +51,14 @@ export default function Grant({ post, markdown, search }) {
51 ) : (
51 ) : (
52 mentor
52 mentor
53 );
53 );
54+ const metaPost = Object.assign({}, post);
55+ metaPost.title = `${post.title} - Grant`;
54
56
55 return (
57 return (
56 <Container>
58 <Container>
57 <Head>
59 <Head>
58− <title>{post.title} • Grants • urbit.org</title>
60+ <title>{post.title} - Grant</title>
59− {Meta(post)}
61+ {Meta(metaPost)}
60 </Head>
62 </Head>
61 <IntraNav ourSite="https://urbit.org" search={search} />
63 <IntraNav ourSite="https://urbit.org" search={search} />
62 <SingleColumn>
64 <SingleColumn>
pages/groups/[[...group]].js+4−22
@@ -24,33 +24,15 @@ const GroupPage = ({ data, markdown, params, search }) => {
24 return <Gateway404 type="group" />;
24 return <Gateway404 type="group" />;
25 }
25 }
26
26
27− const color = data?.tile && data?.tile.startsWith("#");
28− const reqParams = [
29− color ? `color=${encodeURIComponent(data.tile)}` : "",
30− !color
31− ? `images=${encodeURIComponent(
32− data?.tile ||
33− "https://media.urbit.org/public-links/placeholder-image.png"
34− )}`
35− : "",
36− ].filter((e) => e !== "");
37− const image = `https://urbit-id-og-cards-667veow91-urbit.vercel.app/${
38− data.title
39− }.png?${reqParams.join("&")}`;
40−
41 return (
27 return (
42 <Container>
28 <Container>
43 <Head>
29 <Head>
44− <title>{data.title} • Groups • urbit.org</title>
30+ <title>{data.title} - Urbit Group</title>
45 <link rel="icon" type="image/png" href="/images/favicon.ico" />
31 <link rel="icon" type="image/png" href="/images/favicon.ico" />
46− <meta
47− name="twitter:card"
32+ <meta name="twitter:card" content="summary" key="twitter-card" />
48− content="summary_large_image"
49− key="twitter-card"
50− />
51 <meta
33 <meta
52 name="og:title"
34 name="og:title"
53− content={`${data.title} • Groups • urbit.org`}
35+ content={`${data.title} - Urbit Group`}
54 key="title"
36 key="title"
55 />
37 />
56 <meta
38 <meta
@@ -60,7 +42,7 @@ const GroupPage = ({ data, markdown, params, search }) => {
60 }
42 }
61 key="description"
43 key="description"
62 />
44 />
63− <meta property="twitter:image" content={image} key="image" />
45+ <meta property="twitter:image" content={data.tile} key="image" />
64 </Head>
46 </Head>
65 <SingleColumn>
47 <SingleColumn>
66 <Header search={search} />
48 <Header search={search} />
pages/ids/[id].js+16−22
@@ -24,15 +24,6 @@ const IdPage = ({ data, markdown, applications, groups, network, params }) => {
24 return <Gateway404 type="ID" />;
24 return <Gateway404 type="ID" />;
25 }
25 }
26
26
27− const reqParams = [
28− data?.bgColor ? `color=${encodeURIComponent(data?.bgColor)}` : "",
29− data?.nickname ? `nickname=${encodeURIComponent(data?.nickname)}` : "",
30− data?.image ? `images=${encodeURIComponent(data?.image)}` : "",
31− ].filter((e) => e !== "");
32− const image = `https://urbit-id-og-cards-kappa.vercel.app/${deSig(
33− id
34− )}.png?${reqParams.join("&")}`;
35−
36 // Galaxies shouldn't show parents, so store it as boolean here for reference.
27 // Galaxies shouldn't show parents, so store it as boolean here for reference.
37 const isGalaxy = ob.clan(id) === "galaxy";
28 const isGalaxy = ob.clan(id) === "galaxy";
38
29
@@ -48,24 +39,27 @@ const IdPage = ({ data, markdown, applications, groups, network, params }) => {
48 return (
39 return (
49 <Container>
40 <Container>
50 <Head>
41 <Head>
51− <title>{id} • Urbit ID • urbit.org</title>
42+ <title>{id} • Urbit ID</title>
52 <link rel="icon" type="image/png" href="/images/favicon.ico" />
43 <link rel="icon" type="image/png" href="/images/favicon.ico" />
53− <meta
54− name="twitter:card"
44+ <meta name="twitter:card" content="summary" key="twitter-card" />
55− content="summary_large_image"
56− key="twitter-card"
57− />
58− <meta
59− name="og:title"
60− content={`${id} • Urbit ID • urbit.org`}
45+ <meta name="og:title" content={`${id} • Urbit ID`} key="title" />
61− key="title"
62− />
63 <meta
46 <meta
64 name="og:description"
47 name="og:description"
65− content="View more about this Urbit ID on urbit.org."
48+ content={`ID Type: ${
49+ ob.clan(id).slice(0, 1).toUpperCase() + ob.clan(id).slice(1)
50+ }`}
66 key="description"
51 key="description"
67 />
52 />
53+ <meta
68− <meta property="twitter:image" content={image} key="image" />
54+ property="twitter:image"
55+ content={
56+ data?.image ||
57+ `https://urbit.org/api/sigil?patp=${id}&color=${
58+ data?.bgColor?.slice(1) || "24201E"
59+ }`
60+ }
61+ key="image"
62+ />
69 </Head>
63 </Head>
70 <SingleColumn>
64 <SingleColumn>
71 <Section className="space-y-12 w-full" narrow>
65 <Section className="space-y-12 w-full" narrow>
pages/index.js+7−1
@@ -19,6 +19,7 @@ import { eventKeys } from "../lib/constants";
19import IndexCard from "../components/ecosystem/IndexCard";
19import IndexCard from "../components/ecosystem/IndexCard";
20import fs from "fs";
20import fs from "fs";
21import path from "path";
21import path from "path";
22+import Meta from "../components/Meta";
22
23
23export default function Home({
24export default function Home({
24 posts,
25 posts,
@@ -27,10 +28,15 @@ export default function Home({
27 grantNumbers,
28 grantNumbers,
28 search,
29 search,
29}) {
30}) {
31+ const post = {
32+ title: "Urbit",
33+ description: "A clean-slate OS and network for the 21st century.",
34+ };
30 return (
35 return (
31 <Container>
36 <Container>
32 <Head>
37 <Head>
33− <title>urbit.org</title>
38+ <title>Urbit</title>
39+ {Meta(post)}
34 </Head>
40 </Head>
35 <IntraNav ourSite="https://urbit.org" search={search} />
41 <IntraNav ourSite="https://urbit.org" search={search} />
36 <SingleColumn>
42 <SingleColumn>
pages/marketplaces/[slug].js+2−2
@@ -12,7 +12,7 @@ export default function Marketplace({
12}) {
12}) {
13 return (
13 return (
14 <BasicPage
14 <BasicPage
15− section="Marketplaces"
15+ section="Urbit Marketplace"
16 post={post}
16 post={post}
17 markdown={markdown}
17 markdown={markdown}
18 search={search}
18 search={search}
@@ -36,7 +36,7 @@ export default function Marketplace({
36export async function getStaticProps({ params }) {
36export async function getStaticProps({ params }) {
37 const post = getPostBySlug(
37 const post = getPostBySlug(
38 params.slug,
38 params.slug,
39− ["title", "slug", "URL", "image", "payment", "content"],
39+ ["title", "slug", "description", "URL", "image", "payment", "content"],
40 "marketplaces"
40 "marketplaces"
41 );
41 );
42
42
pages/organizations/[slug].js+11−5
@@ -1,6 +1,3 @@
1−// Single page per organisation
2−// Needs to have *associated ships* by which it polls content/applications for applications it "owns"
3−// Needs to look for its title in ecosystem/spotlight
4import { getAllPosts, getPostBySlug, getPostSlugs } from "../../lib/lib";
1import { getAllPosts, getPostBySlug, getPostSlugs } from "../../lib/lib";
5import BasicPage from "../../components/ecosystem/BasicPage";
2import BasicPage from "../../components/ecosystem/BasicPage";
6import { Markdown } from "@urbit/foundation-design-system";
3import { Markdown } from "@urbit/foundation-design-system";
@@ -19,7 +16,7 @@ export default function Organization({
19}) {
16}) {
20 return (
17 return (
21 <BasicPage
18 <BasicPage
22− section="Organizations"
19+ section="Organization"
23 post={post}
20 post={post}
24 markdown={markdown}
21 markdown={markdown}
25 search={search}
22 search={search}
@@ -97,7 +94,16 @@ export default function Organization({
97export async function getStaticProps({ params }) {
94export async function getStaticProps({ params }) {
98 const post = getPostBySlug(
95 const post = getPostBySlug(
99 params.slug,
96 params.slug,
100− ["title", "slug", "URL", "image", "ships", "group", "content"],
97+ [
98+ "title",
99+ "slug",
100+ "description",
101+ "URL",
102+ "image",
103+ "ships",
104+ "group",
105+ "content",
106+ ],
101 "organizations"
107 "organizations"
102 );
108 );
103
109
pages/overview/[[...slug]].js+1−1
@@ -21,7 +21,7 @@ export default function Overview({ posts, data, markdown, search }) {
21 return (
21 return (
22 <Container>
22 <Container>
23 <Head>
23 <Head>
24− <title>{data.title} • Overview • Urbit</title>
24+ <title>{data.title} • Overview</title>
25 {Meta(data)}
25 {Meta(data)}
26 </Head>
26 </Head>
27 <IntraNav ourSite="https://urbit.org" search={search} />
27 <IntraNav ourSite="https://urbit.org" search={search} />
pages/podcasts/[slug].js+1−1
@@ -12,7 +12,7 @@ export default function Podcast({
12}) {
12}) {
13 return (
13 return (
14 <BasicPage
14 <BasicPage
15− section="Podcasts"
15+ section="Podcast"
16 post={post}
16 post={post}
17 markdown={markdown}
17 markdown={markdown}
18 search={search}
18 search={search}
pages/updates/[slug].js+1−1
@@ -30,7 +30,7 @@ export default function Post({ post, markdown, search }) {
30 return (
30 return (
31 <Container>
31 <Container>
32 <Head>
32 <Head>
33− <title>{post.title} • Updates • urbit.org</title>
33+ <title>{post.title} • Updates</title>
34 {Meta(post)}
34 {Meta(post)}
35 </Head>
35 </Head>
36 <IntraNav ourSite="https://urbit.org" search={search} />
36 <IntraNav ourSite="https://urbit.org" search={search} />