rewrite #16

Merged
imnyang merged 12 commits from rewrite into main 2026-09-09 14:38:23 +09:00
11 changed files with 364 additions and 363 deletions
Showing only changes of commit e33f173101 - Show all commits

style: format code for consistency across multiple files
Some checks failed
/ print-content (push) Failing after 26s

암냥 2026-09-07 08:07:33 +09:00

View file

@ -1,4 +1,4 @@
{ {
"recommendations": ["astro-build.astro-vscode"], "recommendations": ["astro-build.astro-vscode"],
"unwantedRecommendations": [] "unwantedRecommendations": []
} }

18
.vscode/launch.json vendored
View file

@ -1,11 +1,11 @@
{ {
"version": "0.2.0", "version": "0.2.0",
"configurations": [ "configurations": [
{ {
"command": "./node_modules/.bin/astro dev", "command": "./node_modules/.bin/astro dev",
"name": "Development server", "name": "Development server",
"request": "launch", "request": "launch",
"type": "node-terminal" "type": "node-terminal"
} }
] ]
} }

View file

@ -1,10 +1,10 @@
// @ts-check // @ts-check
import { defineConfig } from 'astro/config'; import { defineConfig } from "astro/config";
import tailwindcss from '@tailwindcss/vite'; import tailwindcss from "@tailwindcss/vite";
// https://astro.build/config // https://astro.build/config
export default defineConfig({ export default defineConfig({
vite: { vite: {
plugins: [tailwindcss()], plugins: [tailwindcss()],
} },
}); });

View file

@ -1,28 +1,28 @@
{ {
"name": "imnya-ng", "name": "imnya-ng",
"type": "module", "type": "module",
"version": "0.0.1", "version": "0.0.1",
"engines": { "engines": {
"node": ">=22.12.0" "node": ">=22.12.0"
}, },
"scripts": { "scripts": {
"dev": "astro dev", "dev": "astro dev",
"build": "astro build", "build": "astro build",
"preview": "astro preview", "preview": "astro preview",
"astro": "astro" "astro": "astro"
}, },
"dependencies": { "dependencies": {
"@sun-typeface/suit": "^2.0.5", "@sun-typeface/suit": "^2.0.5",
"astro": "7.3.1", "astro": "7.3.1",
"clsx": "^2.1.1" "clsx": "^2.1.1"
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "2.5.12", "@biomejs/biome": "2.5.12",
"@tailwindcss/vite": "^4.3.3", "@tailwindcss/vite": "^4.3.3",
"tailwindcss": "^4.3.3" "tailwindcss": "^4.3.3"
}, },
"overrides": { "overrides": {
"@types/react": "19.2.2", "@types/react": "19.2.2",
"@types/react-dom": "19.2.2" "@types/react-dom": "19.2.2"
} }
} }

View file

@ -7,21 +7,21 @@ const sortedEvents = [...events].sort((a, b) => b.date.localeCompare(a.date));
const years = [...new Set(sortedEvents.map((event) => event.date.slice(0, 4)))]; const years = [...new Set(sortedEvents.map((event) => event.date.slice(0, 4)))];
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below. // biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
const eventsByYear = years.map((year) => ({ const eventsByYear = years.map((year) => ({
year, year,
events: sortedEvents.filter((event) => event.date.startsWith(year)), events: sortedEvents.filter((event) => event.date.startsWith(year)),
})); }));
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below. // biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
const getShortDate = (date: string) => { const getShortDate = (date: string) => {
const [, month, day] = date.split("-"); const [, month, day] = date.split("-");
return `${month}.${day}`; return `${month}.${day}`;
}; };
const currentYear = new Date().getFullYear(); const currentYear = new Date().getFullYear();
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below. // biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
const daysUntilYearEnd = Math.ceil( const daysUntilYearEnd = Math.ceil(
(new Date(currentYear + 1, 0, 1).getTime() - Date.now()) / (new Date(currentYear + 1, 0, 1).getTime() - Date.now()) /
(1000 * 60 * 60 * 24), (1000 * 60 * 60 * 24),
); );
--- ---

