perf: avoid layout re-rendering

This commit is contained in:
Riccardo
2024-01-25 18:12:37 +01:00
parent 551bff815f
commit dbefdc49e2
15 changed files with 137 additions and 135 deletions

View File

@@ -3,9 +3,14 @@
## Next up
- Adjust card size
- Custom url shortener for links in the newsletter?
- Tweak email templates
- Cron every 10 minutes: people are more likely to open the newsletter if delivered around the time when they subscribed (if cron becomes not enough, then the cost of sending all the emails might be a bigger issue)
## Some resources used
https://gradientbuttons.colorion.co/
https://codepen.io/alphardex/pen/vYEYGzp
## Commands
Install vercel cli

View File

@@ -1,7 +1,7 @@
import { Analytics } from '@vercel/analytics/react';
import type { Metadata } from 'next';
import { Inter as FontSans } from 'next/font/google';
import { Background } from '../components/custom/background/background';
import { Tiles } from '../components/custom/tiles/tiles';
import { cn } from '../utils/ui';
import './globals.css';
@@ -30,9 +30,9 @@ export default function RootLayout({
fontSans.variable
)}
>
<Background>
<Tiles>
<div style={{ zIndex: 2 }}>{children}</div>
</Background>
</Tiles>
<Analytics />
</body>
</html>

View File

