mirror of
				https://github.com/theoludwig/theoludwig.git
				synced 2025-10-14 20:23:25 +02:00 
			
		
		
		
	fix: improve Resume
This commit is contained in:
		
							
								
								
									
										18
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								README.md
									
									
									
									
									
								
							| @@ -25,21 +25,11 @@ | ||||
|   "pronouns": "He/Him", | ||||
|   "birthDate": "31/03/2003", | ||||
|   "nationality": "Alsace, France", | ||||
|   "interests": [ | ||||
|     "Developer Full Stack", | ||||
|     "Open-Source enthusiast", | ||||
|     "Passionate about High-Tech" | ||||
|   ], | ||||
|   "interests": ["Open-Source enthusiast", "Passionate about High-Tech"], | ||||
|   "skills": { | ||||
|     "programmingLanguages": [ | ||||
|       "JavaScript", | ||||
|       "TypeScript", | ||||
|       "Python", | ||||
|       "C/C++", | ||||
|       "PHP" | ||||
|     ], | ||||
|     "frontEnd": ["HTML", "CSS", "Tailwind CSS", "React.js (+ Next.js)"], | ||||
|     "backEnd": ["Laravel", "Node.js", "Fastify", "Prisma", "PostgreSQL"], | ||||
|     "programmingLanguages": ["JavaScript/TypeScript", "Python", "C/C++", "PHP"], | ||||
|     "frontEnd": ["HTML", "CSS", "Tailwind CSS", "React.js/Next.js"], | ||||
|     "backEnd": ["Laravel", "Node.js", "Fastify", "PostgreSQL"], | ||||
|     "tools": ["GNU/Linux", "Ubuntu", "Visual Studio Code", "Git", "Docker"] | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -27,7 +27,6 @@ export const Skills: React.FC = () => { | ||||
|         <SkillComponent skill='Laravel' /> | ||||
|         <SkillComponent skill='Node.js' /> | ||||
|         <SkillComponent skill='Fastify' /> | ||||
|         <SkillComponent skill='Prisma' /> | ||||
|         <SkillComponent skill='PostgreSQL' /> | ||||
|       </SkillsSection> | ||||
|  | ||||
|   | ||||
| @@ -3,10 +3,10 @@ import fs from 'node:fs' | ||||
| 
 | ||||
| import { build } from 'vite' | ||||
| 
 | ||||
| const jsonResumeThemeCustom = new URL('../', import.meta.url) | ||||
| const jsonResumeThemeCustom = new URL('./', import.meta.url) | ||||
| const jsonResumeThemeCustomDist = new URL('./dist', jsonResumeThemeCustom) | ||||
| const publicResumeOutputURL = new URL( | ||||
|   '../../public/curriculum-vitae', | ||||
|   '../public/curriculum-vitae', | ||||
|   import.meta.url | ||||
| ) | ||||
| 
 | ||||
| @@ -6,6 +6,7 @@ | ||||
|     <title><%= locals.basics.name %></title> | ||||
|     <link rel="icon" type="image/png" href="<%= locals.basics.image %>" /> | ||||
|     <link rel="stylesheet" href="./styles/global.css" /> | ||||
|     <script defer type="module" src="./scripts/main.js"></script> | ||||
|   </head> | ||||
|   <body> | ||||
|     <div class="container-fluid"> | ||||
| @@ -26,12 +27,15 @@ | ||||
|                   <strong><%= locals.basics.name %></strong> | ||||
|                 </h3> | ||||
|                 <h5 class="text-muted"><%= locals.basics.label %></h5> | ||||
|                 <h5 class="text-muted"> | ||||
|                   <%= locals.basics.age %> (<span id="year-old"></span> ans) | ||||
|                 </h5> | ||||
|                 <h5 class="text-muted"> | ||||
|                   <%= locals.basics.location.address %> | ||||
|                 </h5> | ||||
|               </div> | ||||
|             </div> | ||||
|             <div class="contact-details clearfix"> | ||||
|               <div class="detail"> | ||||
|                 <span class="info"><%= locals.basics.phone %></span> | ||||
|               </div> | ||||
|               <div class="detail"> | ||||
|                 <span class="info"> | ||||
|                   <a | ||||
| @@ -71,40 +75,44 @@ | ||||
|               <hr /> | ||||
|  | ||||
|               <section class="section-separated"> | ||||
|                 <div class="detail" id="work-experience"> | ||||
|                 <div class="detail" id="education"> | ||||
|                   <div class="icon"> | ||||
|                     <img src="./images/building-columns.svg" alt="work" /> | ||||
|                     <img src="./images/graduation-cap.svg" alt="graduation" /> | ||||
|                   </div> | ||||
|                   <div class="info"> | ||||
|                     <h4 class="title text-uppercase">Expériences</h4> | ||||
|                     <ul class="list-unstyled clear-margin"> | ||||
|                       <% locals.work.forEach((experience) => { %> | ||||
|                       <li class="card card-nested clearfix"> | ||||
|                         <div class="content"> | ||||
|                           <p class="clear-margin relative"> | ||||
|                             <a href="<%= experience.website %>"> | ||||
|                               <strong><%= experience.name %></strong> | ||||
|                             </a> | ||||
|                           </p> | ||||
|                           <p class="clear-margin relative"> | ||||
|                             <strong><%- experience.position %></strong> | ||||
|                           </p> | ||||
|                           <p class="text-muted"> | ||||
|                             <small> | ||||
|                               <span class="space-right"> | ||||
|                                 <%= date.format(new Date(experience.startDate), | ||||
|                                 'DD/MM/YYYY') %> - <%= date.format(new | ||||
|                                 Date(experience.endDate), 'DD/MM/YYYY') %> | ||||
|                               </span> | ||||
|                             </small> | ||||
|                           </p> | ||||
|                           <div class="experience-description"> | ||||
|                             <p><%- experience.summary %></p> | ||||
|                     <h4 class="title text-uppercase">Formations</h4> | ||||
|                     <div class="content"> | ||||
|                       <ul class="list-unstyled clear-margin"> | ||||
|                         <% locals.education.forEach((degree) => { %> | ||||
|                         <li class="card card-nested"> | ||||
|                           <div class="content"> | ||||
|                             <p class="clear-margin relative"> | ||||
|                               <strong><%= degree.studyType %></strong> | ||||
|                             </p> | ||||
|                             <p class="clear-margin relative"> | ||||
|                               <strong><%= degree.score %></strong> | ||||
|                             </p> | ||||
|                             <p class="text-muted clear-margin"> | ||||
|                               <%= degree.institution %> | ||||
|                             </p> | ||||
|                             <p class="text-muted clear-margin"> | ||||
|                               <small> | ||||
|                                 <%= degree.startDate %> <%= degree.endDate != | ||||
|                                 null ? " - " + degree.endDate : "" %> | ||||
|                               </small> | ||||
|                             </p> | ||||
|                             <% if (degree.courses != null) { %> | ||||
|                             <ul class="education-courses"> | ||||
|                               <% degree.courses.forEach((course) => { %> | ||||
|                               <li><%= course %></li> | ||||
|                               <% }) %> | ||||
|                             </ul> | ||||
|                             <% } %> | ||||
|                           </div> | ||||
|                         </div> | ||||
|                       </li> | ||||
|                       <% }) %> | ||||
|                     </ul> | ||||
|                         </li> | ||||
|                         <% }) %> | ||||
|                       </ul> | ||||
|                     </div> | ||||
|                   </div> | ||||
|                 </div> | ||||
|  | ||||
| @@ -137,37 +145,43 @@ | ||||
|               <hr /> | ||||
|  | ||||
|               <section class="section-separated"> | ||||
|                 <div class="detail" id="education"> | ||||
|                 <div class="detail" id="work-experience"> | ||||
|                   <div class="icon"> | ||||
|                     <img src="./images/graduation-cap.svg" alt="graduation" /> | ||||
|                     <img src="./images/building-columns.svg" alt="work" /> | ||||
|                   </div> | ||||
|                   <div class="info"> | ||||
|                     <h4 class="title text-uppercase">Éducation</h4> | ||||
|                     <div class="content"> | ||||
|                       <ul class="list-unstyled clear-margin"> | ||||
|                         <% locals.education.forEach((degree) => { %> | ||||
|                         <li class="card card-nested"> | ||||
|                           <div class="content"> | ||||
|                             <p class="clear-margin relative"> | ||||
|                               <strong><%= degree.studyType %></strong> | ||||
|                             </p> | ||||
|                             <p class="clear-margin relative"> | ||||
|                               <strong><%= degree.score %></strong> | ||||
|                             </p> | ||||
|                             <p class="text-muted clear-margin"> | ||||
|                               <%= degree.institution %> | ||||
|                             </p> | ||||
|                             <p class="text-muted clear-margin"> | ||||
|                               <small> | ||||
|                                 <%= degree.startDate %> <%= degree.endDate != | ||||
|                                 null ? " - " + degree.endDate : "" %> | ||||
|                               </small> | ||||
|                             </p> | ||||
|                     <h4 class="title text-uppercase">Expériences</h4> | ||||
|                     <ul class="list-unstyled clear-margin"> | ||||
|                       <% locals.work.filter((experience) => | ||||
|                       experience.description == null).forEach((experience) => { | ||||
|                       %> | ||||
|                       <li class="card card-nested clearfix"> | ||||
|                         <div class="content"> | ||||
|                           <p class="clear-margin relative"> | ||||
|                             <a href="<%= experience.website %>"> | ||||
|                               <strong><%= experience.name %></strong> | ||||
|                             </a> | ||||
|                           </p> | ||||
|                           <p class="clear-margin relative"> | ||||
|                             <strong><%- experience.position %></strong> | ||||
|                           </p> | ||||
|                           <p class="text-muted"> | ||||
|                             <small> | ||||
|                               <span class="space-right"> | ||||
|                                 <%= date.format(new Date(experience.startDate), | ||||
|                                 'DD/MM/YYYY') %> - <%= date.format(new | ||||
|                                 Date(experience.endDate), 'DD/MM/YYYY') %> (<%= | ||||
|                                 experience.duration %>) | ||||
|                               </span> | ||||
|                             </small> | ||||
|                           </p> | ||||
|                           <div class="experience-description"> | ||||
|                             <p><%- experience.summary %></p> | ||||
|                           </div> | ||||
|                         </li> | ||||
|                         <% }) %> | ||||
|                       </ul> | ||||
|                     </div> | ||||
|                         </div> | ||||
|                       </li> | ||||
|                       <% }) %> | ||||
|                     </ul> | ||||
|                   </div> | ||||
|                 </div> | ||||
|  | ||||
| @@ -185,6 +199,38 @@ | ||||
|                         </li> | ||||
|                         <% }) %> | ||||
|                       </ul> | ||||
|  | ||||
|                       <ul class="list-unstyled clear-margin"> | ||||
|                         <% locals.work.filter((experience) => | ||||
|                         experience.description != null).forEach((experience) => | ||||
|                         { %> | ||||
|                         <li class="card card-nested clearfix"> | ||||
|                           <div class="content"> | ||||
|                             <p class="clear-margin relative"> | ||||
|                               <a href="<%= experience.website %>"> | ||||
|                                 <strong><%= experience.name %></strong> | ||||
|                               </a> | ||||
|                             </p> | ||||
|                             <p class="clear-margin relative"> | ||||
|                               <strong><%- experience.position %></strong> | ||||
|                             </p> | ||||
|                             <p class="text-muted"> | ||||
|                               <small> | ||||
|                                 <span class="space-right"> | ||||
|                                   <%= date.format(new | ||||
|                                   Date(experience.startDate), 'DD/MM/YYYY') %> - | ||||
|                                   <%= date.format(new Date(experience.endDate), | ||||
|                                   'DD/MM/YYYY') %> (<%= experience.duration %>) | ||||
|                                 </span> | ||||
|                               </small> | ||||
|                             </p> | ||||
|                             <div class="experience-description"> | ||||
|                               <p><%- experience.summary %></p> | ||||
|                             </div> | ||||
|                           </div> | ||||
|                         </li> | ||||
|                         <% }) %> | ||||
|                       </ul> | ||||
|                     </div> | ||||
|                   </div> | ||||
|                 </div> | ||||
|   | ||||
							
								
								
									
										387
									
								
								jsonresume-theme-custom/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										387
									
								
								jsonresume-theme-custom/package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -8,6 +8,7 @@ | ||||
