Update profile to AI Solution Architect role and add AI/ML skills
Reflect career progression from Technical Product Owner to AI Solution Architect & Technical Architect (since June 2024). Add AI & ML skill category (LangChain, RAG, Agentic Systems, MCP Server). Pin dependency versions, clean up config, move favicon, and add new PDF assets. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Binary file not shown.
Binary file not shown.
+45
-14
@@ -15,17 +15,36 @@ interface Job {
|
|||||||
const jobs: Job[] = [
|
const jobs: Job[] = [
|
||||||
{
|
{
|
||||||
id: 'job1',
|
id: 'job1',
|
||||||
title: 'Technischer Product Owner',
|
title: 'AI Solution Architect & Technical Architect',
|
||||||
company: 'IT im Bereich Finanzen und Banken',
|
company: 'Sopra Financial Technology GmbH',
|
||||||
location: 'Regulatory & Risk, Nürnberg',
|
location: 'Managed Application & Cloud Service, Nürnberg',
|
||||||
period: 'Juni 2021 - heute',
|
period: 'Juni 2024 - heute',
|
||||||
description: 'Technischer Product Owner in einem Nürnberger Unternehmen, welches die komplette Banken IT steuert.',
|
description: 'Konzeption und Implementierung von Enterprise-AI-Lösungen für regulierte Fintech-Produkte im Bereich Antifinancial Crime (AFC) und Compliance. Architektonische Begleitung mit Fokus auf Cloud-Native-Architekturen.',
|
||||||
responsibilities: [
|
responsibilities: [
|
||||||
'Sicherstellung des Betriebs',
|
'Architektonische Konzeption von KI-Initiativen im regulierten Bankenumfeld (BaFin/KRITIS)',
|
||||||
'Planung und Priorisierung der Ressourcen & Aufgaben',
|
'Design und Implementierung von AI Agentic Systemen für AFC-Compliance',
|
||||||
'Technische Kommunikation und Architektur',
|
'Aufbau skalierbarer RAG-basierter Knowledge-Management-Architekturen mit Vector Databases',
|
||||||
'Migration der Infrastruktur K8s on prem & Cloud',
|
'Implementierung von LangChain/LangGraph-basierten Workflows in Python',
|
||||||
'Aufbau neuer Services',
|
'Integration von MCP-Servern für erweiterte AI-Funktionalitäten',
|
||||||
|
'Design skalierbarer Cloud-Infrastrukturen auf Azure- und AWS-Basis',
|
||||||
|
'Infrastructure-as-Code mit Terraform und Ansible',
|
||||||
|
'Technische Konzepte und Architekturdokumentation für Kundenangebote',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'job1b',
|
||||||
|
title: 'Technical Architect & Technical Product Owner',
|
||||||
|
company: 'Sopra Financial Technology GmbH',
|
||||||
|
location: 'Regulatory & Risk, Nürnberg',
|
||||||
|
period: 'Juni 2021 - Juni 2024',
|
||||||
|
description: 'Verantwortung für Betrieb und Weiterentwicklung der Fintech-Produkte Abacus360, Okular und zeb.Trading im Bankenmeldewesen. Sicherstellung des störungsfreien Betriebs unter Einhaltung strenger SLA und regulatorischer Vorgaben.',
|
||||||
|
responsibilities: [
|
||||||
|
'Technische Projektleitung der Kubernetes-Migration ohne Ausfallzeiten',
|
||||||
|
'Steuerung internationaler Teams inkl. Nearshore-Partner (Polen)',
|
||||||
|
'Anforderungsmanagement und Priorisierung technischer Features',
|
||||||
|
'Sicherstellung der technischen und regulatorischen Compliance',
|
||||||
|
'Ressourcen- und Budgetplanung, Reporting an Management',
|
||||||
|
'Aktive Teilnahme am Cost-Savings-Programm',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -202,14 +221,26 @@ export default function Experience() {
|
|||||||
<div className="mt-8 pt-6 border-t border-gray-200">
|
<div className="mt-8 pt-6 border-t border-gray-200">
|
||||||
<div className="flex flex-wrap gap-2">
|
<div className="flex flex-wrap gap-2">
|
||||||
{activeJob === 0 && (
|
{activeJob === 0 && (
|
||||||
|
<>
|
||||||
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">LangChain / LangGraph</span>
|
||||||
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">RAG & Vector DB</span>
|
||||||
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">AI Agentic Systems</span>
|
||||||
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">MCP Server</span>
|
||||||
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Azure / AWS</span>
|
||||||
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Terraform</span>
|
||||||
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Python</span>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
{activeJob === 1 && (
|
||||||
<>
|
<>
|
||||||
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Kubernetes</span>
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Kubernetes</span>
|
||||||
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Cloud Migration</span>
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Cloud Migration</span>
|
||||||
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Systemarchitektur</span>
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Systemarchitektur</span>
|
||||||
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Financial IT</span>
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Financial IT</span>
|
||||||
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Compliance</span>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
{activeJob === 1 && (
|
{activeJob === 2 && (
|
||||||
<>
|
<>
|
||||||
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Kubernetes</span>
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Kubernetes</span>
|
||||||
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Mobile Apps</span>
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Mobile Apps</span>
|
||||||
@@ -217,7 +248,7 @@ export default function Experience() {
|
|||||||
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Digitalisierung</span>
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Digitalisierung</span>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
{activeJob === 2 && (
|
{activeJob === 3 && (
|
||||||
<>
|
<>
|
||||||
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">E-Commerce</span>
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">E-Commerce</span>
|
||||||
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Laravel</span>
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Laravel</span>
|
||||||
@@ -226,7 +257,7 @@ export default function Experience() {
|
|||||||
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Team Leadership</span>
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Team Leadership</span>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
{activeJob === 3 && (
|
{activeJob === 4 && (
|
||||||
<>
|
<>
|
||||||
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Joomla</span>
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Joomla</span>
|
||||||
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">E-Mail Marketing</span>
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">E-Mail Marketing</span>
|
||||||
@@ -236,7 +267,7 @@ export default function Experience() {
|
|||||||
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Print Design</span>
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Print Design</span>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
{activeJob === 4 && (
|
{activeJob === 5 && (
|
||||||
<>
|
<>
|
||||||
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">HTML/CSS/JS</span>
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">HTML/CSS/JS</span>
|
||||||
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">CMS Development</span>
|
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">CMS Development</span>
|
||||||
|
|||||||
+32
-26
@@ -36,22 +36,23 @@ export default function Intro() {
|
|||||||
];
|
];
|
||||||
|
|
||||||
const skills = [
|
const skills = [
|
||||||
|
'AI Solution Architecture',
|
||||||
|
'LangChain / LangGraph',
|
||||||
|
'RAG & Vector Databases',
|
||||||
|
'Technical Architecture',
|
||||||
|
'Kubernetes & Cloud',
|
||||||
'Product Owner',
|
'Product Owner',
|
||||||
'Technical Project Manager',
|
'Python',
|
||||||
'Laravel',
|
'Laravel',
|
||||||
'Vue.js',
|
'Vue.js',
|
||||||
'PHP',
|
|
||||||
'JavaScript',
|
|
||||||
'MySQL',
|
|
||||||
'MSSQL',
|
|
||||||
'Systemarchitektur',
|
'Systemarchitektur',
|
||||||
'User Experience',
|
|
||||||
'Team Leadership',
|
'Team Leadership',
|
||||||
'Compliance',
|
'Compliance & Regulatorik',
|
||||||
];
|
];
|
||||||
|
|
||||||
const timeline = [
|
const timeline = [
|
||||||
{ year: '2021 - heute', company: 'Sopra Financial Technology GmbH', role: 'Technical Product Owner' },
|
{ year: '2024 - heute', company: 'Sopra Financial Technology GmbH', role: 'AI Solution Architect & Technical Architect' },
|
||||||
|
{ year: '2021 - 2024', company: 'Sopra Financial Technology GmbH', role: 'Technical Product Owner – Bankenmeldewesen' },
|
||||||
{ year: '2019 - 2020', company: 'APPsolute Mobility', role: 'Product Owner & Technical Project Manager' },
|
{ year: '2019 - 2020', company: 'APPsolute Mobility', role: 'Product Owner & Technical Project Manager' },
|
||||||
{ year: '2014 - 2019', company: 'SCC Fahrzeugtechnik GmbH', role: 'Leiter IT Abteilung' },
|
{ year: '2014 - 2019', company: 'SCC Fahrzeugtechnik GmbH', role: 'Leiter IT Abteilung' },
|
||||||
{ year: '2010 - 2014', company: 'Trustec Energy GmbH', role: 'Marketing Manager' },
|
{ year: '2010 - 2014', company: 'Trustec Energy GmbH', role: 'Marketing Manager' },
|
||||||
@@ -158,31 +159,36 @@ export default function Intro() {
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Bei der{' '}
|
Bei der{' '}
|
||||||
<strong className="text-text font-semibold">Sopra Financial Technology GmbH</strong> bin
|
<strong className="text-text font-semibold">Sopra Financial Technology GmbH</strong> war
|
||||||
ich seit 2021 als{' '}
|
ich seit 2021 zunächst als{' '}
|
||||||
<strong className="text-text font-semibold">Technical Product Owner</strong> im
|
<strong className="text-text font-semibold">Technical Product Owner</strong> im
|
||||||
Bereich Regulatory & Risk tätig. Ich verantworte{' '}
|
Bereich Regulatory & Risk tätig. Ich verantwortete{' '}
|
||||||
<strong className="text-text font-semibold">3 Fintech-Produkte</strong> im{' '}
|
<strong className="text-text font-semibold">3 Fintech-Produkte</strong> im{' '}
|
||||||
<strong className="text-text font-semibold">Bankenmeldewesen</strong> und stelle
|
<strong className="text-text font-semibold">Bankenmeldewesen</strong> (Abacus360, Okular, zeb.Trading) und
|
||||||
deren reibungslosen Betrieb unter strikten{' '}
|
leitete u.a. die erfolgreiche{' '}
|
||||||
<strong className="text-text font-semibold">regulatorischen Vorgaben</strong> sicher.
|
<strong className="text-text font-semibold">Kubernetes-Migration ohne Ausfallzeiten</strong>{' '}
|
||||||
|
unter strikten regulatorischen Vorgaben.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Zu meinen Kernaufgaben gehören die{' '}
|
Seit Juni 2024 bin ich als{' '}
|
||||||
|
<strong className="text-text font-semibold">AI Solution Architect</strong> und{' '}
|
||||||
|
<strong className="text-text font-semibold">Technical Architect</strong> tätig.
|
||||||
|
Ich konzipiere und begleite die unternehmensweite{' '}
|
||||||
|
<strong className="text-text font-semibold">KI-Initiative im regulierten Bankenumfeld</strong> –
|
||||||
|
von{' '}
|
||||||
<strong className="text-text font-semibold">
|
<strong className="text-text font-semibold">
|
||||||
technische Projektleitung komplexer Migrationen
|
AI Agentic Systems und RAG-basierten Knowledge-Management-Architekturen
|
||||||
</strong>{' '}
|
</strong>{' '}
|
||||||
(z.B. Kubernetes-Migration ohne Ausfallzeiten), die Steuerung{' '}
|
bis hin zu{' '}
|
||||||
<strong className="text-text font-semibold">
|
<strong className="text-text font-semibold">
|
||||||
internationaler Teams (inkl. Nearshore)
|
LangChain/LangGraph-Workflows
|
||||||
</strong>, Code Reviews sowie die aktive Teilnahme an{' '}
|
</strong>{' '}
|
||||||
<strong className="text-text font-semibold">Cost-Savings-Programmen</strong>.
|
und der Integration von MCP-Servern. Gleichzeitig verantworte ich als Technical Architect
|
||||||
Darüber hinaus arbeite ich in den Bereichen{' '}
|
Cloud-Native-Architekturen auf{' '}
|
||||||
<strong className="text-text font-semibold">
|
<strong className="text-text font-semibold">Azure und AWS</strong> mit{' '}
|
||||||
Managed Application & Cloud Service
|
<strong className="text-text font-semibold">Kubernetes, Terraform und Ansible</strong>{' '}
|
||||||
</strong>, wo ich neue Produkte architektonisch begleite und bei
|
und unterstütze bei Bieterverfahren mit technischer Expertise.
|
||||||
Bieterverfahren meine Expertise einbringe.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p className="pt-4 border-t border-gray-200">
|
<p className="pt-4 border-t border-gray-200">
|
||||||
|
|||||||
+23
-14
@@ -9,32 +9,40 @@ interface Skill {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const skillsData: Skill[] = [
|
const skillsData: Skill[] = [
|
||||||
|
// AI & ML
|
||||||
|
{ name: 'LangChain / LangGraph', level: 4, category: 'AI & ML' },
|
||||||
|
{ name: 'RAG & Vector Databases', level: 4, category: 'AI & ML' },
|
||||||
|
{ name: 'LLMs (Ollama, LM Studio, Claude)', level: 4, category: 'AI & ML' },
|
||||||
|
{ name: 'AI Agentic Systems', level: 4, category: 'AI & ML' },
|
||||||
|
{ name: 'MCP Server Integration', level: 3, category: 'AI & ML' },
|
||||||
|
{ name: 'Prompt Engineering', level: 4, category: 'AI & ML' },
|
||||||
|
|
||||||
// Programmiersprachen
|
// Programmiersprachen
|
||||||
|
{ name: 'Python', level: 4, category: 'Programmiersprachen' },
|
||||||
{ name: 'PHP & FW Laravel', level: 4, category: 'Programmiersprachen' },
|
{ name: 'PHP & FW Laravel', level: 4, category: 'Programmiersprachen' },
|
||||||
{ name: 'Python & Perl', level: 4, category: 'Programmiersprachen' },
|
|
||||||
{ name: 'JavaScript', level: 4, category: 'Programmiersprachen' },
|
{ name: 'JavaScript', level: 4, category: 'Programmiersprachen' },
|
||||||
{ name: 'Node.js', level: 3, category: 'Programmiersprachen' },
|
{ name: 'Node.js', level: 3, category: 'Programmiersprachen' },
|
||||||
{ name: 'Vue.js / Next.js', level: 4, category: 'Programmiersprachen' },
|
{ name: 'Vue.js / Next.js', level: 4, category: 'Programmiersprachen' },
|
||||||
{ name: 'HTML', level: 5, category: 'Programmiersprachen' },
|
{ name: 'HTML', level: 5, category: 'Programmiersprachen' },
|
||||||
{ name: 'CSS & Frameworks', level: 5, category: 'Programmiersprachen' },
|
{ name: 'CSS & Frameworks', level: 5, category: 'Programmiersprachen' },
|
||||||
{ name: 'Sass', level: 4, category: 'Programmiersprachen' },
|
{ name: 'Sass', level: 4, category: 'Programmiersprachen' },
|
||||||
|
|
||||||
// Datenbanken
|
// Datenbanken
|
||||||
{ name: 'SQL (MS/DB2/Oracle)', level: 4, category: 'Datenbanken' },
|
{ name: 'SQL (MS/DB2/Oracle)', level: 4, category: 'Datenbanken' },
|
||||||
{ name: 'MySQL, MariaDB, Postgres', level: 4, category: 'Datenbanken' },
|
{ name: 'MySQL, MariaDB, Postgres', level: 4, category: 'Datenbanken' },
|
||||||
|
{ name: 'ChromaDB / Vector DBs', level: 3, category: 'Datenbanken' },
|
||||||
{ name: 'Redis', level: 4, category: 'Datenbanken' },
|
{ name: 'Redis', level: 4, category: 'Datenbanken' },
|
||||||
{ name: 'MongoDB', level: 3, category: 'Datenbanken' },
|
{ name: 'MongoDB', level: 3, category: 'Datenbanken' },
|
||||||
{ name: 'CouchDB', level: 3, category: 'Datenbanken' },
|
{ name: 'CouchDB', level: 3, category: 'Datenbanken' },
|
||||||
{ name: 'Firebase', level: 1, category: 'Datenbanken' },
|
|
||||||
|
// DevOps & Cloud
|
||||||
// DevOps
|
{ name: 'Linux Bash Scripting', level: 4, category: 'DevOps & Cloud' },
|
||||||
{ name: 'Linux Bash Scripting', level: 4, category: 'DevOps' },
|
{ name: 'Git / SVN', level: 4, category: 'DevOps & Cloud' },
|
||||||
{ name: 'Git / SVN', level: 4, category: 'DevOps' },
|
{ name: 'Docker / Kubernetes', level: 4, category: 'DevOps & Cloud' },
|
||||||
{ name: 'Docker / Kubernetes', level: 3, category: 'DevOps' },
|
{ name: 'Terraform / Ansible', level: 3, category: 'DevOps & Cloud' },
|
||||||
{ name: 'AWS', level: 3, category: 'DevOps' },
|
{ name: 'AWS / Azure', level: 3, category: 'DevOps & Cloud' },
|
||||||
{ name: 'CI/CD Pipelines', level: 4, category: 'DevOps' },
|
{ name: 'CI/CD Pipelines', level: 4, category: 'DevOps & Cloud' },
|
||||||
{ name: 'Draw.io Architektur', level: 4, category: 'DevOps' },
|
|
||||||
|
|
||||||
// Grafik & Design
|
// Grafik & Design
|
||||||
{ name: 'Adobe Suite (u.a. PS/XD)', level: 4, category: 'Grafik & Design' },
|
{ name: 'Adobe Suite (u.a. PS/XD)', level: 4, category: 'Grafik & Design' },
|
||||||
{ name: 'Affinity', level: 4, category: 'Grafik & Design' },
|
{ name: 'Affinity', level: 4, category: 'Grafik & Design' },
|
||||||
@@ -42,14 +50,15 @@ const skillsData: Skill[] = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
const categories = [
|
const categories = [
|
||||||
|
'AI & ML',
|
||||||
'Programmiersprachen',
|
'Programmiersprachen',
|
||||||
'Datenbanken',
|
'Datenbanken',
|
||||||
'DevOps',
|
'DevOps & Cloud',
|
||||||
'Grafik & Design',
|
'Grafik & Design',
|
||||||
];
|
];
|
||||||
|
|
||||||
export default function Skills() {
|
export default function Skills() {
|
||||||
const [activeCategory, setActiveCategory] = useState<string>('Programmiersprachen');
|
const [activeCategory, setActiveCategory] = useState<string>('AI & ML');
|
||||||
const [isVisible, setIsVisible] = useState(false);
|
const [isVisible, setIsVisible] = useState(false);
|
||||||
const ref = useRef<HTMLElement>(null);
|
const ref = useRef<HTMLElement>(null);
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -1,9 +1,9 @@
|
|||||||
import type { NextConfig } from "next";
|
import type { NextConfig } from "next";
|
||||||
|
|
||||||
const nextConfig: NextConfig = {
|
const nextConfig: NextConfig = {
|
||||||
output: 'export', // Statischer Export aktivieren
|
output: 'export',
|
||||||
images: {
|
images: {
|
||||||
unoptimized: true, // Next.js Image Optimierung deaktivieren (für statischen Export nötig)
|
unoptimized: true,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Generated
+13
-22
@@ -15,13 +15,13 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/eslintrc": "^3",
|
"@eslint/eslintrc": "^3",
|
||||||
"@tailwindcss/postcss": "^4",
|
"@tailwindcss/postcss": "^4",
|
||||||
"@types/node": "^20",
|
"@types/node": "20.19.33",
|
||||||
"@types/react": "^19",
|
"@types/react": "19.2.13",
|
||||||
"@types/react-dom": "^19",
|
"@types/react-dom": "^19",
|
||||||
"eslint": "^9",
|
"eslint": "^9",
|
||||||
"eslint-config-next": "15.5.4",
|
"eslint-config-next": "15.5.4",
|
||||||
"tailwindcss": "^4",
|
"tailwindcss": "^4",
|
||||||
"typescript": "^5"
|
"typescript": "5.9.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@alloc/quick-lru": {
|
"node_modules/@alloc/quick-lru": {
|
||||||
@@ -1291,9 +1291,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
"version": "20.19.19",
|
"version": "20.19.33",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.19.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.33.tgz",
|
||||||
"integrity": "sha512-pb1Uqj5WJP7wrcbLU7Ru4QtA0+3kAXrkutGiD26wUKzSMgNNaPARTUDQmElUXp64kh3cWdou3Q0C7qwwxqSFmg==",
|
"integrity": "sha512-Rs1bVAIdBs5gbTIKza/tgpMuG1k3U/UMJLWecIMxNdJFDMzcM5LOiLVRYh3PilWEYDIeUDv7bpiHPLPsbydGcw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -1301,14 +1301,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/react": {
|
"node_modules/@types/react": {
|
||||||
"version": "19.1.16",
|
"version": "19.2.13",
|
||||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.16.tgz",
|
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.13.tgz",
|
||||||
"integrity": "sha512-WBM/nDbEZmDUORKnh5i1bTnAz6vTohUf9b8esSMu+b24+srbaxa04UbJgWx78CVfNXA20sNu0odEIluZDFdCog==",
|
"integrity": "sha512-KkiJeU6VbYbUOp5ITMIc7kBfqlYkKA5KhEHVrGMmUUMt7NeaZg65ojdPk+FtNrBAOXNVM5QM72jnADjM+XVRAQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"csstype": "^3.0.2"
|
"csstype": "^3.2.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/react-dom": {
|
"node_modules/@types/react-dom": {
|
||||||
@@ -1367,7 +1366,6 @@
|
|||||||
"integrity": "sha512-TGf22kon8KW+DeKaUmOibKWktRY8b2NSAZNdtWh798COm1NWx8+xJ6iFBtk3IvLdv6+LGLJLRlyhrhEDZWargQ==",
|
"integrity": "sha512-TGf22kon8KW+DeKaUmOibKWktRY8b2NSAZNdtWh798COm1NWx8+xJ6iFBtk3IvLdv6+LGLJLRlyhrhEDZWargQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/scope-manager": "8.45.0",
|
"@typescript-eslint/scope-manager": "8.45.0",
|
||||||
"@typescript-eslint/types": "8.45.0",
|
"@typescript-eslint/types": "8.45.0",
|
||||||
@@ -1885,7 +1883,6 @@
|
|||||||
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
|
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peer": true,
|
|
||||||
"bin": {
|
"bin": {
|
||||||
"acorn": "bin/acorn"
|
"acorn": "bin/acorn"
|
||||||
},
|
},
|
||||||
@@ -2353,9 +2350,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/csstype": {
|
"node_modules/csstype": {
|
||||||
"version": "3.1.3",
|
"version": "3.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
|
||||||
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
|
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
@@ -2736,7 +2733,6 @@
|
|||||||
"integrity": "sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==",
|
"integrity": "sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@eslint-community/eslint-utils": "^4.8.0",
|
"@eslint-community/eslint-utils": "^4.8.0",
|
||||||
"@eslint-community/regexpp": "^4.12.1",
|
"@eslint-community/regexpp": "^4.12.1",
|
||||||
@@ -2911,7 +2907,6 @@
|
|||||||
"integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",
|
"integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@rtsao/scc": "^1.1.0",
|
"@rtsao/scc": "^1.1.0",
|
||||||
"array-includes": "^3.1.9",
|
"array-includes": "^3.1.9",
|
||||||
@@ -5034,7 +5029,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz",
|
||||||
"integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==",
|
"integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peer": true,
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
@@ -5044,7 +5038,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz",
|
||||||
"integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==",
|
"integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"scheduler": "^0.26.0"
|
"scheduler": "^0.26.0"
|
||||||
},
|
},
|
||||||
@@ -5738,7 +5731,6 @@
|
|||||||
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peer": true,
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12"
|
"node": ">=12"
|
||||||
},
|
},
|
||||||
@@ -5888,7 +5880,6 @@
|
|||||||
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"peer": true,
|
|
||||||
"bin": {
|
"bin": {
|
||||||
"tsc": "bin/tsc",
|
"tsc": "bin/tsc",
|
||||||
"tsserver": "bin/tsserver"
|
"tsserver": "bin/tsserver"
|
||||||
|
|||||||
+8
-8
@@ -10,19 +10,19 @@
|
|||||||
"copy-assets": "bash copy-assets.sh"
|
"copy-assets": "bash copy-assets.sh"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"next": "15.5.4",
|
||||||
"react": "19.1.0",
|
"react": "19.1.0",
|
||||||
"react-dom": "19.1.0",
|
"react-dom": "19.1.0"
|
||||||
"next": "15.5.4"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"typescript": "^5",
|
"@eslint/eslintrc": "^3",
|
||||||
"@types/node": "^20",
|
|
||||||
"@types/react": "^19",
|
|
||||||
"@types/react-dom": "^19",
|
|
||||||
"@tailwindcss/postcss": "^4",
|
"@tailwindcss/postcss": "^4",
|
||||||
"tailwindcss": "^4",
|
"@types/node": "20.19.33",
|
||||||
|
"@types/react": "19.2.13",
|
||||||
|
"@types/react-dom": "^19",
|
||||||
"eslint": "^9",
|
"eslint": "^9",
|
||||||
"eslint-config-next": "15.5.4",
|
"eslint-config-next": "15.5.4",
|
||||||
"@eslint/eslintrc": "^3"
|
"tailwindcss": "^4",
|
||||||
|
"typescript": "5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
+18
-4
@@ -1,7 +1,11 @@
|
|||||||
{
|
{
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"target": "ES2017",
|
"target": "ES2017",
|
||||||
"lib": ["dom", "dom.iterable", "esnext"],
|
"lib": [
|
||||||
|
"dom",
|
||||||
|
"dom.iterable",
|
||||||
|
"esnext"
|
||||||
|
],
|
||||||
"allowJs": true,
|
"allowJs": true,
|
||||||
"skipLibCheck": true,
|
"skipLibCheck": true,
|
||||||
"strict": true,
|
"strict": true,
|
||||||
@@ -19,9 +23,19 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"paths": {
|
"paths": {
|
||||||
"@/*": ["./*"]
|
"@/*": [
|
||||||
|
"./*"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
"include": [
|
||||||
"exclude": ["node_modules"]
|
"**/*.ts",
|
||||||
|
"**/*.tsx",
|
||||||
|
".next/types/**/*.ts",
|
||||||
|
"next-env.d.ts",
|
||||||
|
"./.next/types/**/*.ts"
|
||||||
|
],
|
||||||
|
"exclude": [
|
||||||
|
"node_modules"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user