@@ -1,4 +1,5 @@
'use client';
import Link from 'next/link';
import { Card } from '../../components/custom/card';
export default function Privacy() {
@@ -15,12 +16,12 @@ export default function Privacy() {
the Service, You agree to the collection and use of information in
accordance with this Privacy Policy. This Privacy Policy has been
created with the help of the{' '}
<a
<Link
href='https://www.termsfeed.com/privacy-policy-generator/'
target='_blank'
>
Privacy Policy Generator
</a>
</Link>
.
</p>
<br />
@@ -420,9 +421,13 @@ export default function Privacy() {
<ul>
<li>
By visiting this page on our website:{' '}
<a href={'/privacy'} rel='external nofollow noopener' target='_blank'>
<Link
href={'/privacy'}
rel='external nofollow noopener'
target='_blank'
>
Privacy Policy
</a>
</Link>
</li>
</ul>
</div>

View File

@@ -1,9 +0,0 @@
import { Tiles } from './tile/tiles';
type BackgroundProps = {
children: React.ReactNode;
};
export function Background({ children }: BackgroundProps) {
return <Tiles>{children}</Tiles>;
}

View File

@@ -1,3 +1,4 @@
import Link from 'next/link';
import { Button } from '../ui/button';
type LinkProps = {
@@ -5,10 +6,10 @@ type LinkProps = {
text: string;
};
export function Link({ path, text }: LinkProps) {
export function CustomLink({ path, text }: LinkProps) {
return (
<Button asChild>
<a href={path}>{text}</a>
<Link href={path}>{text}</Link>
</Button>
);
}

View File

@@ -1,5 +1,6 @@
import Link from 'next/link';
import { usePathname } from 'next/navigation';
import { Link } from './link';
import { CustomLink } from './customLink';
const links = [{ name: 'Subscribe', path: '/' }];
@@ -11,12 +12,12 @@ function Footer() {
{pathname === '/' ? (
<p className='text-center text-xs text-gray-600'>
By subscribing, you agree to our{' '}
<a
<Link
className='font-medium text-indigo-600 hover:text-indigo-500'
href='/privacy'
>
Privacy Policy
</a>
</Link>
.
</p>
) : (
@@ -25,11 +26,11 @@ function Footer() {
link =>
pathname !== link.path &&
!(pathname === '/confirmation' && link.path === '/') && (
<Link key={link.path} path={link.path} text={link.name} />
<CustomLink key={link.path} path={link.path} text={link.name} />
)
)}
{pathname === '/privacy' && (
<Link path='/unsubscribe' text='Unsubscribe' />
<CustomLink path='/unsubscribe' text='Unsubscribe' />
)}
</ul>
)}

View File

@@ -3,8 +3,8 @@
import { usePathname } from 'next/navigation';
import { useEffect, useState } from 'react';
import { z } from 'zod';
import { NewsTile, NewsTileSchema } from '../../../../utils/schemas';
import { Tile } from './tile';
import { NewsTile, NewsTileSchema } from '../../../utils/schemas';
import { Tile } from './components/tile';
type TilesProps = {
children: React.ReactNode;

View File

@@ -1,4 +1,4 @@
import { Link } from '../custom/link';
import { CustomLink } from '../custom/customLink';
import { Note } from './components/note';
import Template from './template';
@@ -22,7 +22,7 @@ export default function ConfirmationTemplate(code: string) {
justifyContent: 'center'
}}
>
<Link
<CustomLink
path={`${process.env.HOME_URL}/confirmation?code=${code}`}
text='Confirm subscription'
/>

View File

@@ -1,13 +0,0 @@
export const sayings = [
'hot off the press',
'straight from the oven',
"straight from the horse's mouth",
'brand spanking new',
'fresh as a daisy',
'straight out of the box',
'straight off the assembly line',
'hot out of the kitchen',
'just minted',
'freshly brewed',
'just off the production line'
];

View File

@@ -0,0 +1,13 @@
export const sayings = [
'hot off the press',
'straight from the oven',
"straight from the horse's mouth",
'brand spanking new',
'fresh as a daisy',
'straight out of the box',
'straight off the assembly line',
'hot out of the kitchen',
'just minted',
'freshly brewed',
'just off the production line'
];

View File

@@ -1,12 +1,11 @@
import { z } from 'zod';
import { NewsSchema } from '../../utils/schemas';
import { sayings } from './helpers/newsletterSayings';
import { sayings } from './helpers/sayings';
import Template from './template';
export default function NewsletterTemplate(
stories: z.infer<typeof NewsSchema>[]
) {
return {
subject: `What's new from the Hackernews forum?`,
template: (

View File

@@ -1,4 +1,4 @@
import { Link } from '../custom/link';
import { CustomLink } from '../custom/customLink';
import { Note } from './components/note';
import Template from './template';
@@ -22,7 +22,7 @@ export default function UnsubscribeTemplate() {
justifyContent: 'center'
}}
>
<Link path='/' text='Re-subscribe' />
<CustomLink path='/' text='Re-subscribe' />
</div>
<Note>
If you have any questions or concerns, please feel free to{' '}

180
yarn.lock
View File

@@ -35,22 +35,22 @@
js-tokens "^4.0.0"
"@babel/runtime@^7.13.10", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.7":
version "7.23.8"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.8.tgz#8ee6fe1ac47add7122902f257b8ddf55c898f650"
integrity sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==
version "7.23.9"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.9.tgz#47791a15e4603bb5f905bc0753801cf21d6345f7"
integrity sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==
dependencies:
regenerator-runtime "^0.14.0"
"@commitlint/cli@^18.4.3":
version "18.5.0"
resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-18.5.0.tgz#e485c29d51b66890cd93a4c7f3f1e5ed15101db2"
integrity sha512-g/N0mJBrHcTdiccUpJknS6/ru45eIEAZyhEy9sL2ILjzK2IVNrpzlAPtxEr8bZCZLGwPBUrQ5UCIIu4uebhImw==
version "18.6.0"
resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-18.6.0.tgz#f065e0514f3870b6dc9a3c608a78820806b46527"
integrity sha512-FiH23cr9QG8VdfbmvJJZmdfHGVMCouOOAzoXZ3Cd7czGC52RbycwNt8YCI7SA69pAl+t30vh8LMaO/N+kcel6w==
dependencies:
"@commitlint/format" "^18.4.4"
"@commitlint/lint" "^18.5.0"
"@commitlint/load" "^18.5.0"
"@commitlint/read" "^18.4.4"
"@commitlint/types" "^18.4.4"
"@commitlint/format" "^18.6.0"
"@commitlint/lint" "^18.6.0"
"@commitlint/load" "^18.6.0"
"@commitlint/read" "^18.6.0"
"@commitlint/types" "^18.6.0"
execa "^5.0.0"
lodash.isfunction "^3.0.9"
resolve-from "5.0.0"
@@ -58,26 +58,26 @@
yargs "^17.0.0"
"@commitlint/config-conventional@^18.4.3":
version "18.5.0"
resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-18.5.0.tgz#b50b317dfef81f34ff46ef581a5a4a11dafcae59"
integrity sha512-XGmU4u3Z7bCn0H0nTEG9LUn6hMDUIPP4P6dun7PKFhtnt/wwiKAqmPj+QRmFiqWjkOWcmrh7w7xRiDL32cWS5g==
version "18.6.0"
resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-18.6.0.tgz#88da3e34e2bfcd8a5d46bcc472553e7f63f35323"
integrity sha512-CDCOf2eJz9D/TL44IBks0stM9TmdLCNE2B48owIU3YCadwzts/bobXPScagIgPQF6hhKYMEdj5zpUDlmbwuqwQ==
dependencies:
conventional-changelog-conventionalcommits "^7.0.2"
"@commitlint/config-validator@^18.5.0":
version "18.5.0"
resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-18.5.0.tgz#3ddd3f94001ebbc5a61c7190fa7a51fab289690f"
integrity sha512-mDAA6WQPjh9Ida8ACdInDylBQcqeUD2gBHE+dQu+B3OIHiWiSSrq4F2+wg3nDU9EzfcQSwPwYL+QbMmiW5SmLA==
"@commitlint/config-validator@^18.6.0":
version "18.6.0"
resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-18.6.0.tgz#ea1e04e92829dd7b90cea444f245b0bdefa0a586"
integrity sha512-Ptfa865arNozlkjxrYG3qt6wT9AlhNUHeuDyKEZiTL/l0ftncFhK/KN0t/EAMV2tec+0Mwxo0FmhbESj/bI+1g==
dependencies:
"@commitlint/types" "^18.4.4"
"@commitlint/types" "^18.6.0"
ajv "^8.11.0"
"@commitlint/ensure@^18.4.4":
version "18.4.4"
resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-18.4.4.tgz#5e142e489e32f6a22865cea05ca369a95a4b77a1"
integrity sha512-KjD19p6julB5WrQL+Cd8p+AePwpl1XzGAjB0jnuFMKWtji9L7ucCZUKDstGjlkBZGGzH/nvdB8K+bh5K27EVUg==
"@commitlint/ensure@^18.6.0":
version "18.6.0"
resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-18.6.0.tgz#3f3dc09d99016eaab0da9423123effd820d11931"
integrity sha512-xY07NmOBJ7JuhX3tic021PaeLepZARIQyqpAQoNQZoml1keBFfB6MbA7XlWZv0ebbarUFE4yhKxOPw+WFv7/qw==
dependencies:
"@commitlint/types" "^18.4.4"
"@commitlint/types" "^18.6.0"
lodash.camelcase "^4.3.0"
lodash.kebabcase "^4.1.1"
lodash.snakecase "^4.1.1"
@@ -89,41 +89,41 @@
resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-18.4.4.tgz#ade986742c1944c8162a54288747e54a8c6146b5"
integrity sha512-a37Nd3bDQydtg9PCLLWM9ZC+GO7X5i4zJvrggJv5jBhaHsXeQ9ZWdO6ODYR+f0LxBXXNYK3geYXJrCWUCP8JEg==
"@commitlint/format@^18.4.4":
version "18.4.4"
resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-18.4.4.tgz#51996ba0a7eac14f7f8991cff8700e4a2fd86ba7"
integrity sha512-2v3V5hVlv0R3pe7p66IX5F7cjeVvGM5JqITRIbBCFvGHPJ/CG74rjTkAu0RBEiIhlk3eOaLjVGq3d5falPkLBA==
"@commitlint/format@^18.6.0":
version "18.6.0"
resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-18.6.0.tgz#e13ef8419cd8eb37be5825a2e84e73cabbfb56ad"
integrity sha512-8UNWfs2slPPSQiiVpLGJTnPHv7Jkd5KYxfbNXbmLL583bjom4RrylvyrCVnmZReA8nNad7pPXq6mDH4FNVj6xg==
dependencies:
"@commitlint/types" "^18.4.4"
"@commitlint/types" "^18.6.0"
chalk "^4.1.0"
"@commitlint/is-ignored@^18.4.4":
version "18.4.4"
resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-18.4.4.tgz#3fbf2a55a960ccf037e79ad4610091a693800680"
integrity sha512-rXWes9owKBTjfTr6Od7YlflRg4N+ngkOH+dUZhk0qL/XQb26mHz0EgVgdixMVBac1OsohRwJaLmVHX+5F6vfmg==
"@commitlint/is-ignored@^18.6.0":
version "18.6.0"
resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-18.6.0.tgz#d15ab04f547f7554cc3377d50f8e19178502b8af"
integrity sha512-Xjx/ZyyJ4FdLuz0FcOvqiqSFgiO2yYj3QN9XlvyrxqbXTxPVC7QFEXJYBVPulUSN/gR7WXH1Udw+HYYfD17xog==
dependencies:
"@commitlint/types" "^18.4.4"
"@commitlint/types" "^18.6.0"
semver "7.5.4"
"@commitlint/lint@^18.5.0":
version "18.5.0"
resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-18.5.0.tgz#83c7434e969d04aaa84c5129c17b3dcde33d4650"
integrity sha512-4VbfTGTZf/aDaOn+vednMQFu5EIKfERvv7j8La3etQCra0O2QMrZL28xugTroYekawpTkiWWvLswtpVfabIbgw==
"@commitlint/lint@^18.6.0":
version "18.6.0"
resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-18.6.0.tgz#f54c856840a6238e0c2972588c2dc986317f1b7b"
integrity sha512-ycbuDWfyykPmslgiHzhz8dL6F0BJYltXLVfc+M49z0c+FNITM0v+r0Vd2+Tdtq06VTc894p2+YSmZhulY8Jn3Q==
dependencies:
"@commitlint/is-ignored" "^18.4.4"
"@commitlint/parse" "^18.4.4"
"@commitlint/rules" "^18.4.4"
"@commitlint/types" "^18.4.4"
"@commitlint/is-ignored" "^18.6.0"
"@commitlint/parse" "^18.6.0"
"@commitlint/rules" "^18.6.0"
"@commitlint/types" "^18.6.0"
"@commitlint/load@^18.5.0":
version "18.5.0"
resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-18.5.0.tgz#b14eef9306c2500594d8a7f1e4a8d68cb2562439"
integrity sha512-vpyGgk7rzbFsU01NVwPNC/WetHFP0EwSYnQ1R833SJFHkEo+cWvqoVlw/VoZwBMoI6sF5/lwEdKzFDr1DHJ6+A==
"@commitlint/load@^18.6.0":
version "18.6.0"
resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-18.6.0.tgz#98108294b9383aa2905781b192215df4718babb7"
integrity sha512-RRssj7TmzT0bowoEKlgwg8uQ7ORXWkw7lYLsZZBMi9aInsJuGNLNWcMxJxRZbwxG3jkCidGUg85WmqJvRjsaDA==
dependencies:
"@commitlint/config-validator" "^18.5.0"
"@commitlint/config-validator" "^18.6.0"
"@commitlint/execute-rule" "^18.4.4"
"@commitlint/resolve-extends" "^18.5.0"
"@commitlint/types" "^18.4.4"
"@commitlint/resolve-extends" "^18.6.0"
"@commitlint/types" "^18.6.0"
chalk "^4.1.0"
cosmiconfig "^8.3.6"
cosmiconfig-typescript-loader "^5.0.0"
@@ -137,46 +137,46 @@
resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-18.4.4.tgz#811682a0d147a24e5c467acdb52071434df2b9f5"
integrity sha512-lHF95mMDYgAI1LBXveJUyg4eLaMXyOqJccCK3v55ZOEUsMPrDi8upqDjd/NmzWmESYihaOMBTAnxm+6oD1WoDQ==
"@commitlint/parse@^18.4.4":
version "18.4.4"
resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-18.4.4.tgz#5c8f515d4dbebe9b7ccfcd1701e58446e2bec6da"
integrity sha512-99G7dyn/OoyNWXJni0Ki0K3aJd01pEb/Im/Id6y4X7PN+kGOahjz2z/cXYYHn7xDdooqFVdiVrVLeChfgpWZ2g==
"@commitlint/parse@^18.6.0":
version "18.6.0"
resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-18.6.0.tgz#ae19ff8ceb0c8ffab131158829b06b505b9921fd"
integrity sha512-Y/G++GJpATFw54O0jikc/h2ibyGHgghtPnwsOk3O/aU092ydJ5XEHYcd7xGNQYuLweLzQis2uEwRNk9AVIPbQQ==
dependencies:
"@commitlint/types" "^18.4.4"
"@commitlint/types" "^18.6.0"
conventional-changelog-angular "^7.0.0"
conventional-commits-parser "^5.0.0"
"@commitlint/read@^18.4.4":
version "18.4.4"
resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-18.4.4.tgz#7f6848edd3210bf82e6aaa0cd30e72e7e669e009"
integrity sha512-r58JbWky4gAFPea/CZmvlqP9Ehbs+8gSEUqhIJOojKzTc3xlxFnZUDVPcEnnaqzQEEoV6C69VW7xuzdcBlu/FQ==
"@commitlint/read@^18.6.0":
version "18.6.0"
resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-18.6.0.tgz#324ea1fa625f88427780df23fffe4a92d383d665"
integrity sha512-w39ji8VfWhPKRquPhRHB3Yd8XIHwaNHgOh28YI1QEmZ59qVpuVUQo6h/NsVb+uoC6LbXZiofTZv2iFR084jKEA==
dependencies:
"@commitlint/top-level" "^18.4.4"
"@commitlint/types" "^18.4.4"
"@commitlint/types" "^18.6.0"
git-raw-commits "^2.0.11"
minimist "^1.2.6"
"@commitlint/resolve-extends@^18.5.0":
version "18.5.0"
resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-18.5.0.tgz#ea955fc9455f70a5389cdc9633c78132c8008ed2"
integrity sha512-OxCYOMnlkOEEIkwTaRiFjHyuWBq962WBZQVHfMHej8tr3d+SfjznvqZhPmW8/SuqtfmGEiJPGWUNOxgwH+O0MA==
"@commitlint/resolve-extends@^18.6.0":
version "18.6.0"
resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-18.6.0.tgz#db55be2b32e12593bc98dc44c6d9a9d90941bab4"
integrity sha512-k2Xp+Fxeggki2i90vGrbiLDMefPius3zGSTFFlRAPKce/SWLbZtI+uqE9Mne23mHO5lmcSV8z5m6ziiJwGpOcg==
dependencies:
"@commitlint/config-validator" "^18.5.0"
"@commitlint/types" "^18.4.4"
"@commitlint/config-validator" "^18.6.0"
"@commitlint/types" "^18.6.0"
import-fresh "^3.0.0"
lodash.mergewith "^4.6.2"
resolve-from "^5.0.0"
resolve-global "^1.0.0"
"@commitlint/rules@^18.4.4":
version "18.4.4"
resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-18.4.4.tgz#859e920a4f0053ae27e4cdd65f68e7576a5ab53f"
integrity sha512-6Uzlsnl/GljEI+80NWjf4ThOfR8NIsbm18IfXYuCEchlwMHSxiuYG4rHSK5DNmG/+MIo8eR5VdQ0gQyt7kWzAA==
"@commitlint/rules@^18.6.0":
version "18.6.0"
resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-18.6.0.tgz#6d933e2de5639b75b4946120b3880e72e66a6051"
integrity sha512-pTalvCEvuCWrBWZA/YqO/3B3nZnY3Ncc+TmQsRajBdC1tkQIm5Iovdo4Ec7f2Dw1tVvpYMUUNAgcWqsY0WckWg==
dependencies:
"@commitlint/ensure" "^18.4.4"
"@commitlint/ensure" "^18.6.0"
"@commitlint/message" "^18.4.4"
"@commitlint/to-lines" "^18.4.4"
"@commitlint/types" "^18.4.4"
"@commitlint/types" "^18.6.0"
execa "^5.0.0"
"@commitlint/to-lines@^18.4.4":
@@ -191,10 +191,10 @@
dependencies:
find-up "^5.0.0"
"@commitlint/types@^18.4.4":
version "18.4.4"
resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-18.4.4.tgz#dae9e0ce6a6728a36b8982ff301af0170bbe0d38"
integrity sha512-/FykLtodD8gKs3+VNkAUwofu4LBHankclj+I8fB2jTRvG6PV7k/OUt4P+VbM7ip853qS4F0g7Z6hLNa6JeMcAQ==
"@commitlint/types@^18.6.0":
version "18.6.0"
resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-18.6.0.tgz#3d3493cb5910f60f3749a8eb56aca47dc2e1b662"
integrity sha512-oavoKLML/eJa2rJeyYSbyGAYzTxQ6voG5oeX3OrxpfrkRWhJfm4ACnhoRf5tgiybx2MZ+EVFqC1Lw3W8/uwpZA==
dependencies:
chalk "^4.1.0"
@@ -474,9 +474,9 @@
react-dom "18.2.0"
"@rushstack/eslint-patch@^1.3.3":
version "1.7.0"
resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.7.0.tgz#b5bc1e081428794f6a4d239707b359404be35ce2"
integrity sha512-Jh4t/593gxs0lJZ/z3NnasKlplXT2f+4y/LZYuaKZW5KAaiVFL/fThhs+17EbUd53jUVJ0QudYCBGbN/psvaqg==
version "1.7.1"
resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.7.1.tgz#29e6926204b982721ff721240807527309825a1f"
integrity sha512-irBNt5094vHloql4QzY8RdeI8Tns2kGsaiJ/m6jENWx9xCz/m/F4gKQ1dAailFmpL0Id9tgWLqZbTUO4SINM/Q==
"@selderee/plugin-htmlparser2@^0.11.0":
version "0.11.0"
@@ -509,9 +509,9 @@
integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==
"@types/node@^20":
version "20.11.5"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.5.tgz#be10c622ca7fcaa3cf226cf80166abc31389d86e"
integrity sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==
version "20.11.6"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.6.tgz#6adf4241460e28be53836529c033a41985f85b6e"
integrity sha512-+EOokTnksGVgip2PbYbr3xnR7kZigh4LbybAfBAw5BpnQ+FqBYUsvCEjYd70IXKlbohQ64mzEYmMtlWUY8q//Q==
dependencies:
undici-types "~5.26.4"
@@ -971,9 +971,9 @@ camelcase@^5.3.1:
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
caniuse-lite@^1.0.30001565, caniuse-lite@^1.0.30001578, caniuse-lite@^1.0.30001579:
version "1.0.30001579"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz#45c065216110f46d6274311a4b3fcf6278e0852a"
integrity sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==
version "1.0.30001580"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001580.tgz#e3c76bc6fe020d9007647044278954ff8cd17d1e"
integrity sha512-mtj5ur2FFPZcCEpXFy8ADXbDACuNFXg6mxVDqp7tqooX6l3zwm+d8EPoeOSIFRDvHs8qu7/SLFOGniULkcH2iA==
chalk@5.3.0:
version "5.3.0"
@@ -1342,9 +1342,9 @@ editorconfig@^1.0.3:
semver "^7.5.3"
electron-to-chromium@^1.4.601:
version "1.4.641"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.641.tgz#7439993ee3df558bbb78d5459c15cfbde5bf6d60"
integrity sha512-JetAF3M5Lr9hwzDe3oMmWFOydlclqt2loEljxc0AAP5NYM170sSW+F5/cn5ROBfjx5LdmzeeAgWnyAU9cjPhmA==
version "1.4.645"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.645.tgz#117f964252eb2f0ff00fc7360cb3080e2cf66e3c"
integrity sha512-EeS1oQDCmnYsRDRy2zTeC336a/4LZ6WKqvSaM1jLocEk5ZuyszkQtCpsqvuvaIXGOUjwtvF6LTcS8WueibXvSw==
emoji-regex@^10.3.0:
version "10.3.0"
@@ -3597,9 +3597,9 @@ spdx-correct@^3.0.0:
spdx-license-ids "^3.0.0"
spdx-exceptions@^2.1.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
version "2.4.0"
resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz#c07a4ede25b16e4f78e6707bbd84b15a45c19c1b"
integrity sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==
spdx-expression-parse@^3.0.0:
version "3.0.1"