View file

@ -1,154 +1,154 @@
--- ---
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below. // biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
const groups = [ const groups = [
{ {
id: "direct", id: "direct",
title: "연락처", title: "연락처",
items: [ items: [
{ {
name: "개인 이메일", name: "개인 이메일",
value: "me@imnya.ng", value: "me@imnya.ng",
href: "mailto:me@imnya.ng", href: "mailto:me@imnya.ng",
icon: "mail", icon: "mail",
tone: "pink", tone: "pink",
email: true, email: true,
}, },
{ {
name: "dazzle.st 이메일", name: "dazzle.st 이메일",
value: "imnyang@dazzle.st", value: "imnyang@dazzle.st",
href: "mailto:imnyang@dazzle.st", href: "mailto:imnyang@dazzle.st",
icon: "mail", icon: "mail",
tone: "green", tone: "green",
email: true, email: true,
}, },
{ {
name: "Discord", name: "Discord",
value: "@imnyang", value: "@imnyang",
href: "https://discord.com/users/909353223901569035", href: "https://discord.com/users/909353223901569035",
icon: "discord", icon: "discord",
tone: "purple", tone: "purple",
}, },
], ],
}, },
{ {
id: "social", id: "social",
title: "소셜", title: "소셜",
items: [ items: [
{ {
name: "X (Twitter)", name: "X (Twitter)",
value: "@imnya_ng", value: "@imnya_ng",
href: "https://twitter.com/imnya_ng", href: "https://twitter.com/imnya_ng",
icon: "x", icon: "x",
tone: "blue", tone: "blue",
}, },
{ {
name: "Instagram", name: "Instagram",
value: "@imnya.ng", value: "@imnya.ng",
href: "https://instagram.com/imnya.ng", href: "https://instagram.com/imnya.ng",
icon: "instagram", icon: "instagram",
tone: "pink", tone: "pink",
}, },
{ {
name: "YouTube", name: "YouTube",
value: "@imnyang", value: "@imnyang",
href: "https://youtube.com/@imnyang", href: "https://youtube.com/@imnyang",
icon: "youtube", icon: "youtube",
tone: "red", tone: "red",
}, },
], ],
}, },
{ {
id: "work", id: "work",
title: "코드와 글", title: "코드와 글",
items: [ items: [
{ {
name: "GitHub", name: "GitHub",
value: "@imnyang", value: "@imnyang",
href: "https://github.com/imnyang", href: "https://github.com/imnyang",
icon: "github", icon: "github",
tone: "neutral", tone: "neutral",
}, },
{ {
name: "git.mizuki.guru", name: "git.mizuki.guru",
value: "@imnyang", value: "@imnyang",
href: "https://git.mizuki.guru/imnyang", href: "https://git.mizuki.guru/imnyang",
icon: "mizuki", icon: "mizuki",
tone: "orange", tone: "orange",
}, },
{ {
name: "Blog", name: "Blog",
value: "blog.imnya.ng", value: "blog.imnya.ng",
href: "https://blog.imnya.ng", href: "https://blog.imnya.ng",
icon: "blog", icon: "blog",
tone: "green", tone: "green",
}, },
], ],
}, },
{ {
id: "game", id: "game",
title: "Game", title: "Game",
items: [ items: [
{ {
name: "Steam", name: "Steam",
value: "@imnyang", value: "@imnyang",
href: "https://steamcommunity.com/id/imnyang/", href: "https://steamcommunity.com/id/imnyang/",
icon: "steam", icon: "steam",
tone: "blue", tone: "blue",
}, },
{ {
name: "maimai", name: "maimai",
value: "@imnya.ng", value: "@imnya.ng",
href: "https://mai.sft.sh/imnyang", href: "https://mai.sft.sh/imnyang",
icon: "maimai", icon: "maimai",
tone: "blue", tone: "blue",
}, },
{ {
name: "Project Sekai KR", name: "Project Sekai KR",
value: "7354623251148069648", value: "7354623251148069648",
href: "#", href: "#",
icon: "project-sekai", icon: "project-sekai",
tone: "blue", tone: "blue",
}, },
{ {
name: "Project Sekai JP", name: "Project Sekai JP",
value: "729310364018688008", value: "729310364018688008",
href: "#", href: "#",
icon: "project-sekai", icon: "project-sekai",
tone: "blue", tone: "blue",
}, },
{ {
name: "VRChat", name: "VRChat",
value: "@imnyang", value: "@imnyang",
href: "https://vrchat.com/home/user/usr_d53ac697-182d-40d0-9fd8-1a7442b0ebfd", href: "https://vrchat.com/home/user/usr_d53ac697-182d-40d0-9fd8-1a7442b0ebfd",
icon: "vrchat", icon: "vrchat",
tone: "blue", tone: "blue",
}, },
], ],
}, },
]; ];
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below. // biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
const imageIcons: Record<string, { src: string; monochrome: boolean }> = { const imageIcons: Record<string, { src: string; monochrome: boolean }> = {
github: { src: "/icon/github.svg", monochrome: true }, github: { src: "/icon/github.svg", monochrome: true },
discord: { src: "/icon/discord.svg", monochrome: true }, discord: { src: "/icon/discord.svg", monochrome: true },
mizuki: { src: "/icon/mizuki.svg", monochrome: false }, mizuki: { src: "/icon/mizuki.svg", monochrome: false },
// Source: https://github.com/simple-icons/simple-icons/blob/develop/icons/steam.svg // Source: https://github.com/simple-icons/simple-icons/blob/develop/icons/steam.svg
steam: { src: "/icon/steam.svg", monochrome: true }, steam: { src: "/icon/steam.svg", monochrome: true },
maimai: { src: "/icon/maimai.webp", monochrome: false }, maimai: { src: "/icon/maimai.webp", monochrome: false },
vrchat: { src: "/icon/vrchat.svg", monochrome: true }, vrchat: { src: "/icon/vrchat.svg", monochrome: true },
// Source: https://pjsekai.sega.jp/assets/data/webp/icon/icon_app.png.webp // Source: https://pjsekai.sega.jp/assets/data/webp/icon/icon_app.png.webp
"project-sekai": { src: "/icon/project-sekai.webp", monochrome: false }, "project-sekai": { src: "/icon/project-sekai.webp", monochrome: false },
}; };
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below. // biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
const paths: Record<string, string> = { const paths: Record<string, string> = {
mail: "M22 12a10 10 0 1 0-4 8 M16 8v5a3 3 0 0 0 6 0v-1 M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0", mail: "M22 12a10 10 0 1 0-4 8 M16 8v5a3 3 0 0 0 6 0v-1 M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0",
x: "M4 3h4l12 18h-4L4 3Z M20 3l-7 8 M4 21l7-8", x: "M4 3h4l12 18h-4L4 3Z M20 3l-7 8 M4 21l7-8",
instagram: instagram:
"M7 3h10a4 4 0 0 1 4 4v10a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V7a4 4 0 0 1 4-4Z M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0 M17.5 6.5h.01", "M7 3h10a4 4 0 0 1 4 4v10a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V7a4 4 0 0 1 4-4Z M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0 M17.5 6.5h.01",
youtube: youtube:
"M7 5h10a5 5 0 0 1 5 5v4a5 5 0 0 1-5 5H7a5 5 0 0 1-5-5v-4a5 5 0 0 1 5-5Z M10 9l5 3-5 3V9Z", "M7 5h10a5 5 0 0 1 5 5v4a5 5 0 0 1-5 5H7a5 5 0 0 1-5-5v-4a5 5 0 0 1 5-5Z M10 9l5 3-5 3V9Z",
blog: "M5 3h11l3 3v15H5V3Z M15 3v4h4 M9 11h6 M9 15h6", blog: "M5 3h11l3 3v15H5V3Z M15 3v4h4 M9 11h6 M9 15h6",
}; };
--- ---

