chore: rename jsonresume-theme-custom to curriculum-vitae
				
					
				
			
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -12,9 +12,6 @@ out | |||||||
| build | build | ||||||
| dist | dist | ||||||
| public/curriculum-vitae | public/curriculum-vitae | ||||||
| # PWA |  | ||||||
| public/workbox-*.js |  | ||||||
| public/sw.js |  | ||||||
|  |  | ||||||
| # testing | # testing | ||||||
| coverage | coverage | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ RUN npm clean-install | |||||||
| FROM node:20.5.0 AS builder | FROM node:20.5.0 AS builder | ||||||
| WORKDIR /usr/src/application | WORKDIR /usr/src/application | ||||||
| COPY --from=builder-dependencies /usr/src/application/node_modules ./node_modules | COPY --from=builder-dependencies /usr/src/application/node_modules ./node_modules | ||||||
| COPY --from=builder-dependencies /usr/src/application/jsonresume-theme-custom/node_modules ./jsonresume-theme-custom/node_modules | COPY --from=builder-dependencies /usr/src/application/curriculum-vitae/node_modules ./curriculum-vitae/node_modules | ||||||
| COPY ./ ./ | COPY ./ ./ | ||||||
| RUN npm run build | RUN npm run build | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,8 +1,5 @@ | |||||||
| { | { | ||||||
|   "$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json", |   "$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json", | ||||||
|   "meta": { |  | ||||||
|     "theme": "custom" |  | ||||||
|   }, |  | ||||||
|   "basics": { |   "basics": { | ||||||
|     "name": "Théo LUDWIG", |     "name": "Théo LUDWIG", | ||||||
|     "label": "Développeur Full Stack • Étudiant", |     "label": "Développeur Full Stack • Étudiant", | ||||||
							
								
								
									
										20
									
								
								curriculum-vitae/build.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,20 @@ | |||||||
|  | import { fileURLToPath } from 'node:url' | ||||||
|  | import fs from 'node:fs' | ||||||
|  |  | ||||||
|  | import { build } from 'vite' | ||||||
|  |  | ||||||
|  | const curriculumVitae = new URL('./', import.meta.url) | ||||||
|  | const curriculumVitaeDist = new URL('./dist', curriculumVitae) | ||||||
|  | const publicCurriculumVitaeOutputURL = new URL( | ||||||
|  |   '../public/curriculum-vitae', | ||||||
|  |   import.meta.url | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | await build({ | ||||||
|  |   root: fileURLToPath(curriculumVitae), | ||||||
|  |   base: '/curriculum-vitae/' | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | await fs.promises.cp(curriculumVitaeDist, publicCurriculumVitaeOutputURL, { | ||||||
|  |   recursive: true | ||||||
|  | }) | ||||||
| Before Width: | Height: | Size: 1015 B After Width: | Height: | Size: 1015 B | 
| Before Width: | Height: | Size: 986 B After Width: | Height: | Size: 986 B | 
| Before Width: | Height: | Size: 629 B After Width: | Height: | Size: 629 B | 
| Before Width: | Height: | Size: 912 B After Width: | Height: | Size: 912 B | 
| Before Width: | Height: | Size: 528 B After Width: | Height: | Size: 528 B | 
| @@ -1,267 +1,27 @@ | |||||||
| { | { | ||||||
|   "name": "jsonresume-theme-custom", |   "name": "curriculum-vitae", | ||||||
|   "version": "1.0.0", |   "version": "1.0.0", | ||||||
|   "lockfileVersion": 3, |   "lockfileVersion": 3, | ||||||
|   "requires": true, |   "requires": true, | ||||||
|   "packages": { |   "packages": { | ||||||
|     "": { |     "": { | ||||||
|       "name": "jsonresume-theme-custom", |       "name": "curriculum-vitae", | ||||||
|       "version": "1.0.0", |       "version": "1.0.0", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "jsonc-parser": "3.2.0", |         "jsonc-parser": "3.2.0", | ||||||
|         "modern-normalize": "2.0.0" |         "modern-normalize": "2.0.0" | ||||||
|       }, |       }, | ||||||
|       "devDependencies": { |       "devDependencies": { | ||||||
|         "@types/node": "20.4.4", |         "@types/node": "20.4.5", | ||||||
|         "date-and-time": "3.0.2", |         "date-and-time": "3.0.2", | ||||||
|         "vite": "4.4.6", |         "vite": "4.4.7", | ||||||
|         "vite-plugin-html": "3.2.0" |         "vite-plugin-html": "3.2.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@esbuild/android-arm": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-wlkQBWb79/jeEEoRmrxt/yhn5T1lU236OCNpnfRzaCJHZ/5gf82uYx1qmADTBWE0AR/v7FiozE1auk2riyQd3w==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "arm" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "android" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/android-arm64": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-NI/gnWcMl2kXt1HJKOn2H69SYn4YNheKo6NZt1hyfKWdMbaGadxjZIkcj4Gjk/WPxnbFXs9/3HjGHaknCqjrww==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "arm64" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "android" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/android-x64": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-FM9NQamSaEm/IZIhegF76aiLnng1kEsZl2eve/emxDeReVfRuRNmvT28l6hoFD9TsCxpK+i4v8LPpEj74T7yjA==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "x64" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "android" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/darwin-arm64": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-XmrFwEOYauKte9QjS6hz60FpOCnw4zaPAb7XV7O4lx1r39XjJhTN7ZpXqJh4sN6q60zbP6QwAVVA8N/wUyBH/w==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "arm64" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "darwin" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/darwin-x64": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-bMqBmpw1e//7Fh5GLetSZaeo9zSC4/CMtrVFdj+bqKPGJuKyfNJ5Nf2m3LknKZTS+Q4oyPiON+v3eaJ59sLB5A==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "x64" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "darwin" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/freebsd-arm64": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-LoTK5N3bOmNI9zVLCeTgnk5Rk0WdUTrr9dyDAQGVMrNTh9EAPuNwSTCgaKOKiDpverOa0htPcO9NwslSE5xuLA==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "arm64" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "freebsd" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/freebsd-x64": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-62jX5n30VzgrjAjOk5orYeHFq6sqjvsIj1QesXvn5OZtdt5Gdj0vUNJy9NIpjfdNdqr76jjtzBJKf+h2uzYuTQ==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "x64" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "freebsd" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/linux-arm": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-dT4URUv6ir45ZkBqhwZwyFV6cH61k8MttIwhThp2BGiVtagYvCToF+Bggyx2VI57RG4Fbt21f9TmXaYx0DeUJg==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "arm" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "linux" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/linux-arm64": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-BWncQeuWDgYv0jTNzJjaNgleduV4tMbQjmk/zpPh/lUdMcNEAxy+jvneDJ6RJkrqloG7tB9S9rCrtfk/kuplsQ==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "arm64" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "linux" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/linux-ia32": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-JPXORvgHRHITqfms1dWT/GbEY89u848dC08o0yK3fNskhp0t2TuNUnsrrSgOdH28ceb1hJuwyr8R/1RnyPwocw==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "ia32" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "linux" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/linux-loong64": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-kArPI0DopjJCEplsVj/H+2Qgzz7vdFSacHNsgoAKpPS6W/Ndh8Oe24HRDQ5QCu4jHgN6XOtfFfLpRx3TXv/mEg==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "loong64" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "linux" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/linux-mips64el": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-b/tmngUfO02E00c1XnNTw/0DmloKjb6XQeqxaYuzGwHe0fHVgx5/D6CWi+XH1DvkszjBUkK9BX7n1ARTOst59w==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "mips64el" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "linux" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/linux-ppc64": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-KXPY69MWw79QJkyvUYb2ex/OgnN/8N/Aw5UDPlgoRtoEfcBqfeLodPr42UojV3NdkoO4u10NXQdamWm1YEzSKw==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "ppc64" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "linux" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/linux-riscv64": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-komK3NEAeeGRnvFEjX1SfVg6EmkfIi5aKzevdvJqMydYr9N+pRQK0PGJXk+bhoPZwOUgLO4l99FZmLGk/L1jWg==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "riscv64" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "linux" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/linux-s390x": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-632T5Ts6gQ2WiMLWRRyeflPAm44u2E/s/TJvn+BP6M5mnHSk93cieaypj3VSMYO2ePTCRqAFXtuYi1yv8uZJNA==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "s390x" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "linux" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/linux-x64": { |     "node_modules/@esbuild/linux-x64": { | ||||||
|       "version": "0.18.15", |       "version": "0.18.17", | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.15.tgz", |       "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz", | ||||||
|       "integrity": "sha512-MsHtX0NgvRHsoOtYkuxyk4Vkmvk3PLRWfA4okK7c+6dT0Fu4SUqXAr9y4Q3d8vUf1VWWb6YutpL4XNe400iQ1g==", |       "integrity": "sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==", | ||||||
|       "cpu": [ |       "cpu": [ | ||||||
|         "x64" |         "x64" | ||||||
|       ], |       ], | ||||||
| @@ -274,102 +34,6 @@ | |||||||
|         "node": ">=12" |         "node": ">=12" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@esbuild/netbsd-x64": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-djST6s+jQiwxMIVQ5rlt24JFIAr4uwUnzceuFL7BQT4CbrRtqBPueS4GjXSiIpmwVri1Icj/9pFRJ7/aScvT+A==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "x64" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "netbsd" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/openbsd-x64": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-naeRhUIvhsgeounjkF5mvrNAVMGAm6EJWiabskeE5yOeBbLp7T89tAEw0j5Jm/CZAwyLe3c67zyCWH6fsBLCpw==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "x64" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "openbsd" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/sunos-x64": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-qkT2+WxyKbNIKV1AEhI8QiSIgTHMcRctzSaa/I3kVgMS5dl3fOeoqkb7pW76KwxHoriImhx7Mg3TwN/auMDsyQ==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "x64" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "sunos" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/win32-arm64": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-HC4/feP+pB2Vb+cMPUjAnFyERs+HJN7E6KaeBlFdBv799MhD+aPJlfi/yk36SED58J9TPwI8MAcVpJgej4ud0A==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "arm64" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "win32" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/win32-ia32": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-ovjwoRXI+gf52EVF60u9sSDj7myPixPxqzD5CmkEUmvs+W9Xd0iqISVBQn8xcx4ciIaIVlWCuTbYDOXOnOL44Q==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "ia32" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "win32" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@esbuild/win32-x64": { |  | ||||||
|       "version": "0.18.15", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.15.tgz", |  | ||||||
|       "integrity": "sha512-imUxH9a3WJARyAvrG7srLyiK73XdX83NXQkjKvQ+7vPh3ZxoLrzvPkQKKw2DwZ+RV2ZB6vBfNHP8XScAmQC3aA==", |  | ||||||
|       "cpu": [ |  | ||||||
|         "x64" |  | ||||||
|       ], |  | ||||||
|       "dev": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "win32" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/@jridgewell/gen-mapping": { |     "node_modules/@jridgewell/gen-mapping": { | ||||||
|       "version": "0.3.3", |       "version": "0.3.3", | ||||||
|       "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", |       "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", | ||||||
| @@ -483,9 +147,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@types/node": { |     "node_modules/@types/node": { | ||||||
|       "version": "20.4.4", |       "version": "20.4.5", | ||||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.4.tgz", |       "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.5.tgz", | ||||||
|       "integrity": "sha512-CukZhumInROvLq3+b5gLev+vgpsIqC2D0deQr/yS1WnxvmYLlJXZpaQrQiseMY+6xusl79E04UjWoqyr+t1/Ew==", |       "integrity": "sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/acorn": { |     "node_modules/acorn": { | ||||||
| @@ -798,9 +462,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/esbuild": { |     "node_modules/esbuild": { | ||||||
|       "version": "0.18.15", |       "version": "0.18.17", | ||||||
|       "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.15.tgz", |       "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz", | ||||||
|       "integrity": "sha512-3WOOLhrvuTGPRzQPU6waSDWrDTnQriia72McWcn6UCi43GhCHrXH4S59hKMeez+IITmdUuUyvbU9JIp+t3xlPQ==", |       "integrity": "sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "hasInstallScript": true, |       "hasInstallScript": true, | ||||||
|       "bin": { |       "bin": { | ||||||
| @@ -810,28 +474,28 @@ | |||||||
|         "node": ">=12" |         "node": ">=12" | ||||||
|       }, |       }, | ||||||
|       "optionalDependencies": { |       "optionalDependencies": { | ||||||
|         "@esbuild/android-arm": "0.18.15", |         "@esbuild/android-arm": "0.18.17", | ||||||
|         "@esbuild/android-arm64": "0.18.15", |         "@esbuild/android-arm64": "0.18.17", | ||||||
|         "@esbuild/android-x64": "0.18.15", |         "@esbuild/android-x64": "0.18.17", | ||||||
|         "@esbuild/darwin-arm64": "0.18.15", |         "@esbuild/darwin-arm64": "0.18.17", | ||||||
|         "@esbuild/darwin-x64": "0.18.15", |         "@esbuild/darwin-x64": "0.18.17", | ||||||
|         "@esbuild/freebsd-arm64": "0.18.15", |         "@esbuild/freebsd-arm64": "0.18.17", | ||||||
|         "@esbuild/freebsd-x64": "0.18.15", |         "@esbuild/freebsd-x64": "0.18.17", | ||||||
|         "@esbuild/linux-arm": "0.18.15", |         "@esbuild/linux-arm": "0.18.17", | ||||||
|         "@esbuild/linux-arm64": "0.18.15", |         "@esbuild/linux-arm64": "0.18.17", | ||||||
|         "@esbuild/linux-ia32": "0.18.15", |         "@esbuild/linux-ia32": "0.18.17", | ||||||
|         "@esbuild/linux-loong64": "0.18.15", |         "@esbuild/linux-loong64": "0.18.17", | ||||||
|         "@esbuild/linux-mips64el": "0.18.15", |         "@esbuild/linux-mips64el": "0.18.17", | ||||||
|         "@esbuild/linux-ppc64": "0.18.15", |         "@esbuild/linux-ppc64": "0.18.17", | ||||||
|         "@esbuild/linux-riscv64": "0.18.15", |         "@esbuild/linux-riscv64": "0.18.17", | ||||||
|         "@esbuild/linux-s390x": "0.18.15", |         "@esbuild/linux-s390x": "0.18.17", | ||||||
|         "@esbuild/linux-x64": "0.18.15", |         "@esbuild/linux-x64": "0.18.17", | ||||||
|         "@esbuild/netbsd-x64": "0.18.15", |         "@esbuild/netbsd-x64": "0.18.17", | ||||||
|         "@esbuild/openbsd-x64": "0.18.15", |         "@esbuild/openbsd-x64": "0.18.17", | ||||||
|         "@esbuild/sunos-x64": "0.18.15", |         "@esbuild/sunos-x64": "0.18.17", | ||||||
|         "@esbuild/win32-arm64": "0.18.15", |         "@esbuild/win32-arm64": "0.18.17", | ||||||
|         "@esbuild/win32-ia32": "0.18.15", |         "@esbuild/win32-ia32": "0.18.17", | ||||||
|         "@esbuild/win32-x64": "0.18.15" |         "@esbuild/win32-x64": "0.18.17" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/estree-walker": { |     "node_modules/estree-walker": { | ||||||
| @@ -921,20 +585,6 @@ | |||||||
|         "node": ">=12" |         "node": ">=12" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/fsevents": { |  | ||||||
|       "version": "2.3.2", |  | ||||||
|       "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", |  | ||||||
|       "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", |  | ||||||
|       "dev": true, |  | ||||||
|       "hasInstallScript": true, |  | ||||||
|       "optional": true, |  | ||||||
|       "os": [ |  | ||||||
|         "darwin" |  | ||||||
|       ], |  | ||||||
|       "engines": { |  | ||||||
|         "node": "^8.16.0 || ^10.6.0 || >=11.0.0" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/glob-parent": { |     "node_modules/glob-parent": { | ||||||
|       "version": "5.1.2", |       "version": "5.1.2", | ||||||
|       "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", |       "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", | ||||||
| @@ -1388,9 +1038,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/tslib": { |     "node_modules/tslib": { | ||||||
|       "version": "2.6.0", |       "version": "2.6.1", | ||||||
|       "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", |       "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", | ||||||
|       "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==", |       "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/universalify": { |     "node_modules/universalify": { | ||||||
| @@ -1403,9 +1053,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/vite": { |     "node_modules/vite": { | ||||||
|       "version": "4.4.6", |       "version": "4.4.7", | ||||||
|       "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.6.tgz", |       "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.7.tgz", | ||||||
|       "integrity": "sha512-EY6Mm8vJ++S3D4tNAckaZfw3JwG3wa794Vt70M6cNJ6NxT87yhq7EC8Rcap3ahyHdo8AhCmV9PTk+vG1HiYn1A==", |       "integrity": "sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "esbuild": "^0.18.10", |         "esbuild": "^0.18.10", | ||||||
| @@ -1,5 +1,5 @@ | |||||||
| { | { | ||||||
|   "name": "jsonresume-theme-custom", |   "name": "curriculum-vitae", | ||||||
|   "private": true, |   "private": true, | ||||||
|   "version": "1.0.0", |   "version": "1.0.0", | ||||||
|   "type": "module", |   "type": "module", | ||||||
| @@ -13,9 +13,9 @@ | |||||||
|     "modern-normalize": "2.0.0" |     "modern-normalize": "2.0.0" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@types/node": "20.4.4", |     "@types/node": "20.4.5", | ||||||
|     "date-and-time": "3.0.2", |     "date-and-time": "3.0.2", | ||||||
|     "vite": "4.4.6", |     "vite": "4.4.7", | ||||||
|     "vite-plugin-html": "3.2.0" |     "vite-plugin-html": "3.2.0" | ||||||
|   } |   } | ||||||
| } | } | ||||||
| @@ -5,11 +5,17 @@ import { parse as JSONCParser } from 'jsonc-parser' | |||||||
| import { createHtmlPlugin } from 'vite-plugin-html' | import { createHtmlPlugin } from 'vite-plugin-html' | ||||||
| import date from 'date-and-time' | import date from 'date-and-time' | ||||||
| 
 | 
 | ||||||
| const jsonResumeURL = new URL('../resume.jsonc', import.meta.url) | const jsonCurriculumVitaeURL = new URL( | ||||||
| const dataResumeStringJSON = await fs.promises.readFile(jsonResumeURL, { |   '../curriculum-vitae.jsonc', | ||||||
|   encoding: 'utf-8' |   import.meta.url | ||||||
| }) | ) | ||||||
| const resume = JSONCParser(dataResumeStringJSON) | const dataCurriculumVitaeStringJSON = await fs.promises.readFile( | ||||||
|  |   jsonCurriculumVitaeURL, | ||||||
|  |   { | ||||||
|  |     encoding: 'utf-8' | ||||||
|  |   } | ||||||
|  | ) | ||||||
|  | const curriculumVitae = JSONCParser(dataCurriculumVitaeStringJSON) | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Documentation: <https://vitejs.dev/config/>
 |  * Documentation: <https://vitejs.dev/config/>
 | ||||||
| @@ -24,7 +30,7 @@ export default defineConfig({ | |||||||
|         data: { |         data: { | ||||||
|           date, |           date, | ||||||
|           locals: { |           locals: { | ||||||
|             ...resume |             ...curriculumVitae | ||||||
|           } |           } | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
| @@ -1,20 +0,0 @@ | |||||||
| import { fileURLToPath } from 'node:url' |  | ||||||
| import fs from 'node:fs' |  | ||||||
|  |  | ||||||
| import { build } from 'vite' |  | ||||||
|  |  | ||||||
| const jsonResumeThemeCustom = new URL('./', import.meta.url) |  | ||||||
| const jsonResumeThemeCustomDist = new URL('./dist', jsonResumeThemeCustom) |  | ||||||
| const publicResumeOutputURL = new URL( |  | ||||||
|   '../public/curriculum-vitae', |  | ||||||
|   import.meta.url |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| await build({ |  | ||||||
|   root: fileURLToPath(jsonResumeThemeCustom), |  | ||||||
|   base: '/curriculum-vitae/' |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| await fs.promises.cp(jsonResumeThemeCustomDist, publicResumeOutputURL, { |  | ||||||
|   recursive: true |  | ||||||
| }) |  | ||||||
							
								
								
									
										5985
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
							
								
								
									
										20
									
								
								package.json
									
									
									
									
									
								
							
							
						
						| @@ -13,7 +13,7 @@ | |||||||
|   "scripts": { |   "scripts": { | ||||||
|     "dev": "next dev", |     "dev": "next dev", | ||||||
|     "start": "next start", |     "start": "next start", | ||||||
|     "build": "npm run resume:build && next build", |     "build": "npm run curriculum-vitae:build && next build", | ||||||
|     "lint:commit": "commitlint", |     "lint:commit": "commitlint", | ||||||
|     "lint:editorconfig": "editorconfig-checker", |     "lint:editorconfig": "editorconfig-checker", | ||||||
|     "lint:markdown": "markdownlint-cli2", |     "lint:markdown": "markdownlint-cli2", | ||||||
| @@ -24,7 +24,7 @@ | |||||||
|     "test:html-w3c-validator": "start-server-and-test \"start\" \"http://127.0.0.1:3000\" \"html-w3c-validator\"", |     "test:html-w3c-validator": "start-server-and-test \"start\" \"http://127.0.0.1:3000\" \"html-w3c-validator\"", | ||||||
|     "test:e2e": "start-server-and-test \"start\" http://127.0.0.1:3000 \"cypress run\"", |     "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\"", |     "test:dev": "start-server-and-test \"dev\" \"http://127.0.0.1:3000\" \"cypress open\"", | ||||||
|     "resume:build": "node ./jsonresume-theme-custom/build.js", |     "curriculum-vitae:build": "node ./curriculum-vitae/build.js", | ||||||
|     "release": "semantic-release", |     "release": "semantic-release", | ||||||
|     "postinstall": "husky install" |     "postinstall": "husky install" | ||||||
|   }, |   }, | ||||||
| @@ -65,25 +65,25 @@ | |||||||
|     "@semantic-release/git": "10.0.1", |     "@semantic-release/git": "10.0.1", | ||||||
|     "@tailwindcss/typography": "0.5.9", |     "@tailwindcss/typography": "0.5.9", | ||||||
|     "@tsconfig/strictest": "2.0.1", |     "@tsconfig/strictest": "2.0.1", | ||||||
|     "@types/node": "20.4.4", |     "@types/node": "20.4.5", | ||||||
|     "@types/react": "18.2.15", |     "@types/react": "18.2.17", | ||||||
|     "@types/unist": "3.0.0", |     "@types/unist": "3.0.0", | ||||||
|     "@typescript-eslint/eslint-plugin": "6.1.0", |     "@typescript-eslint/eslint-plugin": "6.2.0", | ||||||
|     "@typescript-eslint/parser": "6.1.0", |     "@typescript-eslint/parser": "6.2.0", | ||||||
|     "autoprefixer": "10.4.14", |     "autoprefixer": "10.4.14", | ||||||
|     "cypress": "12.17.2", |     "cypress": "12.17.2", | ||||||
|     "editorconfig-checker": "5.1.1", |     "editorconfig-checker": "5.1.1", | ||||||
|     "eslint": "8.45.0", |     "eslint": "8.45.0", | ||||||
|     "eslint-config-conventions": "11.0.1", |     "eslint-config-conventions": "11.0.1", | ||||||
|     "eslint-config-next": "13.4.12", |     "eslint-config-next": "13.4.12", | ||||||
|     "eslint-config-prettier": "8.8.0", |     "eslint-config-prettier": "8.9.0", | ||||||
|     "eslint-plugin-import": "2.27.5", |     "eslint-plugin-import": "2.28.0", | ||||||
|     "eslint-plugin-prettier": "5.0.0", |     "eslint-plugin-prettier": "5.0.0", | ||||||
|     "eslint-plugin-promise": "6.1.1", |     "eslint-plugin-promise": "6.1.1", | ||||||
|     "eslint-plugin-unicorn": "48.0.0", |     "eslint-plugin-unicorn": "48.0.1", | ||||||
|     "html-w3c-validator": "1.4.0", |     "html-w3c-validator": "1.4.0", | ||||||
|     "husky": "8.0.3", |     "husky": "8.0.3", | ||||||
|     "jsonresume-theme-custom": "file:./jsonresume-theme-custom", |     "curriculum-vitae": "file:./curriculum-vitae", | ||||||
|     "lint-staged": "13.2.3", |     "lint-staged": "13.2.3", | ||||||
|     "markdownlint-cli2": "0.8.1", |     "markdownlint-cli2": "0.8.1", | ||||||
|     "markdownlint-rule-relative-links": "2.1.0", |     "markdownlint-rule-relative-links": "2.1.0", | ||||||
|   | |||||||