|       "name": "jsonresume-theme-custom", | ||||
|       "version": "1.0.0", | ||||
|       "dependencies": { | ||||
|         "jsonc-parser": "3.2.0", | ||||
|         "modern-normalize": "1.1.0" | ||||
|       }, | ||||
|       "devDependencies": { | ||||
| @@ -18,9 +19,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@esbuild/android-arm": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.14.tgz", | ||||
|       "integrity": "sha512-+Rb20XXxRGisNu2WmNKk+scpanb7nL5yhuI1KR9wQFiC43ddPj/V1fmNyzlFC9bKiG4mYzxW7egtoHVcynr+OA==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.16.tgz", | ||||
|       "integrity": "sha512-nyB6CH++2mSgx3GbnrJsZSxzne5K0HMyNIWafDHqYy7IwxFc4fd/CgHVZXr8Eh+Q3KbIAcAe3vGyqIPhGblvMQ==", | ||||
|       "cpu": [ | ||||
|         "arm" | ||||
|       ], | ||||
| @@ -34,9 +35,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@esbuild/linux-loong64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.14.tgz", | ||||
|       "integrity": "sha512-eQi9rosGNVQFJyJWV0HCA5WZae/qWIQME7s8/j8DMvnylfBv62Pbu+zJ2eUDqNf2O4u3WB+OEXyfkpBoe194sg==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.16.tgz", | ||||
|       "integrity": "sha512-SDLfP1uoB0HZ14CdVYgagllgrG7Mdxhkt4jDJOKl/MldKrkQ6vDJMZKl2+5XsEY/Lzz37fjgLQoJBGuAw/x8kQ==", | ||||
|       "cpu": [ | ||||
|         "loong64" | ||||
|       ], | ||||
| @@ -468,9 +469,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.14.tgz", | ||||
|       "integrity": "sha512-pJN8j42fvWLFWwSMG4luuupl2Me7mxciUOsMegKvwCmhEbJ2covUdFnihxm0FMIBV+cbwbtMoHgMCCI+pj1btQ==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.16.tgz", | ||||
|       "integrity": "sha512-o6iS9zxdHrrojjlj6pNGC2NAg86ECZqIETswTM5KmJitq+R1YmahhWtMumeQp9lHqJaROGnsBi2RLawGnfo5ZQ==", | ||||
|       "dev": true, | ||||
|       "hasInstallScript": true, | ||||
|       "bin": { | ||||
| @@ -480,34 +481,34 @@ | ||||
|         "node": ">=12" | ||||
|       }, | ||||
|       "optionalDependencies": { | ||||
|         "@esbuild/android-arm": "0.15.14", | ||||
|         "@esbuild/linux-loong64": "0.15.14", | ||||
|         "esbuild-android-64": "0.15.14", | ||||
|         "esbuild-android-arm64": "0.15.14", | ||||
|         "esbuild-darwin-64": "0.15.14", | ||||
|         "esbuild-darwin-arm64": "0.15.14", | ||||
|         "esbuild-freebsd-64": "0.15.14", | ||||
|         "esbuild-freebsd-arm64": "0.15.14", | ||||
|         "esbuild-linux-32": "0.15.14", | ||||
|         "esbuild-linux-64": "0.15.14", | ||||
|         "esbuild-linux-arm": "0.15.14", | ||||
|         "esbuild-linux-arm64": "0.15.14", | ||||
|         "esbuild-linux-mips64le": "0.15.14", | ||||
|         "esbuild-linux-ppc64le": "0.15.14", | ||||
|         "esbuild-linux-riscv64": "0.15.14", | ||||
|         "esbuild-linux-s390x": "0.15.14", | ||||
|         "esbuild-netbsd-64": "0.15.14", | ||||
|         "esbuild-openbsd-64": "0.15.14", | ||||
|         "esbuild-sunos-64": "0.15.14", | ||||
|         "esbuild-windows-32": "0.15.14", | ||||
|         "esbuild-windows-64": "0.15.14", | ||||
|         "esbuild-windows-arm64": "0.15.14" | ||||
|         "@esbuild/android-arm": "0.15.16", | ||||
|         "@esbuild/linux-loong64": "0.15.16", | ||||
|         "esbuild-android-64": "0.15.16", | ||||
|         "esbuild-android-arm64": "0.15.16", | ||||
|         "esbuild-darwin-64": "0.15.16", | ||||
|         "esbuild-darwin-arm64": "0.15.16", | ||||
|         "esbuild-freebsd-64": "0.15.16", | ||||
|         "esbuild-freebsd-arm64": "0.15.16", | ||||
|         "esbuild-linux-32": "0.15.16", | ||||
|         "esbuild-linux-64": "0.15.16", | ||||
|         "esbuild-linux-arm": "0.15.16", | ||||
|         "esbuild-linux-arm64": "0.15.16", | ||||
|         "esbuild-linux-mips64le": "0.15.16", | ||||
|         "esbuild-linux-ppc64le": "0.15.16", | ||||
|         "esbuild-linux-riscv64": "0.15.16", | ||||
|         "esbuild-linux-s390x": "0.15.16", | ||||
|         "esbuild-netbsd-64": "0.15.16", | ||||
|         "esbuild-openbsd-64": "0.15.16", | ||||
|         "esbuild-sunos-64": "0.15.16", | ||||
|         "esbuild-windows-32": "0.15.16", | ||||
|         "esbuild-windows-64": "0.15.16", | ||||
|         "esbuild-windows-arm64": "0.15.16" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-android-64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.14.tgz", | ||||
|       "integrity": "sha512-HuilVIb4rk9abT4U6bcFdU35UHOzcWVGLSjEmC58OVr96q5UiRqzDtWjPlCMugjhgUGKEs8Zf4ueIvYbOStbIg==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.16.tgz", | ||||
|       "integrity": "sha512-Vwkv/sT0zMSgPSVO3Jlt1pUbnZuOgtOQJkJkyyJFAlLe7BiT8e9ESzo0zQSx4c3wW4T6kGChmKDPMbWTgtliQA==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
| @@ -521,9 +522,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-android-arm64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.14.tgz", | ||||
|       "integrity": "sha512-/QnxRVxsR2Vtf3XottAHj7hENAMW2wCs6S+OZcAbc/8nlhbAL/bCQRCVD78VtI5mdwqWkVi3wMqM94kScQCgqg==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.16.tgz", | ||||
|       "integrity": "sha512-lqfKuofMExL5niNV3gnhMUYacSXfsvzTa/58sDlBET/hCOG99Zmeh+lz6kvdgvGOsImeo6J9SW21rFCogNPLxg==", | ||||
|       "cpu": [ | ||||
|         "arm64" | ||||
|       ], | ||||
| @@ -537,9 +538,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-darwin-64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.14.tgz", | ||||
|       "integrity": "sha512-ToNuf1uifu8hhwWvoZJGCdLIX/1zpo8cOGnT0XAhDQXiKOKYaotVNx7pOVB1f+wHoWwTLInrOmh3EmA7Fd+8Vg==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.16.tgz", | ||||
|       "integrity": "sha512-wo2VWk/n/9V2TmqUZ/KpzRjCEcr00n7yahEdmtzlrfQ3lfMCf3Wa+0sqHAbjk3C6CKkR3WKK/whkMq5Gj4Da9g==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
| @@ -553,9 +554,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-darwin-arm64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.14.tgz", | ||||
|       "integrity": "sha512-KgGP+y77GszfYJgceO0Wi/PiRtYo5y2Xo9rhBUpxTPaBgWDJ14gqYN0+NMbu+qC2fykxXaipHxN4Scaj9tUS1A==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.16.tgz", | ||||
|       "integrity": "sha512-fMXaUr5ou0M4WnewBKsspMtX++C1yIa3nJ5R2LSbLCfJT3uFdcRoU/NZjoM4kOMKyOD9Sa/2vlgN8G07K3SJnw==", | ||||
|       "cpu": [ | ||||
|         "arm64" | ||||
|       ], | ||||
| @@ -569,9 +570,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-freebsd-64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.14.tgz", | ||||
|       "integrity": "sha512-xr0E2n5lyWw3uFSwwUXHc0EcaBDtsal/iIfLioflHdhAe10KSctV978Te7YsfnsMKzcoGeS366+tqbCXdqDHQA==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.16.tgz", | ||||
|       "integrity": "sha512-UzIc0xlRx5x9kRuMr+E3+hlSOxa/aRqfuMfiYBXu2jJ8Mzej4lGL7+o6F5hzhLqWfWm1GWHNakIdlqg1ayaTNQ==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
| @@ -585,9 +586,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-freebsd-arm64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.14.tgz", | ||||
|       "integrity": "sha512-8XH96sOQ4b1LhMlO10eEWOjEngmZ2oyw3pW4o8kvBcpF6pULr56eeYVP5radtgw54g3T8nKHDHYEI5AItvskZg==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.16.tgz", | ||||
|       "integrity": "sha512-8xyiYuGc0DLZphFQIiYaLHlfoP+hAN9RHbE+Ibh8EUcDNHAqbQgUrQg7pE7Bo00rXmQ5Ap6KFgcR0b4ALZls1g==", | ||||
|       "cpu": [ | ||||
|         "arm64" | ||||
|       ], | ||||
| @@ -601,9 +602,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-linux-32": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.14.tgz", | ||||
|       "integrity": "sha512-6ssnvwaTAi8AzKN8By2V0nS+WF5jTP7SfuK6sStGnDP7MCJo/4zHgM9oE1eQTS2jPmo3D673rckuCzRlig+HMA==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.16.tgz", | ||||
|       "integrity": "sha512-iGijUTV+0kIMyUVoynK0v+32Oi8yyp0xwMzX69GX+5+AniNy/C/AL1MjFTsozRp/3xQPl7jVux/PLe2ds10/2w==", | ||||
|       "cpu": [ | ||||
|         "ia32" | ||||
|       ], | ||||
| @@ -617,9 +618,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-linux-64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.14.tgz", | ||||
|       "integrity": "sha512-ONySx3U0wAJOJuxGUlXBWxVKFVpWv88JEv0NZ6NlHknmDd1yCbf4AEdClSgLrqKQDXYywmw4gYDvdLsS6z0hcw==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.16.tgz", | ||||
|       "integrity": "sha512-tuSOjXdLw7VzaUj89fIdAaQT7zFGbKBcz4YxbWrOiXkwscYgE7HtTxUavreBbnRkGxKwr9iT/gmeJWNm4djy/g==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
| @@ -633,9 +634,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-linux-arm": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.14.tgz", | ||||
|       "integrity": "sha512-D2LImAIV3QzL7lHURyCHBkycVFbKwkDb1XEUWan+2fb4qfW7qAeUtul7ZIcIwFKZgPcl+6gKZmvLgPSj26RQ2Q==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.16.tgz", | ||||
|       "integrity": "sha512-XKcrxCEXDTOuoRj5l12tJnkvuxXBMKwEC5j0JISw3ziLf0j4zIwXbKbTmUrKFWbo6ZgvNpa7Y5dnbsjVvH39bQ==", | ||||
|       "cpu": [ | ||||
|         "arm" | ||||
|       ], | ||||
| @@ -649,9 +650,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-linux-arm64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.14.tgz", | ||||
|       "integrity": "sha512-kle2Ov6a1e5AjlHlMQl1e+c4myGTeggrRzArQFmWp6O6JoqqB9hT+B28EW4tjFWgV/NxUq46pWYpgaWXsXRPAg==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.16.tgz", | ||||
|       "integrity": "sha512-mPYksnfHnemNrvjrDhZyixL/AfbJN0Xn9S34ZOHYdh6/jJcNd8iTsv3JwJoEvTJqjMggjMhGUPJAdjnFBHoH8A==", | ||||
|       "cpu": [ | ||||
|         "arm64" | ||||
|       ], | ||||
| @@ -665,9 +666,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-linux-mips64le": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.14.tgz", | ||||
|       "integrity": "sha512-FVdMYIzOLXUq+OE7XYKesuEAqZhmAIV6qOoYahvUp93oXy0MOVTP370ECbPfGXXUdlvc0TNgkJa3YhEwyZ6MRA==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.16.tgz", | ||||
|       "integrity": "sha512-kSJO2PXaxfm0pWY39+YX+QtpFqyyrcp0ZeI8QPTrcFVQoWEPiPVtOfTZeS3ZKedfH+Ga38c4DSzmKMQJocQv6A==", | ||||
|       "cpu": [ | ||||
|         "mips64el" | ||||
|       ], | ||||
| @@ -681,9 +682,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-linux-ppc64le": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.14.tgz", | ||||
|       "integrity": "sha512-2NzH+iuzMDA+jjtPjuIz/OhRDf8tzbQ1tRZJI//aT25o1HKc0reMMXxKIYq/8nSHXiJSnYV4ODzTiv45s+h73w==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.16.tgz", | ||||
|       "integrity": "sha512-NimPikwkBY0yGABw6SlhKrtT35sU4O23xkhlrTT/O6lSxv3Pm5iSc6OYaqVAHWkLdVf31bF4UDVFO+D990WpAA==", | ||||
|       "cpu": [ | ||||
|         "ppc64" | ||||
|       ], | ||||
| @@ -697,9 +698,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-linux-riscv64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.14.tgz", | ||||
|       "integrity": "sha512-VqxvutZNlQxmUNS7Ac+aczttLEoHBJ9e3OYGqnULrfipRvG97qLrAv9EUY9iSrRKBqeEbSvS9bSfstZqwz0T4Q==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.16.tgz", | ||||
|       "integrity": "sha512-ty2YUHZlwFOwp7pR+J87M4CVrXJIf5ZZtU/umpxgVJBXvWjhziSLEQxvl30SYfUPq0nzeWKBGw5i/DieiHeKfw==", | ||||
|       "cpu": [ | ||||
|         "riscv64" | ||||
|       ], | ||||
| @@ -713,9 +714,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-linux-s390x": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.14.tgz", | ||||
|       "integrity": "sha512-+KVHEUshX5n6VP6Vp/AKv9fZIl5kr2ph8EUFmQUJnDpHwcfTSn2AQgYYm0HTBR2Mr4d0Wlr0FxF/Cs5pbFgiOw==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.16.tgz", | ||||
|       "integrity": "sha512-VkZaGssvPDQtx4fvVdZ9czezmyWyzpQhEbSNsHZZN0BHvxRLOYAQ7sjay8nMQwYswP6O2KlZluRMNPYefFRs+w==", | ||||
|       "cpu": [ | ||||
|         "s390x" | ||||
|       ], | ||||
| @@ -729,9 +730,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-netbsd-64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.14.tgz", | ||||
|       "integrity": "sha512-6D/dr17piEgevIm1xJfZP2SjB9Z+g8ERhNnBdlZPBWZl+KSPUKLGF13AbvC+nzGh8IxOH2TyTIdRMvKMP0nEzQ==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.16.tgz", | ||||
|       "integrity": "sha512-ElQ9rhdY51et6MJTWrCPbqOd/YuPowD7Cxx3ee8wlmXQQVW7UvQI6nSprJ9uVFQISqSF5e5EWpwWqXZsECLvXg==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
| @@ -745,9 +746,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-openbsd-64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.14.tgz", | ||||
|       "integrity": "sha512-rREQBIlMibBetgr2E9Lywt2Qxv2ZdpmYahR4IUlAQ1Efv/A5gYdO0/VIN3iowDbCNTLxp0bb57Vf0LFcffD6kA==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.16.tgz", | ||||
|       "integrity": "sha512-KgxMHyxMCT+NdLQE1zVJEsLSt2QQBAvJfmUGDmgEq8Fvjrf6vSKB00dVHUEDKcJwMID6CdgCpvYNt999tIYhqA==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
| @@ -761,9 +762,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-sunos-64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.14.tgz", | ||||
|       "integrity": "sha512-DNVjSp/BY4IfwtdUAvWGIDaIjJXY5KI4uD82+15v6k/w7px9dnaDaJJ2R6Mu+KCgr5oklmFc0KjBjh311Gxl9Q==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.16.tgz", | ||||
|       "integrity": "sha512-exSAx8Phj7QylXHlMfIyEfNrmqnLxFqLxdQF6MBHPdHAjT7fsKaX6XIJn+aQEFiOcE4X8e7VvdMCJ+WDZxjSRQ==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
| @@ -777,9 +778,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-windows-32": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.14.tgz", | ||||
|       "integrity": "sha512-pHBWrcA+/oLgvViuG9FO3kNPO635gkoVrRQwe6ZY1S0jdET07xe2toUvQoJQ8KT3/OkxqUasIty5hpuKFLD+eg==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.16.tgz", | ||||
|       "integrity": "sha512-zQgWpY5pUCSTOwqKQ6/vOCJfRssTvxFuEkpB4f2VUGPBpdddZfdj8hbZuFRdZRPIVHvN7juGcpgCA/XCF37mAQ==", | ||||
|       "cpu": [ | ||||
|         "ia32" | ||||
|       ], | ||||
| @@ -793,9 +794,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-windows-64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.14.tgz", | ||||
|       "integrity": "sha512-CszIGQVk/P8FOS5UgAH4hKc9zOaFo69fe+k1rqgBHx3CSK3Opyk5lwYriIamaWOVjBt7IwEP6NALz+tkVWdFog==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.16.tgz", | ||||
|       "integrity": "sha512-HjW1hHRLSncnM3MBCP7iquatHVJq9l0S2xxsHHj4yzf4nm9TU4Z7k4NkeMlD/dHQ4jPlQQhwcMvwbJiOefSuZw==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
| @@ -809,9 +810,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-windows-arm64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.14.tgz", | ||||
|       "integrity": "sha512-KW9W4psdZceaS9A7Jsgl4WialOznSURvqX/oHZk3gOP7KbjtHLSsnmSvNdzagGJfxbAe30UVGXRe8q8nDsOSQw==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.16.tgz", | ||||
|       "integrity": "sha512-oCcUKrJaMn04Vxy9Ekd8x23O8LoU01+4NOkQ2iBToKgnGj5eo1vU9i27NQZ9qC8NFZgnQQZg5oZWAejmbsppNA==", | ||||
|       "cpu": [ | ||||
|         "arm64" | ||||
|       ], | ||||
| @@ -1060,6 +1061,11 @@ | ||||
|         "node": ">=10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/jsonc-parser": { | ||||
|       "version": "3.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", | ||||
|       "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" | ||||
|     }, | ||||
|     "node_modules/jsonfile": { | ||||
|       "version": "6.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", | ||||
| @@ -1391,9 +1397,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/terser": { | ||||
|       "version": "5.15.1", | ||||
|       "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", | ||||
|       "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", | ||||
|       "version": "5.16.0", | ||||
|       "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.0.tgz", | ||||
|       "integrity": "sha512-KjTV81QKStSfwbNiwlBXfcgMcOloyuRdb62/iLFPGBcVNF4EXjhdYBhYHmbJpiBrVxZhDvltE11j+LBQUxEEJg==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "@jridgewell/source-map": "^0.3.2", | ||||
| @@ -1516,16 +1522,16 @@ | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "@esbuild/android-arm": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.14.tgz", | ||||
|       "integrity": "sha512-+Rb20XXxRGisNu2WmNKk+scpanb7nL5yhuI1KR9wQFiC43ddPj/V1fmNyzlFC9bKiG4mYzxW7egtoHVcynr+OA==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.16.tgz", | ||||
|       "integrity": "sha512-nyB6CH++2mSgx3GbnrJsZSxzne5K0HMyNIWafDHqYy7IwxFc4fd/CgHVZXr8Eh+Q3KbIAcAe3vGyqIPhGblvMQ==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "@esbuild/linux-loong64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.14.tgz", | ||||
|       "integrity": "sha512-eQi9rosGNVQFJyJWV0HCA5WZae/qWIQME7s8/j8DMvnylfBv62Pbu+zJ2eUDqNf2O4u3WB+OEXyfkpBoe194sg==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.16.tgz", | ||||
|       "integrity": "sha512-SDLfP1uoB0HZ14CdVYgagllgrG7Mdxhkt4jDJOKl/MldKrkQ6vDJMZKl2+5XsEY/Lzz37fjgLQoJBGuAw/x8kQ==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
| @@ -1852,172 +1858,172 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "esbuild": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.14.tgz", | ||||
|       "integrity": "sha512-pJN8j42fvWLFWwSMG4luuupl2Me7mxciUOsMegKvwCmhEbJ2covUdFnihxm0FMIBV+cbwbtMoHgMCCI+pj1btQ==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.16.tgz", | ||||
|       "integrity": "sha512-o6iS9zxdHrrojjlj6pNGC2NAg86ECZqIETswTM5KmJitq+R1YmahhWtMumeQp9lHqJaROGnsBi2RLawGnfo5ZQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@esbuild/android-arm": "0.15.14", | ||||
|         "@esbuild/linux-loong64": "0.15.14", | ||||
|         "esbuild-android-64": "0.15.14", | ||||
|         "esbuild-android-arm64": "0.15.14", | ||||
|         "esbuild-darwin-64": "0.15.14", | ||||
|         "esbuild-darwin-arm64": "0.15.14", | ||||
|         "esbuild-freebsd-64": "0.15.14", | ||||
|         "esbuild-freebsd-arm64": "0.15.14", | ||||
|         "esbuild-linux-32": "0.15.14", | ||||
|         "esbuild-linux-64": "0.15.14", | ||||
|         "esbuild-linux-arm": "0.15.14", | ||||
|         "esbuild-linux-arm64": "0.15.14", | ||||
|         "esbuild-linux-mips64le": "0.15.14", | ||||
|         "esbuild-linux-ppc64le": "0.15.14", | ||||
|         "esbuild-linux-riscv64": "0.15.14", | ||||
|         "esbuild-linux-s390x": "0.15.14", | ||||
|         "esbuild-netbsd-64": "0.15.14", | ||||
|         "esbuild-openbsd-64": "0.15.14", | ||||
|         "esbuild-sunos-64": "0.15.14", | ||||
|         "esbuild-windows-32": "0.15.14", | ||||
|         "esbuild-windows-64": "0.15.14", | ||||
|         "esbuild-windows-arm64": "0.15.14" | ||||
|         "@esbuild/android-arm": "0.15.16", | ||||
|         "@esbuild/linux-loong64": "0.15.16", | ||||
|         "esbuild-android-64": "0.15.16", | ||||
|         "esbuild-android-arm64": "0.15.16", | ||||
|         "esbuild-darwin-64": "0.15.16", | ||||
|         "esbuild-darwin-arm64": "0.15.16", | ||||
|         "esbuild-freebsd-64": "0.15.16", | ||||
|         "esbuild-freebsd-arm64": "0.15.16", | ||||
|         "esbuild-linux-32": "0.15.16", | ||||
|         "esbuild-linux-64": "0.15.16", | ||||
|         "esbuild-linux-arm": "0.15.16", | ||||
|         "esbuild-linux-arm64": "0.15.16", | ||||
|         "esbuild-linux-mips64le": "0.15.16", | ||||
|         "esbuild-linux-ppc64le": "0.15.16", | ||||
|         "esbuild-linux-riscv64": "0.15.16", | ||||
|         "esbuild-linux-s390x": "0.15.16", | ||||
|         "esbuild-netbsd-64": "0.15.16", | ||||
|         "esbuild-openbsd-64": "0.15.16", | ||||
|         "esbuild-sunos-64": "0.15.16", | ||||
|         "esbuild-windows-32": "0.15.16", | ||||
|         "esbuild-windows-64": "0.15.16", | ||||
|         "esbuild-windows-arm64": "0.15.16" | ||||
|       } | ||||
|     }, | ||||
|     "esbuild-android-64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.14.tgz", | ||||
|       "integrity": "sha512-HuilVIb4rk9abT4U6bcFdU35UHOzcWVGLSjEmC58OVr96q5UiRqzDtWjPlCMugjhgUGKEs8Zf4ueIvYbOStbIg==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.16.tgz", | ||||
|       "integrity": "sha512-Vwkv/sT0zMSgPSVO3Jlt1pUbnZuOgtOQJkJkyyJFAlLe7BiT8e9ESzo0zQSx4c3wW4T6kGChmKDPMbWTgtliQA==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-android-arm64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.14.tgz", | ||||
|       "integrity": "sha512-/QnxRVxsR2Vtf3XottAHj7hENAMW2wCs6S+OZcAbc/8nlhbAL/bCQRCVD78VtI5mdwqWkVi3wMqM94kScQCgqg==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.16.tgz", | ||||
|       "integrity": "sha512-lqfKuofMExL5niNV3gnhMUYacSXfsvzTa/58sDlBET/hCOG99Zmeh+lz6kvdgvGOsImeo6J9SW21rFCogNPLxg==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-darwin-64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.14.tgz", | ||||
|       "integrity": "sha512-ToNuf1uifu8hhwWvoZJGCdLIX/1zpo8cOGnT0XAhDQXiKOKYaotVNx7pOVB1f+wHoWwTLInrOmh3EmA7Fd+8Vg==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.16.tgz", | ||||
|       "integrity": "sha512-wo2VWk/n/9V2TmqUZ/KpzRjCEcr00n7yahEdmtzlrfQ3lfMCf3Wa+0sqHAbjk3C6CKkR3WKK/whkMq5Gj4Da9g==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-darwin-arm64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.14.tgz", | ||||
|       "integrity": "sha512-KgGP+y77GszfYJgceO0Wi/PiRtYo5y2Xo9rhBUpxTPaBgWDJ14gqYN0+NMbu+qC2fykxXaipHxN4Scaj9tUS1A==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.16.tgz", | ||||
|       "integrity": "sha512-fMXaUr5ou0M4WnewBKsspMtX++C1yIa3nJ5R2LSbLCfJT3uFdcRoU/NZjoM4kOMKyOD9Sa/2vlgN8G07K3SJnw==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-freebsd-64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.14.tgz", | ||||
|       "integrity": "sha512-xr0E2n5lyWw3uFSwwUXHc0EcaBDtsal/iIfLioflHdhAe10KSctV978Te7YsfnsMKzcoGeS366+tqbCXdqDHQA==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.16.tgz", | ||||
|       "integrity": "sha512-UzIc0xlRx5x9kRuMr+E3+hlSOxa/aRqfuMfiYBXu2jJ8Mzej4lGL7+o6F5hzhLqWfWm1GWHNakIdlqg1ayaTNQ==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-freebsd-arm64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.14.tgz", | ||||
|       "integrity": "sha512-8XH96sOQ4b1LhMlO10eEWOjEngmZ2oyw3pW4o8kvBcpF6pULr56eeYVP5radtgw54g3T8nKHDHYEI5AItvskZg==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.16.tgz", | ||||
|       "integrity": "sha512-8xyiYuGc0DLZphFQIiYaLHlfoP+hAN9RHbE+Ibh8EUcDNHAqbQgUrQg7pE7Bo00rXmQ5Ap6KFgcR0b4ALZls1g==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-linux-32": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.14.tgz", | ||||
|       "integrity": "sha512-6ssnvwaTAi8AzKN8By2V0nS+WF5jTP7SfuK6sStGnDP7MCJo/4zHgM9oE1eQTS2jPmo3D673rckuCzRlig+HMA==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.16.tgz", | ||||
|       "integrity": "sha512-iGijUTV+0kIMyUVoynK0v+32Oi8yyp0xwMzX69GX+5+AniNy/C/AL1MjFTsozRp/3xQPl7jVux/PLe2ds10/2w==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-linux-64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.14.tgz", | ||||
|       "integrity": "sha512-ONySx3U0wAJOJuxGUlXBWxVKFVpWv88JEv0NZ6NlHknmDd1yCbf4AEdClSgLrqKQDXYywmw4gYDvdLsS6z0hcw==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.16.tgz", | ||||
|       "integrity": "sha512-tuSOjXdLw7VzaUj89fIdAaQT7zFGbKBcz4YxbWrOiXkwscYgE7HtTxUavreBbnRkGxKwr9iT/gmeJWNm4djy/g==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-linux-arm": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.14.tgz", | ||||
|       "integrity": "sha512-D2LImAIV3QzL7lHURyCHBkycVFbKwkDb1XEUWan+2fb4qfW7qAeUtul7ZIcIwFKZgPcl+6gKZmvLgPSj26RQ2Q==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.16.tgz", | ||||
|       "integrity": "sha512-XKcrxCEXDTOuoRj5l12tJnkvuxXBMKwEC5j0JISw3ziLf0j4zIwXbKbTmUrKFWbo6ZgvNpa7Y5dnbsjVvH39bQ==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-linux-arm64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.14.tgz", | ||||
|       "integrity": "sha512-kle2Ov6a1e5AjlHlMQl1e+c4myGTeggrRzArQFmWp6O6JoqqB9hT+B28EW4tjFWgV/NxUq46pWYpgaWXsXRPAg==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.16.tgz", | ||||
|       "integrity": "sha512-mPYksnfHnemNrvjrDhZyixL/AfbJN0Xn9S34ZOHYdh6/jJcNd8iTsv3JwJoEvTJqjMggjMhGUPJAdjnFBHoH8A==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-linux-mips64le": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.14.tgz", | ||||
|       "integrity": "sha512-FVdMYIzOLXUq+OE7XYKesuEAqZhmAIV6qOoYahvUp93oXy0MOVTP370ECbPfGXXUdlvc0TNgkJa3YhEwyZ6MRA==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.16.tgz", | ||||
|       "integrity": "sha512-kSJO2PXaxfm0pWY39+YX+QtpFqyyrcp0ZeI8QPTrcFVQoWEPiPVtOfTZeS3ZKedfH+Ga38c4DSzmKMQJocQv6A==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-linux-ppc64le": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.14.tgz", | ||||
|       "integrity": "sha512-2NzH+iuzMDA+jjtPjuIz/OhRDf8tzbQ1tRZJI//aT25o1HKc0reMMXxKIYq/8nSHXiJSnYV4ODzTiv45s+h73w==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.16.tgz", | ||||
|       "integrity": "sha512-NimPikwkBY0yGABw6SlhKrtT35sU4O23xkhlrTT/O6lSxv3Pm5iSc6OYaqVAHWkLdVf31bF4UDVFO+D990WpAA==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-linux-riscv64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.14.tgz", | ||||
|       "integrity": "sha512-VqxvutZNlQxmUNS7Ac+aczttLEoHBJ9e3OYGqnULrfipRvG97qLrAv9EUY9iSrRKBqeEbSvS9bSfstZqwz0T4Q==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.16.tgz", | ||||
|       "integrity": "sha512-ty2YUHZlwFOwp7pR+J87M4CVrXJIf5ZZtU/umpxgVJBXvWjhziSLEQxvl30SYfUPq0nzeWKBGw5i/DieiHeKfw==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-linux-s390x": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.14.tgz", | ||||
|       "integrity": "sha512-+KVHEUshX5n6VP6Vp/AKv9fZIl5kr2ph8EUFmQUJnDpHwcfTSn2AQgYYm0HTBR2Mr4d0Wlr0FxF/Cs5pbFgiOw==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.16.tgz", | ||||
|       "integrity": "sha512-VkZaGssvPDQtx4fvVdZ9czezmyWyzpQhEbSNsHZZN0BHvxRLOYAQ7sjay8nMQwYswP6O2KlZluRMNPYefFRs+w==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-netbsd-64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.14.tgz", | ||||
|       "integrity": "sha512-6D/dr17piEgevIm1xJfZP2SjB9Z+g8ERhNnBdlZPBWZl+KSPUKLGF13AbvC+nzGh8IxOH2TyTIdRMvKMP0nEzQ==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.16.tgz", | ||||
|       "integrity": "sha512-ElQ9rhdY51et6MJTWrCPbqOd/YuPowD7Cxx3ee8wlmXQQVW7UvQI6nSprJ9uVFQISqSF5e5EWpwWqXZsECLvXg==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-openbsd-64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.14.tgz", | ||||
|       "integrity": "sha512-rREQBIlMibBetgr2E9Lywt2Qxv2ZdpmYahR4IUlAQ1Efv/A5gYdO0/VIN3iowDbCNTLxp0bb57Vf0LFcffD6kA==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.16.tgz", | ||||
|       "integrity": "sha512-KgxMHyxMCT+NdLQE1zVJEsLSt2QQBAvJfmUGDmgEq8Fvjrf6vSKB00dVHUEDKcJwMID6CdgCpvYNt999tIYhqA==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-sunos-64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.14.tgz", | ||||
|       "integrity": "sha512-DNVjSp/BY4IfwtdUAvWGIDaIjJXY5KI4uD82+15v6k/w7px9dnaDaJJ2R6Mu+KCgr5oklmFc0KjBjh311Gxl9Q==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.16.tgz", | ||||
|       "integrity": "sha512-exSAx8Phj7QylXHlMfIyEfNrmqnLxFqLxdQF6MBHPdHAjT7fsKaX6XIJn+aQEFiOcE4X8e7VvdMCJ+WDZxjSRQ==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-windows-32": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.14.tgz", | ||||
|       "integrity": "sha512-pHBWrcA+/oLgvViuG9FO3kNPO635gkoVrRQwe6ZY1S0jdET07xe2toUvQoJQ8KT3/OkxqUasIty5hpuKFLD+eg==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.16.tgz", | ||||
|       "integrity": "sha512-zQgWpY5pUCSTOwqKQ6/vOCJfRssTvxFuEkpB4f2VUGPBpdddZfdj8hbZuFRdZRPIVHvN7juGcpgCA/XCF37mAQ==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-windows-64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.14.tgz", | ||||
|       "integrity": "sha512-CszIGQVk/P8FOS5UgAH4hKc9zOaFo69fe+k1rqgBHx3CSK3Opyk5lwYriIamaWOVjBt7IwEP6NALz+tkVWdFog==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.16.tgz", | ||||
|       "integrity": "sha512-HjW1hHRLSncnM3MBCP7iquatHVJq9l0S2xxsHHj4yzf4nm9TU4Z7k4NkeMlD/dHQ4jPlQQhwcMvwbJiOefSuZw==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-windows-arm64": { | ||||
|       "version": "0.15.14", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.14.tgz", | ||||
|       "integrity": "sha512-KW9W4psdZceaS9A7Jsgl4WialOznSURvqX/oHZk3gOP7KbjtHLSsnmSvNdzagGJfxbAe30UVGXRe8q8nDsOSQw==", | ||||
|       "version": "0.15.16", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.16.tgz", | ||||
|       "integrity": "sha512-oCcUKrJaMn04Vxy9Ekd8x23O8LoU01+4NOkQ2iBToKgnGj5eo1vU9i27NQZ9qC8NFZgnQQZg5oZWAejmbsppNA==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
| @@ -2204,6 +2210,11 @@ | ||||
|         "minimatch": "^3.0.4" | ||||
|       } | ||||
|     }, | ||||
|     "jsonc-parser": { | ||||
|       "version": "3.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", | ||||
|       "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" | ||||
|     }, | ||||
|     "jsonfile": { | ||||
|       "version": "6.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", | ||||
| @@ -2428,9 +2439,9 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "terser": { | ||||
|       "version": "5.15.1", | ||||
|       "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", | ||||
|       "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", | ||||
|       "version": "5.16.0", | ||||
|       "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.0.tgz", | ||||
|       "integrity": "sha512-KjTV81QKStSfwbNiwlBXfcgMcOloyuRdb62/iLFPGBcVNF4EXjhdYBhYHmbJpiBrVxZhDvltE11j+LBQUxEEJg==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@jridgewell/source-map": "^0.3.2", | ||||
|   | ||||
| @@ -9,6 +9,7 @@ | ||||
|     "preview": "vite preview" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "jsonc-parser": "3.2.0", | ||||
|     "modern-normalize": "1.1.0" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|   | ||||
							
								
								
									
										5
									
								
								jsonresume-theme-custom/scripts/main.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								jsonresume-theme-custom/scripts/main.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| import { DIVLO_BIRTHDAY, getAge } from '../../utils/getAge.ts' | ||||
|  | ||||
| const yearOld = document.getElementById('year-old') | ||||
|  | ||||
| yearOld.textContent = getAge(DIVLO_BIRTHDAY).toString() | ||||
| @@ -226,5 +226,4 @@ h5 { | ||||
| } | ||||
| .section-separated { | ||||
|   display: flex; | ||||
|   align-items: space-evenly; | ||||
| } | ||||
|   | ||||
| @@ -1,16 +1,19 @@ | ||||
| import fs from 'node:fs' | ||||
|  | ||||
| import { defineConfig } from 'vite' | ||||
| import { parse as JSONCParser } from 'jsonc-parser' | ||||
| import { createHtmlPlugin } from 'vite-plugin-html' | ||||
| import date from 'date-and-time' | ||||
|  | ||||
| const jsonResumeURL = new URL('../resume.json', import.meta.url) | ||||
| const jsonResumeURL = new URL('../resume.jsonc', import.meta.url) | ||||
| const dataResumeStringJSON = await fs.promises.readFile(jsonResumeURL, { | ||||
|   encoding: 'utf-8' | ||||
| }) | ||||
| const resume = JSON.parse(dataResumeStringJSON) | ||||
| const resume = JSONCParser(dataResumeStringJSON) | ||||
|  | ||||
| // https://vitejs.dev/config/ | ||||
| /** | ||||
|  * Documentation: <https://vitejs.dev/config/> | ||||
|  */ | ||||
| export default defineConfig({ | ||||
|   build: { | ||||
|     assetsDir: './' | ||||
|   | ||||
							
								
								
									
										2001
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2001
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										28
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								package.json
									
									
									
									
									
								
							| @@ -26,7 +26,7 @@ | ||||
|     "test:lighthouse": "lhci autorun", | ||||
|     "test:e2e": "start-server-and-test \"start\" \"http://127.0.0.1:3000\" \"cypress run\"", | ||||
|     "test:dev": "start-server-and-test \"dev\" \"http://127.0.0.1:3000\" \"cypress open\"", | ||||
|     "resume:build": "node ./jsonresume-theme-custom/scripts/build.js", | ||||
|     "resume:build": "node ./jsonresume-theme-custom/build.js", | ||||
|     "release": "semantic-release", | ||||
|     "deploy": "vercel", | ||||
|     "postinstall": "husky install" | ||||
| @@ -37,12 +37,12 @@ | ||||
|     "@fortawesome/free-brands-svg-icons": "6.2.1", | ||||
|     "@fortawesome/free-solid-svg-icons": "6.2.1", | ||||
|     "@fortawesome/react-fontawesome": "0.2.0", | ||||
|     "@giscus/react": "2.2.3", | ||||
|     "@giscus/react": "2.2.4", | ||||
|     "clsx": "1.2.1", | ||||
|     "date-and-time": "2.4.1", | ||||
|     "gray-matter": "4.0.3", | ||||
|     "html-react-parser": "3.0.4", | ||||
|     "next": "13.0.4", | ||||
|     "next": "13.0.5", | ||||
|     "next-mdx-remote": "4.2.0", | ||||
|     "next-pwa": "5.6.0", | ||||
|     "next-themes": "0.2.1", | ||||
| @@ -60,8 +60,8 @@ | ||||
|     "universal-cookie": "4.0.4" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@commitlint/cli": "17.2.0", | ||||
|     "@commitlint/config-conventional": "17.2.0", | ||||
|     "@commitlint/cli": "17.3.0", | ||||
|     "@commitlint/config-conventional": "17.3.0", | ||||
|     "@lhci/cli": "0.10.0", | ||||
|     "@saithodev/semantic-release-backmerge": "2.1.2", | ||||
|     "@semantic-release/git": "10.0.1", | ||||
| @@ -69,30 +69,30 @@ | ||||
|     "@types/node": "18.11.9", | ||||
|     "@types/react": "18.0.25", | ||||
|     "@types/unist": "2.0.6", | ||||
|     "@typescript-eslint/eslint-plugin": "5.43.0", | ||||
|     "@typescript-eslint/eslint-plugin": "5.45.0", | ||||
|     "autoprefixer": "10.4.13", | ||||
|     "cypress": "11.1.0", | ||||
|     "cypress": "11.2.0", | ||||
|     "editorconfig-checker": "4.0.2", | ||||
|     "eslint": "8.28.0", | ||||
|     "eslint-config-conventions": "5.0.0", | ||||
|     "eslint-config-next": "13.0.4", | ||||
|     "eslint-config-conventions": "6.0.0", | ||||
|     "eslint-config-next": "13.0.5", | ||||
|     "eslint-config-prettier": "8.5.0", | ||||
|     "eslint-plugin-import": "2.26.0", | ||||
|     "eslint-plugin-prettier": "4.2.1", | ||||
|     "eslint-plugin-promise": "6.1.1", | ||||
|     "eslint-plugin-unicorn": "44.0.2", | ||||
|     "eslint-plugin-unicorn": "45.0.1", | ||||
|     "html-w3c-validator": "1.2.1", | ||||
|     "husky": "8.0.2", | ||||
|     "jsonresume-theme-custom": "file:./jsonresume-theme-custom", | ||||
|     "lint-staged": "13.0.3", | ||||
|     "lint-staged": "13.0.4", | ||||
|     "markdownlint-cli2": "0.5.1", | ||||
|     "postcss": "8.4.19", | ||||
|     "prettier": "2.7.1", | ||||
|     "prettier-plugin-tailwindcss": "0.1.13", | ||||
|     "prettier": "2.8.0", | ||||
|     "prettier-plugin-tailwindcss": "0.2.0", | ||||
|     "semantic-release": "19.0.5", | ||||
|     "start-server-and-test": "1.14.0", | ||||
|     "tailwindcss": "3.2.4", | ||||
|     "typescript": "4.9.3", | ||||
|     "vercel": "28.5.5" | ||||
|     "vercel": "28.5.6" | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -5,19 +5,43 @@ | ||||
|   }, | ||||
|   "basics": { | ||||
|     "name": "Théo LUDWIG", | ||||
|     "label": "Développeur Full Stack • Enthousiaste de l'Open-Source", | ||||
|     "label": "Développeur Full Stack • Étudiant", | ||||
|     "image": "https://divlo.fr/images/logo_orange.png", | ||||
|     "email": "contact@divlo.fr", | ||||
|     "location": {}, | ||||
|     "age": "31/03/2003", | ||||
|     "location": { | ||||
|       "address": "Alsace, France" | ||||
|     }, | ||||
|     "url": "https://divlo.fr", | ||||
|     "summary": "Je suis étudiant à l'université suivant la formation \"BUT Informatique\" et me forme en autodidacte dans l'informatique en suivant des formations en ligne. <br/> Je mets en pratique tout ce que j'apprends et réalise de nombreux projets (disponible sur divlo.fr)." | ||||
|     "summary": "Je suis étudiant à l'université suivant la formation \"BUT Informatique\" et me forme en autodidacte dans l'informatique en suivant des formations en ligne. <br/> Je mets en pratique tout ce que j'apprends et réalise de nombreux projets (disponible sur <a href=\"https://divlo.fr\">divlo.fr</a>)." | ||||
|   }, | ||||
|   "education": [ | ||||
|     { | ||||
|       "startDate": "2022", | ||||
|       "endDate": "2023", | ||||
|       "studyType": "Diplôme du Bachelor Universitaire de Technologie (BUT) Informatique", | ||||
|       "institution": "IUT Robert Schuman à Illkirch-Graffenstaden", | ||||
|       "score": "2ème année" | ||||
|       "score": "2ème année", | ||||
|       "courses": [ | ||||
|         "Développement Web avec le framework Laravel en PHP", | ||||
|         "Patrons et Principes de conceptions (Code maintenable et réutilisable)", | ||||
|         "Programmation systèmes en C (Multi-Thread, Serveur/Client UDP/TCP)", | ||||
|         "Sécurisation des accès à la base de données et PL/SQL", | ||||
|         "Projet développement d'une application web en React.js en équipe de 3 personnes pendant 3 mois" | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "startDate": "2021", | ||||
|       "endDate": "2022", | ||||
|       "studyType": "Diplôme du Bachelor Universitaire de Technologie (BUT) Informatique", | ||||
|       "institution": "IUT Robert Schuman à Illkirch-Graffenstaden", | ||||
|       "score": "1ère année", | ||||
|       "courses": [ | ||||
|         "Développement Orientée Objet en Java", | ||||
|         "Programmation systèmes en C (Allocation mémoire, Pointeurs, Structures)", | ||||
|         "Développement d'application Windows Forms (.NET Framework) en C#", | ||||
|         "Base de données relationnelles et langage SQL" | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "startDate": "2019", | ||||
| @@ -25,23 +49,25 @@ | ||||
|       "studyType": "Diplôme du Baccalauréat Général (Mathématiques et Numériques Sciences Informatiques)", | ||||
|       "institution": "Lycée Heinrich Nessel à Haguenau", | ||||
|       "score": "Mention Assez Bien" | ||||
|     }, | ||||
|     { | ||||
|       "startDate": "2014", | ||||
|       "endDate": "2018", | ||||
|       "studyType": "Diplôme national du brevet", | ||||
|       "institution": "Collège Gustave Doré à Hochfelden", | ||||
|       "score": "Mention Bien" | ||||
|     } | ||||
|     // { | ||||
|     //   "startDate": "2014", | ||||
|     //   "endDate": "2018", | ||||
|     //   "studyType": "Diplôme national du brevet", | ||||
|     //   "institution": "Collège Gustave Doré à Hochfelden", | ||||
|     //   "score": "Mention Bien" | ||||
|     // } | ||||
|   ], | ||||
|   "work": [ | ||||
|     { | ||||
|       "summary": "Développement site web en React.js et Strapi afin de répondre <a href=\"https://www.nuitdelinfo.com/nuitinfo/_media/infos:la_nuit_de_l_info_2021_-_sujet.pdf\">au sujet de la Nuit de l'Info 2021</a>.<br /> Classé n°1 en France sur le Défi de l'entreprise <a href=\"https://www.nuitdelinfo.com/inscription/defis/300\">ToolPad</a>.", | ||||
|       "description": "interests", | ||||
|       "summary": "Développement site web en React.js et Strapi.<br /> Classé n°1 en France sur le Défi de l'entreprise <a href=\"https://www.toolpad.fr/\">ToolPad</a>.", | ||||
|       "website": "https://www.nuitdelinfo.com/", | ||||
|       "name": "La Nuit de l'info 2021", | ||||
|       "position": "Participation en équipe de 5 personnes", | ||||
|       "startDate": "2021-12-02", | ||||
|       "endDate": "2021-12-03" | ||||
|       "endDate": "2021-12-03", | ||||
|       "duration": "1 semaine" | ||||
|     }, | ||||
|     { | ||||
|       "summary": "Agent administratif - Numérisation et archivage des plans électriques initialement sous format papier calque.", | ||||
| @@ -50,16 +76,19 @@ | ||||
|       "location": "5 Rue André Marie Ampère, 67450 Mundolsheim", | ||||
|       "position": "Emploi d'été en qualité d'agent administratif", | ||||
|       "startDate": "2021-07-07", | ||||
|       "endDate": "2021-07-30" | ||||
|       "endDate": "2021-07-30", | ||||
|       "duration": "1 mois" | ||||
|     }, | ||||
|     { | ||||
|       "description": "interests", | ||||
|       "summary": "Hackathon développement d'une landing page et web scraping.", | ||||
|       "website": "https://www.wildcodeschool.fr/", | ||||
|       "name": "Wild Code School", | ||||
|       "location": "32 Rue du Bass. d'Austerlitz, 67100 Strasbourg", | ||||
|       "position": "Stage initiation métier développeur web", | ||||
|       "position": "Initiation métier développeur web", | ||||
|       "startDate": "2019-06-24", | ||||
|       "endDate": "2019-06-28" | ||||
|       "endDate": "2019-06-28", | ||||
|       "duration": "1 semaine" | ||||
|     }, | ||||
|     { | ||||
|       "summary": "Développement d'un site web pour trouver un restaurant à la pause repas.", | ||||
| @@ -68,7 +97,8 @@ | ||||
|       "location": "16 Rue du Parc, 67205 Oberhausbergen", | ||||
|       "position": "Stage initiation métier développeur web", | ||||
|       "startDate": "2019-06-17", | ||||
|       "endDate": "2019-06-21" | ||||
|       "endDate": "2019-06-21", | ||||
|       "duration": "1 semaine" | ||||
|     }, | ||||
|     { | ||||
|       "summary": "Apprentissage du métier \"Chargé de communication\" et des logiciels de graphisme tels que \"Adobe Photoshop\".", | ||||
| @@ -77,13 +107,11 @@ | ||||
|       "location": "26 Bd du Président-Wilson, 67000 Strasbourg", | ||||
|       "position": "Stage de découverte (3ème)", | ||||
|       "startDate": "2018-02-19", | ||||
|       "endDate": "2018-02-23" | ||||
|       "endDate": "2018-02-23", | ||||
|       "duration": "1 semaine" | ||||
|     } | ||||
|   ], | ||||
|   "interests": [ | ||||
|     { | ||||
|       "name": "Développeur Full Stack" | ||||
|     }, | ||||
|     { | ||||
|       "name": "Enthousiaste de l'Open-Source" | ||||
|     }, | ||||
| @@ -93,11 +121,11 @@ | ||||
|   ], | ||||
|   "skills": [ | ||||
|     { | ||||
|       "keywords": ["JavaScript", "TypeScript", "Python", "C/C++", "PHP"], | ||||
|       "keywords": ["JavaScript/TypeScript", "Python", "C/C++", "PHP"], | ||||
|       "name": "Langages de programmation" | ||||
|     }, | ||||
|     { | ||||
|       "keywords": ["HTML", "CSS", "Tailwind CSS", "React.js (+ Next.js)"], | ||||
|       "keywords": ["HTML", "CSS", "Tailwind CSS", "React.js/Next.js"], | ||||
|       "name": "Front-end" | ||||
|     }, | ||||
|     { | ||||
| @@ -109,10 +137,14 @@ | ||||
|         "GNU/Linux", | ||||
|         "Ubuntu", | ||||
|         "Visual Studio Code", | ||||
|         "git", | ||||
|         "Git", | ||||
|         "Docker" | ||||
|       ], | ||||
|       "name": "Logiciels et outils" | ||||
|     }, | ||||
|     { | ||||
|       "keywords": ["Permis B", "Anglais"], | ||||
|       "name": "Autres" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
		Reference in New Issue
	
	Block a user