View file

@ -1,7 +1,7 @@
--- ---
export interface Props { export interface Props {
targetDate: string; targetDate: string;
label?: string; label?: string;
} }
const { targetDate, label } = Astro.props; const { targetDate, label } = Astro.props;

View file

@ -1,6 +1,6 @@
--- ---
const videoUrl = const videoUrl =
"https://www.youtube.com/live/5HDW7u3xt6Y?si=SgPxg83YMdeqGo3t&t=8366"; "https://www.youtube.com/live/5HDW7u3xt6Y?si=SgPxg83YMdeqGo3t&t=8366";
const roles = ["Broadcast Manager", "ARG Creator", "Developer"]; const roles = ["Broadcast Manager", "ARG Creator", "Developer"];
--- ---

View file

@ -5,21 +5,21 @@ const sortedEvents = [...events].sort((a, b) => b.date.localeCompare(a.date));
const years = [...new Set(sortedEvents.map((event) => event.date.slice(0, 4)))]; const years = [...new Set(sortedEvents.map((event) => event.date.slice(0, 4)))];
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below. // biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
const eventsByYear = years.map((year) => ({ const eventsByYear = years.map((year) => ({
year, year,
events: sortedEvents.filter((event) => event.date.startsWith(year)), events: sortedEvents.filter((event) => event.date.startsWith(year)),
})); }));
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below. // biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
const getShortDate = (date: string) => { const getShortDate = (date: string) => {
const [, month, day] = date.split("-"); const [, month, day] = date.split("-");
return `${month}.${day}`; return `${month}.${day}`;
}; };
const currentYear = new Date().getFullYear(); const currentYear = new Date().getFullYear();
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below. // biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
const daysUntilYearEnd = Math.ceil( const daysUntilYearEnd = Math.ceil(
(new Date(currentYear + 1, 0, 1).getTime() - Date.now()) / (new Date(currentYear + 1, 0, 1).getTime() - Date.now()) /
(1000 * 60 * 60 * 24), (1000 * 60 * 60 * 24),
); );
--- ---

