mirror of
https://github.com/jakejarvis/jarv.is.git
synced 2025-04-26 09:25:22 -04:00
restore local video assets now that webpack (and remark) can process them
This commit is contained in:
parent
475407c6c6
commit
e865d9d8e5
@ -27,10 +27,11 @@ NEXT_PUBLIC_GISCUS_CATEGORY_ID=
|
||||
# currently set automatically by Vercel's Resend integration.
|
||||
# https://vercel.com/integrations/resend
|
||||
RESEND_API_KEY=
|
||||
# optional. send submissions from noreply@{RESEND_DOMAIN}; defaults to onboarding@resend.dev. sender's real email is
|
||||
# passed via a Reply-To header. setting this makes zero difference to the user.
|
||||
# https://resend.com/docs/send-with-nodemailer-smtp
|
||||
RESEND_DOMAIN=
|
||||
# optional, but will throw a warning. send submissions from an approved domain (or subdomain) on the resend account.
|
||||
# defaults to onboarding@resend.dev.
|
||||
# sender's real email is passed via a Reply-To header, setting this makes zero difference to the user.
|
||||
# https://resend.com/domains
|
||||
RESEND_FROM_EMAIL=
|
||||
|
||||
# required for production. site key must be prefixed with NEXT_PUBLIC_ since it is used to embed the captcha widget.
|
||||
# falls back to testing keys if not set or in dev environment:
|
||||
|
BIN
app/birthday/birthday.mp4
Normal file
BIN
app/birthday/birthday.mp4
Normal file
Binary file not shown.
BIN
app/birthday/birthday.webm
Normal file
BIN
app/birthday/birthday.webm
Normal file
Binary file not shown.
@ -5,6 +5,8 @@ import { addMetadata } from "../../lib/helpers/metadata";
|
||||
import { BASE_URL } from "../../lib/config/constants";
|
||||
import type { VideoObject } from "schema-dts";
|
||||
|
||||
import mp4 from "./birthday.mp4";
|
||||
import webm from "./birthday.webm";
|
||||
import thumbnail from "./thumbnail.png";
|
||||
|
||||
export const metadata = addMetadata({
|
||||
@ -25,8 +27,7 @@ const Page = () => {
|
||||
name: metadata.title as string,
|
||||
description: metadata.description as string,
|
||||
thumbnailUrl: `${BASE_URL}${thumbnail.src}`,
|
||||
contentUrl:
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/birthday/birthday-8iayCEy1jfEHpNGZkdBPvxPFOuGz0g.mp4",
|
||||
contentUrl: `${BASE_URL}${webm}`,
|
||||
uploadDate: "1996-02-06T00:00:00Z",
|
||||
duration: "PT6M10S",
|
||||
}}
|
||||
@ -34,14 +35,7 @@ const Page = () => {
|
||||
|
||||
<PageTitle canonical="/birthday">1996.mov</PageTitle>
|
||||
|
||||
<Video
|
||||
src={[
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/birthday/birthday-9HG65MrSNWJjzg679VtirX7MLPpAaV.webm",
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/birthday/birthday-8iayCEy1jfEHpNGZkdBPvxPFOuGz0g.mp4",
|
||||
]}
|
||||
poster={thumbnail.src}
|
||||
crossOrigin="anonymous"
|
||||
/>
|
||||
<Video src={[webm, mp4]} poster={thumbnail.src} />
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
@ -64,17 +64,19 @@ export const sendMessage = async (
|
||||
};
|
||||
}
|
||||
|
||||
if (!process.env.RESEND_FROM_EMAIL) {
|
||||
console.warn("[contact form] RESEND_FROM_EMAIL not set, falling back to onboarding@resend.dev.");
|
||||
}
|
||||
|
||||
// send email
|
||||
const resend = new Resend(process.env.RESEND_API_KEY);
|
||||
await resend.emails.send({
|
||||
from: `${validatedFields.data.name} <${process.env.RESEND_DOMAIN ? `noreply@${process.env.RESEND_DOMAIN}` : "onboarding@resend.dev"}>`,
|
||||
from: `${validatedFields.data.name} <${process.env.RESEND_FROM_EMAIL ?? "onboarding@resend.dev"}>`,
|
||||
replyTo: `${validatedFields.data.name} <${validatedFields.data.email}>`,
|
||||
to: [config.authorEmail],
|
||||
subject: `[${config.siteName}] Contact Form Submission`,
|
||||
text: validatedFields.data.message,
|
||||
});
|
||||
|
||||
return { success: true, message: "Thanks! You should hear from me soon.", payload: formData };
|
||||
} catch (error) {
|
||||
console.error("[contact form] fatal error:", error);
|
||||
|
||||
@ -85,4 +87,6 @@ export const sendMessage = async (
|
||||
payload: formData,
|
||||
};
|
||||
}
|
||||
|
||||
return { success: true, message: "Thanks! You should hear from me soon.", payload: formData };
|
||||
};
|
||||
|
BIN
app/hillary/convention.mp4
Normal file
BIN
app/hillary/convention.mp4
Normal file
Binary file not shown.
BIN
app/hillary/convention.webm
Normal file
BIN
app/hillary/convention.webm
Normal file
Binary file not shown.
@ -6,6 +6,9 @@ import { addMetadata } from "../../lib/helpers/metadata";
|
||||
import { BASE_URL } from "../../lib/config/constants";
|
||||
import type { VideoObject } from "schema-dts";
|
||||
|
||||
import webm from "./convention.webm";
|
||||
import mp4 from "./convention.mp4";
|
||||
import subtitles from "./subs.en.vtt";
|
||||
import thumbnail from "./thumbnail.png";
|
||||
|
||||
export const metadata = addMetadata({
|
||||
@ -26,8 +29,7 @@ const Page = () => {
|
||||
name: metadata.title as string,
|
||||
description: metadata.description as string,
|
||||
thumbnailUrl: `${BASE_URL}${thumbnail.src}`,
|
||||
contentUrl:
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/hillary/convention-720p-YLGreYE59PzmPo4epB21HQG6jXgYL5.mp4",
|
||||
contentUrl: `${BASE_URL}${webm}`,
|
||||
uploadDate: "2016-07-25T00:00:00Z",
|
||||
duration: "PT1M51S",
|
||||
}}
|
||||
@ -35,15 +37,7 @@ const Page = () => {
|
||||
|
||||
<PageTitle canonical="/hillary">HRC.mov</PageTitle>
|
||||
|
||||
<Video
|
||||
src={[
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/hillary/convention-720p-JbNlxyfqE3nz4ACjtfbpbjcR2gOY89.webm",
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/hillary/convention-720p-YLGreYE59PzmPo4epB21HQG6jXgYL5.mp4",
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/hillary/subs.en-k2txNECkQvwxWP8DjfP6GPBPo20vnO.vtt",
|
||||
]}
|
||||
poster={thumbnail.src}
|
||||
crossOrigin="anonymous"
|
||||
/>
|
||||
<Video src={[webm, mp4, subtitles]} poster={thumbnail.src} />
|
||||
|
||||
<p
|
||||
style={{
|
||||
|
108
app/hillary/subs.en.vtt
Normal file
108
app/hillary/subs.en.vtt
Normal file
@ -0,0 +1,108 @@
|
||||
WEBVTT
|
||||
Kind: captions
|
||||
Language: en
|
||||
|
||||
00:00:00.030 --> 00:00:03.210
|
||||
All right, well let's listen
|
||||
here to the video at the Democratic
|
||||
|
||||
00:00:03.210 --> 00:00:04.880
|
||||
National Convention on this issue.
|
||||
|
||||
00:00:04.880 --> 00:00:08.340
|
||||
You know, when I came here to New Hampshire
|
||||
|
||||
00:00:08.340 --> 00:00:14.269
|
||||
the first time in this campaign and
|
||||
heard about the heroin epidemic
|
||||
|
||||
00:00:14.269 --> 00:00:16.660
|
||||
The growing drug problem in our area...
|
||||
|
||||
00:00:16.780 --> 00:00:19.604
|
||||
We're all losing fathers, brothers, sons, mothers...
|
||||
|
||||
00:00:19.604 --> 00:00:22.040
|
||||
The numbers of people who are being affected
|
||||
|
||||
00:00:22.040 --> 00:00:27.000
|
||||
If you have been impacted by your own or
|
||||
someone else's use of substances, would
|
||||
|
||||
00:00:27.000 --> 00:00:28.510
|
||||
you just raise your hand?
|
||||
|
||||
00:00:28.510 --> 00:00:31.470
|
||||
I didn't even know what was wrong with me until I
|
||||
|
||||
00:00:31.470 --> 00:00:35.400
|
||||
found out that I was I was an addict.
|
||||
|
||||
00:00:35.400 --> 00:00:38.480
|
||||
This problem touches everybody...
|
||||
|
||||
00:00:38.480 --> 00:00:41.484
|
||||
My children suffered, my family suffered...
|
||||
|
||||
00:00:41.484 --> 00:00:44.280
|
||||
Meeting grandmothers raising their grandchildren...
|
||||
|
||||
00:00:44.280 --> 00:00:48.800
|
||||
All of my friends are raising
|
||||
their grandchildren because of addiction
|
||||
|
||||
00:00:48.800 --> 00:00:53.700
|
||||
I think you're very brave and
|
||||
very loving to take on this responsibility.
|
||||
|
||||
00:00:53.700 --> 00:00:56.720
|
||||
It is plaguing families.
|
||||
I don't want to
|
||||
|
||||
00:00:56.730 --> 00:01:00.180
|
||||
go to more funerals. I'm going to one this weekend.
|
||||
I didn't know if I wanted
|
||||
|
||||
00:01:00.180 --> 00:01:04.980
|
||||
to do better. Addiction had full control
|
||||
over my heart and soul.
|
||||
|
||||
00:01:04.980 --> 00:01:10.880
|
||||
I wouldn't have necessarily known that if I hadn't been
|
||||
sitting in a little cafe in Keene
|
||||
|
||||
00:01:10.880 --> 00:01:16.140
|
||||
listening to people tell me about what
|
||||
was breaking their hearts and what they
|
||||
|
||||
00:01:16.140 --> 00:01:19.660
|
||||
wanted their president to know.
|
||||
|
||||
00:01:19.660 --> 00:01:21.299
|
||||
We need the voice of those who are using, that is
|
||||
|
||||
00:01:21.299 --> 00:01:24.480
|
||||
the way in which we can make an impact
|
||||
on this disease.
|
||||
|
||||
00:01:24.480 --> 00:01:26.860
|
||||
We can't walk away from these stories.
|
||||
|
||||
00:01:26.860 --> 00:01:29.900
|
||||
These are our children, these are our friends, our neighbors,
|
||||
|
||||
00:01:29.900 --> 00:01:34.160
|
||||
our loved ones. This is not something we can
|
||||
just brush under the rug and wish it would
|
||||
|
||||
00:01:34.160 --> 00:01:39.180
|
||||
go away. We need to drag it out of the
|
||||
shadows, we need to hold it up to the light
|
||||
|
||||
00:01:39.180 --> 00:01:41.740
|
||||
Everybody should feel that they are
|
||||
|
||||
00:01:41.740 --> 00:01:50.960
|
||||
valued, they are cared about, and they
|
||||
have a president who sees them
|
||||
|
BIN
app/leo/leo.mp4
Normal file
BIN
app/leo/leo.mp4
Normal file
Binary file not shown.
BIN
app/leo/leo.webm
Normal file
BIN
app/leo/leo.webm
Normal file
Binary file not shown.
@ -6,6 +6,9 @@ import { addMetadata } from "../../lib/helpers/metadata";
|
||||
import { BASE_URL } from "../../lib/config/constants";
|
||||
import type { VideoObject } from "schema-dts";
|
||||
|
||||
import mp4 from "./leo.mp4";
|
||||
import webm from "./leo.webm";
|
||||
import subtitles from "./subs.en.vtt";
|
||||
import thumbnail from "./thumbnail.png";
|
||||
|
||||
export const metadata = addMetadata({
|
||||
@ -26,8 +29,7 @@ const Page = () => {
|
||||
name: metadata.title as string,
|
||||
description: metadata.description as string,
|
||||
thumbnailUrl: `${BASE_URL}${thumbnail.src}`,
|
||||
contentUrl:
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/leo/leo-x4E4eG4YPo22KSTJuZwAk6fpNF1NgG.mp4",
|
||||
contentUrl: `${BASE_URL}${webm}`,
|
||||
uploadDate: "2007-05-10T00:00:00Z",
|
||||
duration: "PT1M48S",
|
||||
}}
|
||||
@ -35,15 +37,7 @@ const Page = () => {
|
||||
|
||||
<PageTitle canonical="/leo">TheLab.mov</PageTitle>
|
||||
|
||||
<Video
|
||||
src={[
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/leo/leo-lVkSAtUWCqQaDCMqo3SGcuBiSlNWod.webm",
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/leo/leo-x4E4eG4YPo22KSTJuZwAk6fpNF1NgG.mp4",
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/leo/subs.en-HRGnRBH8w8CEyM644OV3qmCdm9Aj61.vtt",
|
||||
]}
|
||||
poster={thumbnail.src}
|
||||
crossOrigin="anonymous"
|
||||
/>
|
||||
<Video src={[webm, mp4, subtitles]} poster={thumbnail.src} />
|
||||
|
||||
<p
|
||||
style={{
|
||||
|
111
app/leo/subs.en.vtt
Normal file
111
app/leo/subs.en.vtt
Normal file
@ -0,0 +1,111 @@
|
||||
WEBVTT
|
||||
|
||||
00:00:00.000 --> 00:00:05.029
|
||||
["The Lab" Theme Music]
|
||||
|
||||
00:00:05.029 --> 00:00:08.760
|
||||
Welcome back to "The Lab with Leo," I'm Kate Abraham and now it's time for our
|
||||
|
||||
00:00:08.760 --> 00:00:13.000
|
||||
Facebook app of the day. And in honor of
|
||||
the lovely Amber – wasn't it great to see Amber?
|
||||
|
||||
00:00:13.040 --> 00:00:16.470
|
||||
Oh, it was so nice to see her.
|
||||
She's looking so tan!
|
||||
|
||||
00:00:16.470 --> 00:00:21.140
|
||||
Toronto weather.
|
||||
Yeah, really? I think she was at Prince Edward Island for a few days
|
||||
|
||||
00:00:21.140 --> 00:00:26.380
|
||||
for Canada Day.
|
||||
So she's out there like this, tanning in the ocean. Good for her.
|
||||
|
||||
00:00:26.380 --> 00:00:28.060
|
||||
She knows how to enjoy herself.
|
||||
[laughs]
|
||||
|
||||
00:00:28.060 --> 00:00:30.740
|
||||
So in honor of Amber, our Facebook app of the day is
|
||||
|
||||
00:00:30.740 --> 00:00:35.360
|
||||
Powncer, or Poncer or Punser
|
||||
|
||||
00:00:35.360 --> 00:00:39.000
|
||||
However you want to say it, I say Powncer.
|
||||
So there's your Pownce page.
|
||||
|
||||
00:00:39.000 --> 00:00:44.520
|
||||
So what you do is, basically, it literally updates your most recent post on Pownce.
|
||||
So literally I've just put here
|
||||
|
||||
00:00:44.520 --> 00:00:49.200
|
||||
"Playing with Pownce," then if I just post this, and what will happen is it'll automatically
|
||||
|
||||
00:00:49.200 --> 00:00:52.460
|
||||
I bet you've done this in advance, it'll
|
||||
automatically go through to my actual
|
||||
|
||||
00:00:52.460 --> 00:00:56.420
|
||||
site on Facebook and as you can see, you can see exactly what I'm doing
|
||||
|
||||
00:00:56.420 --> 00:00:59.000
|
||||
And then can they click that and takes
|
||||
it to your Pownce page?
|
||||
Yeah, then you can
|
||||
|
||||
00:00:59.000 --> 00:01:02.860
|
||||
reply to me. Oh that's neat!
|
||||
Then what'll happen, you can basically send me a reply.
|
||||
|
||||
00:01:02.860 --> 00:01:06.460
|
||||
You know who wrote that? I don't know.
|
||||
Jake Jarvis wrote that.
|
||||
|
||||
00:01:06.479 --> 00:01:10.560
|
||||
And I know who Jake Jarvis is, he's on my
|
||||
Facebook friends list.
|
||||
|
||||
00:01:10.560 --> 00:01:14.250
|
||||
He's a young guy, I think he's a high school kid, the son of Jeff Jarvis, who's
|
||||
|
||||
00:01:14.250 --> 00:01:18.450
|
||||
a very well known media critic.
|
||||
These kids freak me out. Isn't it neat?
|
||||
|
||||
00:01:18.450 --> 00:01:22.590
|
||||
Jake's written some great applications
|
||||
How old is he?
|
||||
I don't know, I think 16 or 17.
|
||||
|
||||
00:01:22.590 --> 00:01:26.100
|
||||
That scares me.
|
||||
He's written a lot, he's one of the best Facebook developers out there.
|
||||
|
||||
00:01:26.100 --> 00:01:29.310
|
||||
Did a nice job with that.
|
||||
That's fantastic.
|
||||
Isn't that great? I love it, that's so good.
|
||||
|
||||
00:01:29.310 --> 00:01:31.860
|
||||
But for more details, obviously Facebook
|
||||
apps
|
||||
|
||||
00:01:31.860 --> 00:01:37.080
|
||||
I said facebook.com/apps.
|
||||
There's lots of them, there's thousands.
|
||||
So many on there.
|
||||
|
||||
00:01:37.080 --> 00:01:41.100
|
||||
There's a lot of bad ones but some really good ones.
|
||||
Well that's what you're here for, to tell us which ones are good.
|
||||
|
||||
00:01:41.100 --> 00:01:44.540
|
||||
Exactly, this was a good one, I like it.
|
||||
She installs them all so that you can
|
||||
|
||||
00:01:44.540 --> 00:01:48.220
|
||||
tell, you got like a page this long!
|
||||
You just keep scrolling, scrolling, scrolling...
|
||||
[laughs]
|
Binary file not shown.
Before Width: | Height: | Size: 528 KiB |
BIN
app/not-found.mp4
Normal file
BIN
app/not-found.mp4
Normal file
Binary file not shown.
@ -1,8 +1,8 @@
|
||||
import Image from "../components/Image";
|
||||
import Video from "../components/Video";
|
||||
import Link from "../components/Link";
|
||||
import type { Metadata } from "next";
|
||||
|
||||
import notFoundGif from "./not-found.gif";
|
||||
import notFoundVideo from "./not-found.mp4";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Page Not Found",
|
||||
@ -16,9 +16,9 @@ export const metadata: Metadata = {
|
||||
const Page = () => {
|
||||
return (
|
||||
<div style={{ textAlign: "center" }}>
|
||||
<Image src={notFoundGif} alt="Angry panda" placeholder="empty" unoptimized />
|
||||
<Video src={notFoundVideo} autoPlay style={{ maxWidth: 480, height: "auto" }} />
|
||||
|
||||
<h1 style={{ margin: "0.2em auto" }}>Page Not Found 😢</h1>
|
||||
<h1 style={{ margin: "0.6em auto 0.2em" }}>Page Not Found 😢</h1>
|
||||
|
||||
<Link href="/">Go home?</Link>
|
||||
</div>
|
||||
|
@ -1,5 +1,7 @@
|
||||
.player {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
max-height: 500px;
|
||||
}
|
||||
|
@ -4,17 +4,14 @@ import type { ComponentPropsWithoutRef } from "react";
|
||||
import styles from "./Video.module.css";
|
||||
|
||||
export type VideoProps = Omit<Partial<ComponentPropsWithoutRef<"video">>, "src"> & {
|
||||
src: string[];
|
||||
poster?: string;
|
||||
autoplay?: boolean;
|
||||
src: string | string[] | undefined;
|
||||
};
|
||||
|
||||
const Video = ({ src, poster, autoplay = false, className, ...rest }: VideoProps) => {
|
||||
const Video = ({ src, autoPlay, className, ...rest }: VideoProps) => {
|
||||
return (
|
||||
<video
|
||||
className={clsx(styles.player, className)}
|
||||
poster={poster}
|
||||
{...(autoplay
|
||||
{...(typeof src === "string" ? { src } : {})}
|
||||
{...(autoPlay
|
||||
? {
|
||||
preload: "auto",
|
||||
controls: false,
|
||||
@ -27,17 +24,19 @@ const Video = ({ src, poster, autoplay = false, className, ...rest }: VideoProps
|
||||
preload: "metadata",
|
||||
controls: true,
|
||||
})}
|
||||
className={clsx(styles.player, className)}
|
||||
{...rest}
|
||||
>
|
||||
{src.map((file) => {
|
||||
const extension = file.split(".").pop();
|
||||
{Array.isArray(src) &&
|
||||
src.map((file) => {
|
||||
const extension = file.split(".").pop();
|
||||
|
||||
if (extension === "vtt") {
|
||||
return <track key={file} kind="subtitles" src={file} srcLang="en" label="English" default />;
|
||||
} else {
|
||||
return <source key={file} src={file} type={`video/${extension}`} />;
|
||||
}
|
||||
})}
|
||||
if (extension === "vtt") {
|
||||
return <track key={file} kind="subtitles" src={file} srcLang="en" label="English" default />;
|
||||
} else {
|
||||
return <source key={file} src={file} type={`video/${extension}`} />;
|
||||
}
|
||||
})}
|
||||
</video>
|
||||
);
|
||||
};
|
||||
|
@ -22,6 +22,7 @@ export const useMDXComponents = (components: MDXComponents): MDXComponents => {
|
||||
a: Link,
|
||||
code: Code,
|
||||
blockquote: Blockquote,
|
||||
video: Video,
|
||||
hr: HorizontalRule,
|
||||
h1: Heading.H1,
|
||||
h2: Heading.H2,
|
||||
@ -33,9 +34,6 @@ export const useMDXComponents = (components: MDXComponents): MDXComponents => {
|
||||
ol: List.OrderedList,
|
||||
li: List.ListItem,
|
||||
|
||||
// html components with a slight twist:
|
||||
Video,
|
||||
|
||||
// third-party embeds:
|
||||
Tweet,
|
||||
YouTube,
|
||||
|
@ -1,6 +1,8 @@
|
||||
import path from "path";
|
||||
import type { NextConfig } from "next";
|
||||
import withBundleAnalyzer from "@next/bundle-analyzer";
|
||||
import withMDX from "@next/mdx";
|
||||
import { visit } from "unist-util-visit";
|
||||
import * as mdxPlugins from "./lib/helpers/remark-rehype-plugins";
|
||||
|
||||
const nextConfig: NextConfig = {
|
||||
@ -15,9 +17,8 @@ const nextConfig: NextConfig = {
|
||||
images: {
|
||||
formats: ["image/avif", "image/webp"],
|
||||
remotePatterns: [
|
||||
{ protocol: "https", hostname: "bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com" },
|
||||
{ protocol: "https", hostname: "pbs.twimg.com" },
|
||||
{ protocol: "https", hostname: "abs.twimg.com" },
|
||||
{ protocol: "https", hostname: "pbs.twimg.com" },
|
||||
],
|
||||
},
|
||||
outputFileTracingIncludes: {
|
||||
@ -28,6 +29,22 @@ const nextConfig: NextConfig = {
|
||||
"./node_modules/geist/dist/fonts/geist-sans/Geist-SemiBold.ttf",
|
||||
],
|
||||
},
|
||||
outputFileTracingExcludes: {
|
||||
"*": ["./public/**/*", "**/*.mp4", "**/*.webm"],
|
||||
},
|
||||
webpack: (config) => {
|
||||
config.module.rules.push({
|
||||
test: /\.(mp4|webm|vtt)$/i,
|
||||
type: "asset/resource",
|
||||
generator: {
|
||||
// https://github.com/vercel/next.js/blob/4447ea402a50113490103abe14255e95dcc8cf69/packages/next/src/build/webpack-config.ts#L1231
|
||||
// https://github.com/vercel/next.js/discussions/18852#discussioncomment-10752440
|
||||
outputPath: path.relative(config.output.path, path.resolve(process.cwd(), ".next/")),
|
||||
},
|
||||
});
|
||||
|
||||
return config;
|
||||
},
|
||||
experimental: {
|
||||
reactCompiler: true, // https://react.dev/learn/react-compiler
|
||||
ppr: "incremental", // https://nextjs.org/docs/app/building-your-application/rendering/partial-prerendering#using-partial-prerendering
|
||||
@ -137,6 +154,22 @@ const nextPlugins = [
|
||||
mdxPlugins.remarkMdxFrontmatter,
|
||||
mdxPlugins.remarkGfm,
|
||||
mdxPlugins.remarkSmartypants,
|
||||
// workaround for rehype-mdx-import-media not applying to `<video>` tags:
|
||||
// https://github.com/Chailotl/remark-videos/blob/851c332993210e6f091453f7ed887be24492bcee/index.js
|
||||
() => (tree) => {
|
||||
visit(tree, "image", (node) => {
|
||||
if (node.url.match(/\.(mp4|webm)$/i)) {
|
||||
node.type = "element";
|
||||
node.data = {
|
||||
hName: "video",
|
||||
hProperties: {
|
||||
src: node.url,
|
||||
// TODO: make this even hackier and pass an autoplay option in the alt text or something
|
||||
},
|
||||
};
|
||||
}
|
||||
});
|
||||
},
|
||||
],
|
||||
rehypePlugins: [
|
||||
mdxPlugins.rehypeUnwrapImages,
|
||||
|
BIN
notes/bernie-sanders-bern-app-data/community-canvass.mp4
Normal file
BIN
notes/bernie-sanders-bern-app-data/community-canvass.mp4
Normal file
Binary file not shown.
BIN
notes/bernie-sanders-bern-app-data/friend-to-friend.mp4
Normal file
BIN
notes/bernie-sanders-bern-app-data/friend-to-friend.mp4
Normal file
Binary file not shown.
@ -42,14 +42,7 @@ Using either feature, a volunteer starts with a search of the database for the v
|
||||
|
||||
Here's one of the instructional videos provided internally to volunteers:
|
||||
|
||||
<Video
|
||||
src={[
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/bernie-sanders-bern-app-data/friend-to-friend-XVB7UJRIMIwRtjQPOQZ4eCR9kM5F1g.webm",
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/bernie-sanders-bern-app-data/friend-to-friend-nLG3RzuKzNpKmeYTjFT08DnMdJW509.mp4",
|
||||
]}
|
||||
poster="https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/bernie-sanders-bern-app-data/poster-friend-to-friend-YYltrrTUoFbqyx1X00DVh0ylem59Ir.png"
|
||||
crossOrigin="anonymous"
|
||||
/>
|
||||

|
||||
|
||||
...and a few privacy-related questions about the friend-to-friend feature were answered by campaign staff in a separate closed webinar for volunteers this week:
|
||||
|
||||
|
BIN
notes/dropping-dropbox/cancel.mp4
Normal file
BIN
notes/dropping-dropbox/cancel.mp4
Normal file
Binary file not shown.
@ -31,14 +31,7 @@ Decisions made by the top folks at Dropbox gave me an increasingly sour taste in
|
||||
- Explicitly [dropping support for symlinking](https://news.ycombinator.com/item?id=20844363) (aka making aliases to) files outside of the literal `~/Dropbox` folder, which was incredibly helpful for nerds — once their main audience and biggest cheerleaders — with things like [dotfiles](https://github.com/jakejarvis/dotfiles) and Git repositories.
|
||||
- ...and as a bonus, making the process of canceling Dropbox Pro incredibly convoluted, annoying, and sketchy. Here's a video demonstration via [Justin Dunham](https://twitter.com/jwyattd):
|
||||
|
||||
<Video
|
||||
src={[
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/dropping-dropbox/cancel-Ni4NNhWbCTHS3VkMegvqJBPULTiYJY.webm",
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/dropping-dropbox/cancel-6VfXLzILWfJ3HQ8AO0is6Eii4X5A7W.mp4",
|
||||
]}
|
||||
poster="https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/dropping-dropbox/cancel-xOR5hSpuiRZVH1au7Z0Wf2swcdWH2e.png"
|
||||
crossOrigin="anonymous"
|
||||
/>
|
||||

|
||||
|
||||
## Seeking an alternative...
|
||||
|
||||
|
BIN
notes/millenial-with-hillary-clinton/convention.mp4
Normal file
BIN
notes/millenial-with-hillary-clinton/convention.mp4
Normal file
Binary file not shown.
@ -49,11 +49,4 @@ As [Bill Maher](https://medium.com/u/cdc04a9799f6) (an avid Bernie supporter) [s
|
||||
|
||||
**Update:** The campaign has included my snowy New Hampshire interaction with her in one of the DNC convention videos! See a few short seconds of my joy at 1:24.
|
||||
|
||||
<Video
|
||||
src={[
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/hillary/convention-720p-JbNlxyfqE3nz4ACjtfbpbjcR2gOY89.webm",
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/hillary/convention-720p-YLGreYE59PzmPo4epB21HQG6jXgYL5.mp4",
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/hillary/subs.en-k2txNECkQvwxWP8DjfP6GPBPo20vnO.vtt",
|
||||
]}
|
||||
crossOrigin="anonymous"
|
||||
/>
|
||||

|
||||
|
BIN
notes/presidential-candidates-404-pages/harris.mp4
Normal file
BIN
notes/presidential-candidates-404-pages/harris.mp4
Normal file
Binary file not shown.
@ -27,14 +27,7 @@ I'm a _huge_ sucker for Kate McKinnon's spot-on impression of Warren on Saturday
|
||||
|
||||
Although the designer who selected this GIF likely had _thousands_ of choices when searching "[Bernie finger wagging GIF](https://www.google.com/search?q=Bernie+finger+wagging+GIF&tbm=isch&tbs=itp:animated)," the text beside it is well-written and funny — even though we both know putting a page at [berniesanders.com/zxcliaosid](https://berniesanders.com/zxcliaosid/) probably won't be a top priority of a President Sanders.
|
||||
|
||||
<Video
|
||||
src={[
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/presidential-candidates-404-pages/sanders-2sIwomxG5hOZHATR5FyuydOOhMJlSU.webm",
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/presidential-candidates-404-pages/sanders-zBvLCRqdH6oKkntUYYq4GsvFmnU1V9.mp4",
|
||||
]}
|
||||
crossOrigin="anonymous"
|
||||
autoplay
|
||||
/>
|
||||

|
||||
|
||||
## 3. Joe Biden — [joebiden.com](https://joebiden.com/asdfasdf404)
|
||||
|
||||
@ -46,27 +39,13 @@ Uncle Joe has a nice and simple 404 page. I like it, along with the Ray-Bans and
|
||||
|
||||
A ballsy move, considering Beto's infamous [DUI arrest](https://www.politifact.com/texas/statements/2019/mar/14/club-growth/beto-orourke-arrested-dwi-flee-scene/) in the '90s — but still a clever ask for a donation and a great use of a GIF, even if it's left over from his Senate campaign.
|
||||
|
||||
<Video
|
||||
src={[
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/presidential-candidates-404-pages/orourke-Gb6r4nH8kQQMiMCSQWqzPBlUKYvXrE.webm",
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/presidential-candidates-404-pages/orourke-hDco7RvlKxwNU8FI0PoanLhUX2ws7f.mp4",
|
||||
]}
|
||||
crossOrigin="anonymous"
|
||||
autoplay
|
||||
/>
|
||||

|
||||
|
||||
## 5. Kamala Harris — [kamalaharris.org](https://kamalaharris.org/asdfasdf404)
|
||||
|
||||
Another clean and simple page with a top-notch GIF. It injected some emotion into visiting [kamalaharris.com/alskdjf](https://kamalaharris.com/alskdjf).
|
||||
|
||||
<Video
|
||||
src={[
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/presidential-candidates-404-pages/harris-B8WK3WNG68JrOm5aKOWFpGJbbWg22W.webm",
|
||||
"https://bcm6wnmyyzj1p5ls.public.blob.vercel-storage.com/videos/presidential-candidates-404-pages/harris-0Kk60PH5LXfMANg9yStHK0WFx9V1LB.mp4",
|
||||
]}
|
||||
crossOrigin="anonymous"
|
||||
autoplay
|
||||
/>
|
||||

|
||||
|
||||
## 6. Pete Buttigeg — [peteforamerica.com](https://peteforamerica.com/asdfasdf404/)
|
||||
|
||||
|
BIN
notes/presidential-candidates-404-pages/orourke.mp4
Normal file
BIN
notes/presidential-candidates-404-pages/orourke.mp4
Normal file
Binary file not shown.
BIN
notes/presidential-candidates-404-pages/sanders.mp4
Normal file
BIN
notes/presidential-candidates-404-pages/sanders.mp4
Normal file
Binary file not shown.
23
package.json
23
package.json
@ -15,7 +15,7 @@
|
||||
"start": "next start",
|
||||
"lint": "next lint",
|
||||
"typecheck": "tsc",
|
||||
"postinstall": "prisma generate --no-hints"
|
||||
"postinstall": "npx prisma generate"
|
||||
},
|
||||
"dependencies": {
|
||||
"@date-fns/tz": "^1.2.0",
|
||||
@ -24,9 +24,9 @@
|
||||
"@giscus/react": "^3.1.0",
|
||||
"@mdx-js/loader": "^3.1.0",
|
||||
"@mdx-js/react": "^3.1.0",
|
||||
"@next/bundle-analyzer": "15.3.0-canary.21",
|
||||
"@next/mdx": "15.3.0-canary.21",
|
||||
"@next/third-parties": "15.3.0-canary.21",
|
||||
"@next/bundle-analyzer": "15.3.0-canary.24",
|
||||
"@next/mdx": "15.3.0-canary.24",
|
||||
"@next/third-parties": "15.3.0-canary.24",
|
||||
"@octokit/graphql": "^8.2.1",
|
||||
"@octokit/graphql-schema": "^15.26.0",
|
||||
"@prisma/client": "^6.5.0",
|
||||
@ -38,9 +38,9 @@
|
||||
"feed": "^4.2.2",
|
||||
"geist": "^1.3.1",
|
||||
"html-entities": "^2.5.3",
|
||||
"lucide-react": "0.483.0",
|
||||
"lucide-react": "0.484.0",
|
||||
"modern-normalize": "^3.0.1",
|
||||
"next": "15.3.0-canary.21",
|
||||
"next": "15.3.0-canary.24",
|
||||
"obj-str": "^1.1.0",
|
||||
"polished": "^4.3.1",
|
||||
"prop-types": "^15.8.1",
|
||||
@ -64,9 +64,10 @@
|
||||
"remark-mdx-frontmatter": "^5.1.0",
|
||||
"remark-parse": "^11.0.0",
|
||||
"remark-smartypants": "^3.0.2",
|
||||
"resend": "^4.1.2",
|
||||
"resend": "^4.2.0",
|
||||
"shiki": "^3.2.1",
|
||||
"unified": "^11.0.5",
|
||||
"unist-util-visit": "^5.0.0",
|
||||
"zod": "^3.24.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -83,13 +84,13 @@
|
||||
"babel-plugin-react-compiler": "19.0.0-beta-aeaed83-20250323",
|
||||
"cross-env": "^7.0.3",
|
||||
"eslint": "^9.23.0",
|
||||
"eslint-config-next": "15.3.0-canary.21",
|
||||
"eslint-config-next": "15.3.0-canary.24",
|
||||
"eslint-config-prettier": "^10.1.1",
|
||||
"eslint-plugin-css-modules": "^2.12.0",
|
||||
"eslint-plugin-import": "^2.31.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.10.2",
|
||||
"eslint-plugin-mdx": "^3.3.1",
|
||||
"eslint-plugin-prettier": "^5.2.4",
|
||||
"eslint-plugin-prettier": "^5.2.5",
|
||||
"eslint-plugin-react": "^7.37.4",
|
||||
"eslint-plugin-react-compiler": "19.0.0-beta-aeaed83-20250323",
|
||||
"eslint-plugin-react-hooks": "^5.2.0",
|
||||
@ -98,7 +99,7 @@
|
||||
"prisma": "^6.5.0",
|
||||
"schema-dts": "^1.1.5",
|
||||
"simple-git-hooks": "^2.12.1",
|
||||
"stylelint": "^16.16.0",
|
||||
"stylelint": "^16.17.0",
|
||||
"stylelint-config-css-modules": "^4.4.0",
|
||||
"stylelint-config-recommended": "^15.0.0",
|
||||
"stylelint-config-standard": "^37.0.0",
|
||||
@ -110,7 +111,7 @@
|
||||
"engines": {
|
||||
"node": ">=20.x"
|
||||
},
|
||||
"packageManager": "pnpm@10.6.5+sha512.cdf928fca20832cd59ec53826492b7dc25dc524d4370b6b4adbf65803d32efaa6c1c88147c0ae4e8d579a6c9eec715757b50d4fa35eea179d868eada4ed043af",
|
||||
"packageManager": "pnpm@10.7.0+sha512.6b865ad4b62a1d9842b61d674a393903b871d9244954f652b8842c2b553c72176b278f64c463e52d40fff8aba385c235c8c9ecf5cc7de4fd78b8bb6d49633ab6",
|
||||
"cacheDirectories": [
|
||||
"node_modules",
|
||||
".next/cache"
|
||||
|
289
pnpm-lock.yaml
generated
289
pnpm-lock.yaml
generated
@ -27,14 +27,14 @@ importers:
|
||||
specifier: ^3.1.0
|
||||
version: 3.1.0(@types/react@19.0.12)(react@19.0.0)
|
||||
'@next/bundle-analyzer':
|
||||
specifier: 15.3.0-canary.21
|
||||
version: 15.3.0-canary.21
|
||||
specifier: 15.3.0-canary.24
|
||||
version: 15.3.0-canary.24
|
||||
'@next/mdx':
|
||||
specifier: 15.3.0-canary.21
|
||||
version: 15.3.0-canary.21(@mdx-js/loader@3.1.0(acorn@8.14.1))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))
|
||||
specifier: 15.3.0-canary.24
|
||||
version: 15.3.0-canary.24(@mdx-js/loader@3.1.0(acorn@8.14.1))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))
|
||||
'@next/third-parties':
|
||||
specifier: 15.3.0-canary.21
|
||||
version: 15.3.0-canary.21(next@15.3.0-canary.21(@babel/core@7.26.10)(babel-plugin-react-compiler@19.0.0-beta-aeaed83-20250323)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)
|
||||
specifier: 15.3.0-canary.24
|
||||
version: 15.3.0-canary.24(next@15.3.0-canary.24(@babel/core@7.26.10)(babel-plugin-react-compiler@19.0.0-beta-aeaed83-20250323)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)
|
||||
'@octokit/graphql':
|
||||
specifier: ^8.2.1
|
||||
version: 8.2.1
|
||||
@ -64,19 +64,19 @@ importers:
|
||||
version: 4.2.2
|
||||
geist:
|
||||
specifier: ^1.3.1
|
||||
version: 1.3.1(next@15.3.0-canary.21(@babel/core@7.26.10)(babel-plugin-react-compiler@19.0.0-beta-aeaed83-20250323)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))
|
||||
version: 1.3.1(next@15.3.0-canary.24(@babel/core@7.26.10)(babel-plugin-react-compiler@19.0.0-beta-aeaed83-20250323)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))
|
||||
html-entities:
|
||||
specifier: ^2.5.3
|
||||
version: 2.5.3
|
||||
lucide-react:
|
||||
specifier: 0.483.0
|
||||
version: 0.483.0(react@19.0.0)
|
||||
specifier: 0.484.0
|
||||
version: 0.484.0(react@19.0.0)
|
||||
modern-normalize:
|
||||
specifier: ^3.0.1
|
||||
version: 3.0.1
|
||||
next:
|
||||
specifier: 15.3.0-canary.21
|
||||
version: 15.3.0-canary.21(@babel/core@7.26.10)(babel-plugin-react-compiler@19.0.0-beta-aeaed83-20250323)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
specifier: 15.3.0-canary.24
|
||||
version: 15.3.0-canary.24(@babel/core@7.26.10)(babel-plugin-react-compiler@19.0.0-beta-aeaed83-20250323)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
obj-str:
|
||||
specifier: ^1.1.0
|
||||
version: 1.1.0
|
||||
@ -147,14 +147,17 @@ importers:
|
||||
specifier: ^3.0.2
|
||||
version: 3.0.2
|
||||
resend:
|
||||
specifier: ^4.1.2
|
||||
version: 4.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
specifier: ^4.2.0
|
||||
version: 4.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
shiki:
|
||||
specifier: ^3.2.1
|
||||
version: 3.2.1
|
||||
unified:
|
||||
specifier: ^11.0.5
|
||||
version: 11.0.5
|
||||
unist-util-visit:
|
||||
specifier: ^5.0.0
|
||||
version: 5.0.0
|
||||
zod:
|
||||
specifier: ^3.24.2
|
||||
version: 3.24.2
|
||||
@ -199,8 +202,8 @@ importers:
|
||||
specifier: ^9.23.0
|
||||
version: 9.23.0
|
||||
eslint-config-next:
|
||||
specifier: 15.3.0-canary.21
|
||||
version: 15.3.0-canary.21(eslint@9.23.0)(typescript@5.8.2)
|
||||
specifier: 15.3.0-canary.24
|
||||
version: 15.3.0-canary.24(eslint@9.23.0)(typescript@5.8.2)
|
||||
eslint-config-prettier:
|
||||
specifier: ^10.1.1
|
||||
version: 10.1.1(eslint@9.23.0)
|
||||
@ -217,8 +220,8 @@ importers:
|
||||
specifier: ^3.3.1
|
||||
version: 3.3.1(eslint@9.23.0)
|
||||
eslint-plugin-prettier:
|
||||
specifier: ^5.2.4
|
||||
version: 5.2.4(eslint-config-prettier@10.1.1(eslint@9.23.0))(eslint@9.23.0)(prettier@3.5.3)
|
||||
specifier: ^5.2.5
|
||||
version: 5.2.5(eslint-config-prettier@10.1.1(eslint@9.23.0))(eslint@9.23.0)(prettier@3.5.3)
|
||||
eslint-plugin-react:
|
||||
specifier: ^7.37.4
|
||||
version: 7.37.4(eslint@9.23.0)
|
||||
@ -244,17 +247,17 @@ importers:
|
||||
specifier: ^2.12.1
|
||||
version: 2.12.1
|
||||
stylelint:
|
||||
specifier: ^16.16.0
|
||||
version: 16.16.0(typescript@5.8.2)
|
||||
specifier: ^16.17.0
|
||||
version: 16.17.0(typescript@5.8.2)
|
||||
stylelint-config-css-modules:
|
||||
specifier: ^4.4.0
|
||||
version: 4.4.0(stylelint@16.16.0(typescript@5.8.2))
|
||||
version: 4.4.0(stylelint@16.17.0(typescript@5.8.2))
|
||||
stylelint-config-recommended:
|
||||
specifier: ^15.0.0
|
||||
version: 15.0.0(stylelint@16.16.0(typescript@5.8.2))
|
||||
version: 15.0.0(stylelint@16.17.0(typescript@5.8.2))
|
||||
stylelint-config-standard:
|
||||
specifier: ^37.0.0
|
||||
version: 37.0.0(stylelint@16.16.0(typescript@5.8.2))
|
||||
version: 37.0.0(stylelint@16.17.0(typescript@5.8.2))
|
||||
typescript:
|
||||
specifier: 5.8.2
|
||||
version: 5.8.2
|
||||
@ -798,17 +801,17 @@ packages:
|
||||
'@napi-rs/wasm-runtime@0.2.7':
|
||||
resolution: {integrity: sha512-5yximcFK5FNompXfJFoWanu5l8v1hNGqNHh9du1xETp9HWk/B/PzvchX55WYOPaIeNglG8++68AAiauBAtbnzw==}
|
||||
|
||||
'@next/bundle-analyzer@15.3.0-canary.21':
|
||||
resolution: {integrity: sha512-TCTcg0pKuYZthGgpKg1CtHkHiwxyDOOGQCD2kAlMcp/tRZuDOrzOFAs+7lcjUgMeMN+SX1X0IJm0PxXkSXdcGw==}
|
||||
'@next/bundle-analyzer@15.3.0-canary.24':
|
||||
resolution: {integrity: sha512-BNAJD5OYKGKQwK/Z6fKKA+Lm4CIQJMTTREw7KNGNP9IroO1gBGNzGgb2Uu6pPEQe2N2OaJlCCrnegm7/CP5hww==}
|
||||
|
||||
'@next/env@15.3.0-canary.21':
|
||||
resolution: {integrity: sha512-heC4nz+8K39M9A+ov0H7E1FdEDJJ7ezXTNeI2VFG+lz4MDMOJ+K2SoIvjh5g0l35NX5iyeKpPDjDyctotGvI7g==}
|
||||
'@next/env@15.3.0-canary.24':
|
||||
resolution: {integrity: sha512-U4XEUv2a0Cy1NkNo9QDoszhohUnttcwHNGhUPl02CzEwJPm8SgoPZNnlUPoeisywF7r/xOkOfZ67mrwUo3FtzQ==}
|
||||
|
||||
'@next/eslint-plugin-next@15.3.0-canary.21':
|
||||
resolution: {integrity: sha512-RXxhlzqPRhv4ZXgEwDJIL4ME+h7hWm/AmgegqfcIuobsPN+h1UipHJWJSqsqqHOGfKammdRVTBixEhUgiLuAIw==}
|
||||
'@next/eslint-plugin-next@15.3.0-canary.24':
|
||||
resolution: {integrity: sha512-gK1jxI647OrKny22E4OEik2ZNRxLRvcqn4yzA6iFeBiHmaZR13nzZLOWZwSZCz6Pem1sSsVbzBEskDy+jjvYAw==}
|
||||
|
||||
'@next/mdx@15.3.0-canary.21':
|
||||
resolution: {integrity: sha512-6D+3HpmvNG7e5YwGK20T2o033lFn5Q2AIfnid1ghqEAlIjdSvIEPQ5PuXLflUBBUQEPPFldqdBGlySuMfSCCZQ==}
|
||||
'@next/mdx@15.3.0-canary.24':
|
||||
resolution: {integrity: sha512-sie1yo249Qurgemi1H1ndrPCyoYt7oYsUPxoWhEB66rG1lsSF7ptogwAHQ1qCkJPT/KVYAJlNoQGz7noXk6C/A==}
|
||||
peerDependencies:
|
||||
'@mdx-js/loader': '>=0.15.0'
|
||||
'@mdx-js/react': '>=0.15.0'
|
||||
@ -818,56 +821,56 @@ packages:
|
||||
'@mdx-js/react':
|
||||
optional: true
|
||||
|
||||
'@next/swc-darwin-arm64@15.3.0-canary.21':
|
||||
resolution: {integrity: sha512-E3PSOavuaHxKUPGDGy7iFLPz1IvXcimlR3WqNgE590Wxahtq1CDeLQGaAPr3iTDlriauJHKCUl+VvRNQ/yUT1Q==}
|
||||
'@next/swc-darwin-arm64@15.3.0-canary.24':
|
||||
resolution: {integrity: sha512-aWFKewt67BHop1qVmPFCJmg6pcGC25NvEzhyg/FFQX/H5mM3F7gNNIeGZSNntDGO7D2V1Tt9FGCaKfjyHyKWWg==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@next/swc-darwin-x64@15.3.0-canary.21':
|
||||
resolution: {integrity: sha512-i2i/KoNRSLKEd589NGIM64bHYy3tFKT6qnRHQQovSlwWdllWm8nWGJSsFJ9kN5ufOfk6xmrqvIPmXXMQ2mMagg==}
|
||||
'@next/swc-darwin-x64@15.3.0-canary.24':
|
||||
resolution: {integrity: sha512-D3nvBYgBuepbWsQ520gubhAoPhhj/Z50+4L9anfKvK2sCH0V+fDrg/REtMGuLFZagk3phRSrd3g3RFzcRmYTEQ==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@next/swc-linux-arm64-gnu@15.3.0-canary.21':
|
||||
resolution: {integrity: sha512-NQJxStyPjPx8eUoxiYy+QuqqmdcqJpNdteSVI9mfQhSAfzwV/hkBq07DkP0qvHKniJZ/cONZK3YKdNu0tZfiKA==}
|
||||
'@next/swc-linux-arm64-gnu@15.3.0-canary.24':
|
||||
resolution: {integrity: sha512-cErabCi0Hoq+crqREbqHBCBSZax+gSpThsVfQx+D5JWTz8VpyMfamkZqZeZ+4XL1FGmjQX/syeXMc+I0J7Ap7Q==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@next/swc-linux-arm64-musl@15.3.0-canary.21':
|
||||
resolution: {integrity: sha512-gNvBv1CsmBjceILlnP1p+yfj99ffOqTyTVGlbpnsjSI+yT6xVxOs5N0bjDAnyG4MJjy4g8rh6/wD9T0sYN8OOQ==}
|
||||
'@next/swc-linux-arm64-musl@15.3.0-canary.24':
|
||||
resolution: {integrity: sha512-6j6bRey5kYxb37ap0prL0T7i1z5zVjj7Q+j+J7QZHToubZK4V6LaCqaD9A2ozjvlpVg4NjbfW/hwunJcEsB/aw==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@next/swc-linux-x64-gnu@15.3.0-canary.21':
|
||||
resolution: {integrity: sha512-FHEmhvliKoTZHflk3J55GsdkB5tW5l86/H0t6rseVAN+mkgd2DHpKttDcnZggrRFjMsp0y9F6ICtHXltrBrs8g==}
|
||||
'@next/swc-linux-x64-gnu@15.3.0-canary.24':
|
||||
resolution: {integrity: sha512-uMlbquibm5/MN730pXjqRJkqbXqv8L29N2rWdpq1vRZWbr1GSgxm3AY0dBW2dkoA5eNxX3kcrgCf3oFNxlm8CQ==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@next/swc-linux-x64-musl@15.3.0-canary.21':
|
||||
resolution: {integrity: sha512-jCIm/yD2+jRnsHbzHQxKdgZYBfsNPyq71uRGIvzzZxBFQ7/gfdxOARHzGvXGKVIrBn3GWDdLzJNPCr3morWE6w==}
|
||||
'@next/swc-linux-x64-musl@15.3.0-canary.24':
|
||||
resolution: {integrity: sha512-Ayi6Q8Y0qkHFcrH8OaQVcsR/qUpzqw3MKBKFsGiS597wfBD1RMFEBN26cOPV0YoTd/Q9OK58FgLHu8pGazbVHA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@next/swc-win32-arm64-msvc@15.3.0-canary.21':
|
||||
resolution: {integrity: sha512-LTEX5LR96mQWxlx1BZZzp6TB97xwVXOlw15DLKB+AyR3pXsIa4uvmMQnWu9cW+ZOcELsVVo+TSG2k/ZQRt+O/A==}
|
||||
'@next/swc-win32-arm64-msvc@15.3.0-canary.24':
|
||||
resolution: {integrity: sha512-noc2q+IbKLSbz2hmGWf5+/Wc56DpWvFuDgNIAmzi9dcnIC0YuSzGZANBT9Hb1v2Sz0y8wqWEiyRxLHBN4rx8qQ==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
|
||||
'@next/swc-win32-x64-msvc@15.3.0-canary.21':
|
||||
resolution: {integrity: sha512-t8GXPH7JqJZlu5lLGMIV5g3sVyP0yrfEVgbjAYB8hafIRek6wZBsifSX9cAVTs86LH8hdCsb3pQzv8cEDV6qbA==}
|
||||
'@next/swc-win32-x64-msvc@15.3.0-canary.24':
|
||||
resolution: {integrity: sha512-LHw2a+fDKRZVwrEiZh9lYA3ZJPjJ+eG9BMEu8WnjfQuIvZ8y75kp5qpPfJoLOGFeLuuPyyLM3orbOEgubZf+FA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@next/third-parties@15.3.0-canary.21':
|
||||
resolution: {integrity: sha512-c2lFeGYGVF8dTZvwc7QDugqCxV1KVQMzrt2fOHTcGSsZnBJRAiCKPQLqyGh5lW3NbSfeQfctiORT1xFUcIMb0w==}
|
||||
'@next/third-parties@15.3.0-canary.24':
|
||||
resolution: {integrity: sha512-tekN8VETtCVc8LKbjxcX/LlJ8HDQpRRAqPDnbXwbIqh3GKfRG8pLhKBnKj3Zlv4SkVbh6DLIM8nayjgxhKpO9g==}
|
||||
peerDependencies:
|
||||
next: ^13.0.0 || ^14.0.0 || ^15.0.0
|
||||
react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0
|
||||
@ -937,9 +940,6 @@ packages:
|
||||
'@octokit/types@13.10.0':
|
||||
resolution: {integrity: sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==}
|
||||
|
||||
'@one-ini/wasm@0.1.1':
|
||||
resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==}
|
||||
|
||||
'@pkgjs/parseargs@0.11.0':
|
||||
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
|
||||
engines: {node: '>=14'}
|
||||
@ -981,8 +981,8 @@ packages:
|
||||
'@prisma/get-platform@6.5.0':
|
||||
resolution: {integrity: sha512-xYcvyJwNMg2eDptBYFqFLUCfgi+wZLcj6HDMsj0Qw0irvauG4IKmkbywnqwok0B+k+W+p+jThM2DKTSmoPCkzw==}
|
||||
|
||||
'@react-email/render@1.0.1':
|
||||
resolution: {integrity: sha512-W3gTrcmLOVYnG80QuUp22ReIT/xfLsVJ+n7ghSlG2BITB8evNABn1AO2rGQoXuK84zKtDAlxCdm3hRyIpZdGSA==}
|
||||
'@react-email/render@1.0.5':
|
||||
resolution: {integrity: sha512-CA69HYXPk21HhtAXATIr+9JJwpDNmAFCvdMUjWmeoD1+KhJ9NAxusMRxKNeibdZdslmq3edaeOKGbdQ9qjK8LQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
@ -1453,10 +1453,6 @@ packages:
|
||||
comma-separated-tokens@2.0.3:
|
||||
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
|
||||
|
||||
commander@10.0.1:
|
||||
resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
commander@13.1.0:
|
||||
resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==}
|
||||
engines: {node: '>=18'}
|
||||
@ -1472,9 +1468,6 @@ packages:
|
||||
resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==}
|
||||
engines: {'0': node >= 6.0}
|
||||
|
||||
config-chain@1.1.13:
|
||||
resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
|
||||
|
||||
convert-source-map@2.0.0:
|
||||
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
|
||||
|
||||
@ -1617,11 +1610,6 @@ packages:
|
||||
eastasianwidth@0.2.0:
|
||||
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
|
||||
|
||||
editorconfig@1.0.4:
|
||||
resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==}
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
|
||||
electron-to-chromium@1.5.123:
|
||||
resolution: {integrity: sha512-refir3NlutEZqlKaBLK0tzlVLe5P2wDKS7UQt/3SpibizgsRAPOsqQC3ffw1nlv3ze5gjRQZYHoPymgVZkplFA==}
|
||||
|
||||
@ -1715,8 +1703,8 @@ packages:
|
||||
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
eslint-config-next@15.3.0-canary.21:
|
||||
resolution: {integrity: sha512-0BxTMkxU05MMCs9wML5CyapkhOpsHwTwhtpSWNw6LeGKusDYBvORB2W+AhavBObKamJTV+lpUkyTwsI/gLWQ+Q==}
|
||||
eslint-config-next@15.3.0-canary.24:
|
||||
resolution: {integrity: sha512-ZUohbgnCgrhODmsb1dKGK/GMV++G4IumAGsBdz/HyULsAXTZNPE25ExZ/RnvyQ7Px6pFvLhulDLgLBiG4yNuIw==}
|
||||
peerDependencies:
|
||||
eslint: ^7.23.0 || ^8.0.0 || ^9.0.0
|
||||
typescript: '>=3.3.1'
|
||||
@ -1805,13 +1793,13 @@ packages:
|
||||
peerDependencies:
|
||||
eslint: '>=8.0.0'
|
||||
|
||||
eslint-plugin-prettier@5.2.4:
|
||||
resolution: {integrity: sha512-SFtuYmnhwYCtuCDTKPoK+CEzCnEgKTU2qTLwoCxvrC0MFBTIXo1i6hDYOI4cwHaE5GZtlWmTN3YfucYi7KJwPw==}
|
||||
eslint-plugin-prettier@5.2.5:
|
||||
resolution: {integrity: sha512-IKKP8R87pJyMl7WWamLgPkloB16dagPIdd2FjBDbyRYPKo93wS/NbCOPh6gH+ieNLC+XZrhJt/kWj0PS/DFdmg==}
|
||||
engines: {node: ^14.18.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
'@types/eslint': '>=8.0.0'
|
||||
eslint: '>=8.0.0'
|
||||
eslint-config-prettier: '*'
|
||||
eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0'
|
||||
prettier: '>=3.0.0'
|
||||
peerDependenciesMeta:
|
||||
'@types/eslint':
|
||||
@ -2429,15 +2417,6 @@ packages:
|
||||
jackspeak@3.4.3:
|
||||
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
|
||||
|
||||
js-beautify@1.15.4:
|
||||
resolution: {integrity: sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==}
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
|
||||
js-cookie@3.0.5:
|
||||
resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
js-tokens@4.0.0:
|
||||
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
||||
|
||||
@ -2575,8 +2554,8 @@ packages:
|
||||
lru-cache@5.1.1:
|
||||
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
|
||||
|
||||
lucide-react@0.483.0:
|
||||
resolution: {integrity: sha512-WldsY17Qb/T3VZdMnVQ9C3DDIP7h1ViDTHVdVGnLZcvHNg30zH/MTQ04RTORjexoGmpsXroiQXZ4QyR0kBy0FA==}
|
||||
lucide-react@0.484.0:
|
||||
resolution: {integrity: sha512-oZy8coK9kZzvqhSgfbGkPtTgyjpBvs3ukLgDPv14dSOZtBtboryWF5o8i3qen7QbGg7JhiJBz5mK1p8YoMZTLQ==}
|
||||
peerDependencies:
|
||||
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
|
||||
@ -2785,10 +2764,6 @@ packages:
|
||||
minimatch@3.1.2:
|
||||
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
|
||||
|
||||
minimatch@9.0.1:
|
||||
resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==}
|
||||
engines: {node: '>=16 || 14 >=14.17'}
|
||||
|
||||
minimatch@9.0.5:
|
||||
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
|
||||
engines: {node: '>=16 || 14 >=14.17'}
|
||||
@ -2823,8 +2798,8 @@ packages:
|
||||
natural-compare@1.4.0:
|
||||
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
|
||||
|
||||
next@15.3.0-canary.21:
|
||||
resolution: {integrity: sha512-NcJOEbi3K+XXhaVlRQ+89rEsz6g99cokecS0LK36BtM0JRVFLoAb5EMYRIywYTGOfwCqOOzKXyKtZvMNfiz8aw==}
|
||||
next@15.3.0-canary.24:
|
||||
resolution: {integrity: sha512-FDj8ajAVBZ75jmYZH6JLAw+jEl+d4qxFIWGAiWGi5Ke562UBET2og/gOP5kA3X+Ig/yIY7wdiCuQq7j1zpVLVA==}
|
||||
engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@ -3071,6 +3046,11 @@ packages:
|
||||
resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
|
||||
prettier@3.4.2:
|
||||
resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==}
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
|
||||
prettier@3.5.3:
|
||||
resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==}
|
||||
engines: {node: '>=14'}
|
||||
@ -3108,9 +3088,6 @@ packages:
|
||||
property-information@7.0.0:
|
||||
resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==}
|
||||
|
||||
proto-list@1.2.4:
|
||||
resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
|
||||
|
||||
punycode@2.3.1:
|
||||
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
|
||||
engines: {node: '>=6'}
|
||||
@ -3271,8 +3248,8 @@ packages:
|
||||
resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
resend@4.1.2:
|
||||
resolution: {integrity: sha512-km0btrAj/BqIaRlS+SoLNMaCAUUWEgcEvZpycfVvoXEwAHCxU+vp/ikxPgKRkyKyiR2iDcdUq5uIBTDK9oSSSQ==}
|
||||
resend@4.2.0:
|
||||
resolution: {integrity: sha512-s6ogU+BBYH1H6Zl926cpddtLRAJWeFv5cIKcuHLWk1QYhFTbpFJlhqx31pnN2f0CB075KFSrc1Xf6HG690wzuw==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
resolve-from@4.0.0:
|
||||
@ -3583,8 +3560,8 @@ packages:
|
||||
peerDependencies:
|
||||
stylelint: ^16.0.2
|
||||
|
||||
stylelint@16.16.0:
|
||||
resolution: {integrity: sha512-40X5UOb/0CEFnZVEHyN260HlSSUxPES+arrUphOumGWgXERHfwCD0kNBVILgQSij8iliYVwlc0V7M5bcLP9vPg==}
|
||||
stylelint@16.17.0:
|
||||
resolution: {integrity: sha512-I9OwVIWRMqVm2Br5iTbrfSqGRPWQUlvm6oXO1xZuYYu0Gpduy67N8wXOZv15p6E/JdlZiAtQaIoLKZEWk5hrjw==}
|
||||
engines: {node: '>=18.12.0'}
|
||||
hasBin: true
|
||||
|
||||
@ -4420,53 +4397,53 @@ snapshots:
|
||||
'@tybys/wasm-util': 0.9.0
|
||||
optional: true
|
||||
|
||||
'@next/bundle-analyzer@15.3.0-canary.21':
|
||||
'@next/bundle-analyzer@15.3.0-canary.24':
|
||||
dependencies:
|
||||
webpack-bundle-analyzer: 4.10.1
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
- utf-8-validate
|
||||
|
||||
'@next/env@15.3.0-canary.21': {}
|
||||
'@next/env@15.3.0-canary.24': {}
|
||||
|
||||
'@next/eslint-plugin-next@15.3.0-canary.21':
|
||||
'@next/eslint-plugin-next@15.3.0-canary.24':
|
||||
dependencies:
|
||||
fast-glob: 3.3.1
|
||||
|
||||
'@next/mdx@15.3.0-canary.21(@mdx-js/loader@3.1.0(acorn@8.14.1))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))':
|
||||
'@next/mdx@15.3.0-canary.24(@mdx-js/loader@3.1.0(acorn@8.14.1))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))':
|
||||
dependencies:
|
||||
source-map: 0.7.4
|
||||
optionalDependencies:
|
||||
'@mdx-js/loader': 3.1.0(acorn@8.14.1)
|
||||
'@mdx-js/react': 3.1.0(@types/react@19.0.12)(react@19.0.0)
|
||||
|
||||
'@next/swc-darwin-arm64@15.3.0-canary.21':
|
||||
'@next/swc-darwin-arm64@15.3.0-canary.24':
|
||||
optional: true
|
||||
|
||||
'@next/swc-darwin-x64@15.3.0-canary.21':
|
||||
'@next/swc-darwin-x64@15.3.0-canary.24':
|
||||
optional: true
|
||||
|
||||
'@next/swc-linux-arm64-gnu@15.3.0-canary.21':
|
||||
'@next/swc-linux-arm64-gnu@15.3.0-canary.24':
|
||||
optional: true
|
||||
|
||||
'@next/swc-linux-arm64-musl@15.3.0-canary.21':
|
||||
'@next/swc-linux-arm64-musl@15.3.0-canary.24':
|
||||
optional: true
|
||||
|
||||
'@next/swc-linux-x64-gnu@15.3.0-canary.21':
|
||||
'@next/swc-linux-x64-gnu@15.3.0-canary.24':
|
||||
optional: true
|
||||
|
||||
'@next/swc-linux-x64-musl@15.3.0-canary.21':
|
||||
'@next/swc-linux-x64-musl@15.3.0-canary.24':
|
||||
optional: true
|
||||
|
||||
'@next/swc-win32-arm64-msvc@15.3.0-canary.21':
|
||||
'@next/swc-win32-arm64-msvc@15.3.0-canary.24':
|
||||
optional: true
|
||||
|
||||
'@next/swc-win32-x64-msvc@15.3.0-canary.21':
|
||||
'@next/swc-win32-x64-msvc@15.3.0-canary.24':
|
||||
optional: true
|
||||
|
||||
'@next/third-parties@15.3.0-canary.21(next@15.3.0-canary.21(@babel/core@7.26.10)(babel-plugin-react-compiler@19.0.0-beta-aeaed83-20250323)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)':
|
||||
'@next/third-parties@15.3.0-canary.24(next@15.3.0-canary.24(@babel/core@7.26.10)(babel-plugin-react-compiler@19.0.0-beta-aeaed83-20250323)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)':
|
||||
dependencies:
|
||||
next: 15.3.0-canary.21(@babel/core@7.26.10)(babel-plugin-react-compiler@19.0.0-beta-aeaed83-20250323)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
next: 15.3.0-canary.24(@babel/core@7.26.10)(babel-plugin-react-compiler@19.0.0-beta-aeaed83-20250323)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
react: 19.0.0
|
||||
third-party-capital: 1.0.20
|
||||
|
||||
@ -4570,8 +4547,6 @@ snapshots:
|
||||
dependencies:
|
||||
'@octokit/openapi-types': 24.2.0
|
||||
|
||||
'@one-ini/wasm@0.1.1': {}
|
||||
|
||||
'@pkgjs/parseargs@0.11.0':
|
||||
optional: true
|
||||
|
||||
@ -4612,10 +4587,10 @@ snapshots:
|
||||
dependencies:
|
||||
'@prisma/debug': 6.5.0
|
||||
|
||||
'@react-email/render@1.0.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
|
||||
'@react-email/render@1.0.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
|
||||
dependencies:
|
||||
html-to-text: 9.0.5
|
||||
js-beautify: 1.15.4
|
||||
prettier: 3.4.2
|
||||
react: 19.0.0
|
||||
react-dom: 19.0.0(react@19.0.0)
|
||||
react-promise-suspense: 0.3.4
|
||||
@ -5113,8 +5088,6 @@ snapshots:
|
||||
|
||||
comma-separated-tokens@2.0.3: {}
|
||||
|
||||
commander@10.0.1: {}
|
||||
|
||||
commander@13.1.0: {}
|
||||
|
||||
commander@7.2.0: {}
|
||||
@ -5128,11 +5101,6 @@ snapshots:
|
||||
readable-stream: 3.6.2
|
||||
typedarray: 0.0.6
|
||||
|
||||
config-chain@1.1.13:
|
||||
dependencies:
|
||||
ini: 1.3.8
|
||||
proto-list: 1.2.4
|
||||
|
||||
convert-source-map@2.0.0: {}
|
||||
|
||||
copy-to-clipboard@3.3.3:
|
||||
@ -5268,13 +5236,6 @@ snapshots:
|
||||
|
||||
eastasianwidth@0.2.0: {}
|
||||
|
||||
editorconfig@1.0.4:
|
||||
dependencies:
|
||||
'@one-ini/wasm': 0.1.1
|
||||
commander: 10.0.1
|
||||
minimatch: 9.0.1
|
||||
semver: 7.7.1
|
||||
|
||||
electron-to-chromium@1.5.123: {}
|
||||
|
||||
emoji-regex-xs@1.0.0: {}
|
||||
@ -5450,9 +5411,9 @@ snapshots:
|
||||
|
||||
escape-string-regexp@5.0.0: {}
|
||||
|
||||
eslint-config-next@15.3.0-canary.21(eslint@9.23.0)(typescript@5.8.2):
|
||||
eslint-config-next@15.3.0-canary.24(eslint@9.23.0)(typescript@5.8.2):
|
||||
dependencies:
|
||||
'@next/eslint-plugin-next': 15.3.0-canary.21
|
||||
'@next/eslint-plugin-next': 15.3.0-canary.24
|
||||
'@rushstack/eslint-patch': 1.11.0
|
||||
'@typescript-eslint/eslint-plugin': 8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0)(typescript@5.8.2))(eslint@9.23.0)(typescript@5.8.2)
|
||||
'@typescript-eslint/parser': 8.28.0(eslint@9.23.0)(typescript@5.8.2)
|
||||
@ -5600,7 +5561,7 @@ snapshots:
|
||||
- remark-lint-file-extension
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-prettier@5.2.4(eslint-config-prettier@10.1.1(eslint@9.23.0))(eslint@9.23.0)(prettier@3.5.3):
|
||||
eslint-plugin-prettier@5.2.5(eslint-config-prettier@10.1.1(eslint@9.23.0))(eslint@9.23.0)(prettier@3.5.3):
|
||||
dependencies:
|
||||
eslint: 9.23.0
|
||||
prettier: 3.5.3
|
||||
@ -5872,9 +5833,9 @@ snapshots:
|
||||
|
||||
functions-have-names@1.2.3: {}
|
||||
|
||||
geist@1.3.1(next@15.3.0-canary.21(@babel/core@7.26.10)(babel-plugin-react-compiler@19.0.0-beta-aeaed83-20250323)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)):
|
||||
geist@1.3.1(next@15.3.0-canary.24(@babel/core@7.26.10)(babel-plugin-react-compiler@19.0.0-beta-aeaed83-20250323)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)):
|
||||
dependencies:
|
||||
next: 15.3.0-canary.21(@babel/core@7.26.10)(babel-plugin-react-compiler@19.0.0-beta-aeaed83-20250323)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
next: 15.3.0-canary.24(@babel/core@7.26.10)(babel-plugin-react-compiler@19.0.0-beta-aeaed83-20250323)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
|
||||
gensync@1.0.0-beta.2: {}
|
||||
|
||||
@ -6361,16 +6322,6 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@pkgjs/parseargs': 0.11.0
|
||||
|
||||
js-beautify@1.15.4:
|
||||
dependencies:
|
||||
config-chain: 1.1.13
|
||||
editorconfig: 1.0.4
|
||||
glob: 10.4.5
|
||||
js-cookie: 3.0.5
|
||||
nopt: 7.2.1
|
||||
|
||||
js-cookie@3.0.5: {}
|
||||
|
||||
js-tokens@4.0.0: {}
|
||||
|
||||
js-yaml@4.1.0:
|
||||
@ -6514,7 +6465,7 @@ snapshots:
|
||||
dependencies:
|
||||
yallist: 3.1.1
|
||||
|
||||
lucide-react@0.483.0(react@19.0.0):
|
||||
lucide-react@0.484.0(react@19.0.0):
|
||||
dependencies:
|
||||
react: 19.0.0
|
||||
|
||||
@ -6997,10 +6948,6 @@ snapshots:
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
|
||||
minimatch@9.0.1:
|
||||
dependencies:
|
||||
brace-expansion: 2.0.1
|
||||
|
||||
minimatch@9.0.5:
|
||||
dependencies:
|
||||
brace-expansion: 2.0.1
|
||||
@ -7021,9 +6968,9 @@ snapshots:
|
||||
|
||||
natural-compare@1.4.0: {}
|
||||
|
||||
next@15.3.0-canary.21(@babel/core@7.26.10)(babel-plugin-react-compiler@19.0.0-beta-aeaed83-20250323)(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
|
||||
next@15.3.0-canary.24(@babel/core@7.26.10)(babel-plugin-react-compiler@19.0.0-beta-aeaed83-20250323)(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
|
||||
dependencies:
|
||||
'@next/env': 15.3.0-canary.21
|
||||
'@next/env': 15.3.0-canary.24
|
||||
'@swc/counter': 0.1.3
|
||||
'@swc/helpers': 0.5.15
|
||||
busboy: 1.6.0
|
||||
@ -7033,14 +6980,14 @@ snapshots:
|
||||
react-dom: 19.0.0(react@19.0.0)
|
||||
styled-jsx: 5.1.6(@babel/core@7.26.10)(react@19.0.0)
|
||||
optionalDependencies:
|
||||
'@next/swc-darwin-arm64': 15.3.0-canary.21
|
||||
'@next/swc-darwin-x64': 15.3.0-canary.21
|
||||
'@next/swc-linux-arm64-gnu': 15.3.0-canary.21
|
||||
'@next/swc-linux-arm64-musl': 15.3.0-canary.21
|
||||
'@next/swc-linux-x64-gnu': 15.3.0-canary.21
|
||||
'@next/swc-linux-x64-musl': 15.3.0-canary.21
|
||||
'@next/swc-win32-arm64-msvc': 15.3.0-canary.21
|
||||
'@next/swc-win32-x64-msvc': 15.3.0-canary.21
|
||||
'@next/swc-darwin-arm64': 15.3.0-canary.24
|
||||
'@next/swc-darwin-x64': 15.3.0-canary.24
|
||||
'@next/swc-linux-arm64-gnu': 15.3.0-canary.24
|
||||
'@next/swc-linux-arm64-musl': 15.3.0-canary.24
|
||||
'@next/swc-linux-x64-gnu': 15.3.0-canary.24
|
||||
'@next/swc-linux-x64-musl': 15.3.0-canary.24
|
||||
'@next/swc-win32-arm64-msvc': 15.3.0-canary.24
|
||||
'@next/swc-win32-x64-msvc': 15.3.0-canary.24
|
||||
babel-plugin-react-compiler: 19.0.0-beta-aeaed83-20250323
|
||||
sharp: 0.33.5
|
||||
transitivePeerDependencies:
|
||||
@ -7293,6 +7240,8 @@ snapshots:
|
||||
dependencies:
|
||||
fast-diff: 1.3.0
|
||||
|
||||
prettier@3.4.2: {}
|
||||
|
||||
prettier@3.5.3: {}
|
||||
|
||||
prisma@6.5.0(typescript@5.8.2):
|
||||
@ -7322,8 +7271,6 @@ snapshots:
|
||||
|
||||
property-information@7.0.0: {}
|
||||
|
||||
proto-list@1.2.4: {}
|
||||
|
||||
punycode@2.3.1: {}
|
||||
|
||||
queue-microtask@1.2.3: {}
|
||||
@ -7583,9 +7530,9 @@ snapshots:
|
||||
|
||||
require-from-string@2.0.2: {}
|
||||
|
||||
resend@4.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
|
||||
resend@4.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
|
||||
dependencies:
|
||||
'@react-email/render': 1.0.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
'@react-email/render': 1.0.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
transitivePeerDependencies:
|
||||
- react
|
||||
- react-dom
|
||||
@ -7966,22 +7913,22 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@babel/core': 7.26.10
|
||||
|
||||
stylelint-config-css-modules@4.4.0(stylelint@16.16.0(typescript@5.8.2)):
|
||||
stylelint-config-css-modules@4.4.0(stylelint@16.17.0(typescript@5.8.2)):
|
||||
dependencies:
|
||||
stylelint: 16.16.0(typescript@5.8.2)
|
||||
stylelint: 16.17.0(typescript@5.8.2)
|
||||
optionalDependencies:
|
||||
stylelint-scss: 6.11.1(stylelint@16.16.0(typescript@5.8.2))
|
||||
stylelint-scss: 6.11.1(stylelint@16.17.0(typescript@5.8.2))
|
||||
|
||||
stylelint-config-recommended@15.0.0(stylelint@16.16.0(typescript@5.8.2)):
|
||||
stylelint-config-recommended@15.0.0(stylelint@16.17.0(typescript@5.8.2)):
|
||||
dependencies:
|
||||
stylelint: 16.16.0(typescript@5.8.2)
|
||||
stylelint: 16.17.0(typescript@5.8.2)
|
||||
|
||||
stylelint-config-standard@37.0.0(stylelint@16.16.0(typescript@5.8.2)):
|
||||
stylelint-config-standard@37.0.0(stylelint@16.17.0(typescript@5.8.2)):
|
||||
dependencies:
|
||||
stylelint: 16.16.0(typescript@5.8.2)
|
||||
stylelint-config-recommended: 15.0.0(stylelint@16.16.0(typescript@5.8.2))
|
||||
stylelint: 16.17.0(typescript@5.8.2)
|
||||
stylelint-config-recommended: 15.0.0(stylelint@16.17.0(typescript@5.8.2))
|
||||
|
||||
stylelint-scss@6.11.1(stylelint@16.16.0(typescript@5.8.2)):
|
||||
stylelint-scss@6.11.1(stylelint@16.17.0(typescript@5.8.2)):
|
||||
dependencies:
|
||||
css-tree: 3.1.0
|
||||
is-plain-object: 5.0.0
|
||||
@ -7991,10 +7938,10 @@ snapshots:
|
||||
postcss-resolve-nested-selector: 0.1.6
|
||||
postcss-selector-parser: 7.1.0
|
||||
postcss-value-parser: 4.2.0
|
||||
stylelint: 16.16.0(typescript@5.8.2)
|
||||
stylelint: 16.17.0(typescript@5.8.2)
|
||||
optional: true
|
||||
|
||||
stylelint@16.16.0(typescript@5.8.2):
|
||||
stylelint@16.17.0(typescript@5.8.2):
|
||||
dependencies:
|
||||
'@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
|
||||
'@csstools/css-tokenizer': 3.0.3
|
||||
|
@ -19,6 +19,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
||||
"include": ["next-env.d.ts", "webpack.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
||||
"exclude": ["node_modules"]
|
||||
}
|
||||
|
14
webpack.d.ts
vendored
Normal file
14
webpack.d.ts
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
declare module "*.mp4" {
|
||||
const src: string;
|
||||
export default src;
|
||||
}
|
||||
|
||||
declare module "*.webm" {
|
||||
const src: string;
|
||||
export default src;
|
||||
}
|
||||
|
||||
declare module "*.vtt" {
|
||||
const src: string;
|
||||
export default src;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user