View file

@ -1,162 +1,163 @@
interface Event { interface Event {
description: string; description: string;
category: string; category: string;
date: string; date: string;
link?: string; link?: string;
} }
export const events: Event[] = [ export const events: Event[] = [
{ {
description: "제 2회 SSD CTF - 최다 풀이자 SSD상 수상", description: "제 2회 SSD CTF - 최다 풀이자 SSD상 수상",
category: "Award", category: "Award",
date: "2026-08-30", date: "2026-08-30",
link: "https://forge.hspace.io/competitions/6a8b93c72586e8e70978b4df" link: "https://forge.hspace.io/competitions/6a8b93c72586e8e70978b4df",
}, },
{ {
description: "33회 해킹캠프 발표 - LLM에 로그인했더니 내 계정이 아니게 됐다???", description:
category: "Presentation", "33회 해킹캠프 발표 - LLM에 로그인했더니 내 계정이 아니게 됐다???",
date: "2026-08-22" category: "Presentation",
}, date: "2026-08-22",
{ },
description: "2026 사이버 가디언즈 CMX 대회 장려상 수상", {
category: "Award", description: "2026 사이버 가디언즈 CMX 대회 장려상 수상",
date: "2026-08-18" category: "Award",
}, date: "2026-08-18",
{ },
description: "선린인터넷고등학교 전공동아리 Layer7 26기 입부", {
category: "Education", description: "선린인터넷고등학교 전공동아리 Layer7 26기 입부",
date: "2026-04-01" category: "Education",
}, date: "2026-04-01",
{ },
description: "선린인터넷고등학교 121기 입학", {
category: "Education", description: "선린인터넷고등학교 121기 입학",
date: "2026-03-03" category: "Education",
}, date: "2026-03-03",
{ },
description: "리눅스 마스터 2급", {
category: "License", description: "리눅스 마스터 2급",
date: "2026-01-02" category: "License",
}, date: "2026-01-02",
{ },
description: "화이트햇스쿨 3기 이수", {
category: "Education", description: "화이트햇스쿨 3기 이수",
date: "2025-09-24", category: "Education",
link: "https://whitehatschool.kr/home/kor/main.do", date: "2025-09-24",
}, link: "https://whitehatschool.kr/home/kor/main.do",
{ },
date: "2025-09-13", {
description: "선린인터넷고 소프트웨어 나눔축제 AnA 이수", date: "2025-09-13",
category: "Education", description: "선린인터넷고 소프트웨어 나눔축제 AnA 이수",
link: "https://ssf.sunrin.io/", category: "Education",
}, link: "https://ssf.sunrin.io/",
{ },
date: "2025-07-26", {
description: "선린인터넷고 여름방학 중학생 특별교육 우수 이수 (프로그래밍)", date: "2025-07-26",
category: "Education", description: "선린인터넷고 여름방학 중학생 특별교육 우수 이수 (프로그래밍)",
link: "https://sunrint.sen.hs.kr/", category: "Education",
}, link: "https://sunrint.sen.hs.kr/",
{ },
date: "2025-01-19", {
description: "2025 Sunrin LOGCON(TeamLog 주최) 중등부 3위", date: "2025-01-19",
category: "Award", description: "2025 Sunrin LOGCON(TeamLog 주최) 중등부 3위",
link: "https://teamlog.kr", category: "Award",
}, link: "https://teamlog.kr",
{ },
date: "2025-01-12", {
description: "2024 Sunrin Layer7 CTF 중등부 2위", date: "2025-01-12",
category: "Award", description: "2024 Sunrin Layer7 CTF 중등부 2위",
link: "https://layer7.kr", category: "Award",
}, link: "https://layer7.kr",
{ },
date: "2025-01-10", {
description: "선린인터넷고 겨울방학 중학생 특별교육 이수 (IT경영학과)", date: "2025-01-10",
category: "Education", description: "선린인터넷고 겨울방학 중학생 특별교육 이수 (IT경영학과)",
link: "https://sunrint.sen.hs.kr/", category: "Education",
}, link: "https://sunrint.sen.hs.kr/",
{ },
date: "2024-12-14", {
description: date: "2024-12-14",
"2024 글로벌스타트업학교 K-청소년스타트업 경진대회 우수상 수상", description:
category: "Award", "2024 글로벌스타트업학교 K-청소년스타트업 경진대회 우수상 수상",
link: "https://www.ncf.or.kr/projects/'2024-%EA%B8%80%EB%A1%9C%EB%B2%8C%EC%8A%A4%ED%83%80%ED%8A%B8%EC%97%85%ED%95%99%EA%B5%90-k-%EC%B2%AD%EC%86%8C%EB%85%84%EC%8A%A4%ED%83%80%ED%8A%B8%EC%97%85-%EA%B2%BD%EC%A7%84%EB%8C%80%ED%9A%8C'-%EC%B0%B8%EA%B0%80%EC%9E%90-%EB%AA%A8%EC%A7%91", category: "Award",
}, link: "https://www.ncf.or.kr/projects/'2024-%EA%B8%80%EB%A1%9C%EB%B2%8C%EC%8A%A4%ED%83%80%ED%8A%B8%EC%97%85%ED%95%99%EA%B5%90-k-%EC%B2%AD%EC%86%8C%EB%85%84%EC%8A%A4%ED%83%80%ED%8A%B8%EC%97%85-%EA%B2%BD%EC%A7%84%EB%8C%80%ED%9A%8C'-%EC%B0%B8%EA%B0%80%EC%9E%90-%EB%AA%A8%EC%A7%91",
{ },
date: "2024-12-07", {
description: "글로벌 스타트업 학교 팀 1위", date: "2024-12-07",
category: "Award", description: "글로벌 스타트업 학교 팀 1위",
link: "https://ncf.or.kr", category: "Award",
}, link: "https://ncf.or.kr",
{ },
date: "2024-12-07", {
description: "글로벌 스타트업 학교 개인 최우수상", date: "2024-12-07",
category: "Award", description: "글로벌 스타트업 학교 개인 최우수상",
link: "https://ncf.or.kr", category: "Award",
}, link: "https://ncf.or.kr",
{ },
date: "2024-08-18", {
description: "29회 해킹캠프 CTF 1위 (고민중독)", date: "2024-08-18",
category: "Award & Conference", description: "29회 해킹캠프 CTF 1위 (고민중독)",
link: "https://ctf.hackingcamp.org/", category: "Award & Conference",
}, link: "https://ctf.hackingcamp.org/",
{ },
date: "2024-08-01", {
description: date: "2024-08-01",
"글로벌 스타트업 학교 2기 베트남 해외 연수 데모데이 대상 (1위)", description:
category: "Award", "글로벌 스타트업 학교 2기 베트남 해외 연수 데모데이 대상 (1위)",
link: "http://ncf.or.kr", category: "Award",
}, link: "http://ncf.or.kr",
{ },
date: "2024-05-16", {
description: "글로벌 스타트업 학교 2기 합격", date: "2024-05-16",
category: "Education", description: "글로벌 스타트업 학교 2기 합격",
link: "http://ncf.or.kr", category: "Education",
}, link: "http://ncf.or.kr",
{ },
date: "2024-05-11", {
description: "LG AI 청소년 캠프 1기 LG 탐색상 수상", date: "2024-05-11",
category: "Award", description: "LG AI 청소년 캠프 1기 LG 탐색상 수상",
link: "https://lgaiyouthcamp.or.kr/", category: "Award",
}, link: "https://lgaiyouthcamp.or.kr/",
{ },
date: "2024-05-11", {
description: "LG AI 청소년 캠프 1기 수료", date: "2024-05-11",
category: "Award & Education", description: "LG AI 청소년 캠프 1기 수료",
link: "https://lgaiyouthcamp.or.kr/", category: "Award & Education",
}, link: "https://lgaiyouthcamp.or.kr/",
{ },
date: "2023-11-14", {
description: "인천상정중학교 2023학년도 SW 문제 해결 활동 우수상(2위) 수여", date: "2023-11-14",
category: "Award", description: "인천상정중학교 2023학년도 SW 문제 해결 활동 우수상(2위) 수여",
}, category: "Award",
{ },
date: "2023-09-02", {
description: date: "2023-09-02",
"선린인터넷고등학교 제6회 소프트웨어나눔축제 Layer7 부서 과정 이수", description:
category: "Education", "선린인터넷고등학교 제6회 소프트웨어나눔축제 Layer7 부서 과정 이수",
}, category: "Education",
{ },
date: "2023-07-24", {
description: "한국정보기술연구원이 주도하는 사이버 가디언즈 보안캠프 수료", date: "2023-07-24",
category: "Education", description: "한국정보기술연구원이 주도하는 사이버 가디언즈 보안캠프 수료",
}, category: "Education",
{ },
date: "2023-05-15", {
description: "한국 코드페어 예선 진출", date: "2023-05-15",
category: "Award", description: "한국 코드페어 예선 진출",
}, category: "Award",
{ },
date: "2022-12-20", {
description: "2022 SW영재 창작대회 은상 수상", date: "2022-12-20",
category: "Award", description: "2022 SW영재 창작대회 은상 수상",
}, category: "Award",
{ },
date: "2022-09-27", {
description: "2022 삼성 주니어 SW 창작대회 본선 진출", date: "2022-09-27",
category: "Award", description: "2022 삼성 주니어 SW 창작대회 본선 진출",
}, category: "Award",
{ },
date: "2022-05-23", {
description: "2022학년도 석정초SW영재학급 첫 수업", date: "2022-05-23",
category: "Education", description: "2022학년도 석정초SW영재학급 첫 수업",
} category: "Education",
},
]; ];

View file

@ -1,11 +1,11 @@
{ {
"extends": "astro/tsconfigs/strict", "extends": "astro/tsconfigs/strict",
"compilerOptions": { "compilerOptions": {
"baseUrl": ".", "baseUrl": ".",
"paths": { "paths": {
"@/*": ["./src/*"] "@/*": ["./src/*"]
} }
}, },
"include": [".astro/types.d.ts", "**/*"], "include": [".astro/types.d.ts", "**/*"],
"exclude": ["dist"] "exclude": ["dist"]
} }