mirror of
				https://github.com/theoludwig/theoludwig.git
				synced 2025-10-14 20:23:25 +02:00 
			
		
		
		
	feat(posts): add git-ultimate-guide
				
					
				
			This commit is contained in:
		
							
								
								
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -49,3 +49,7 @@ npm-debug.log* | ||||
| .DS_Store | ||||
| .lighthouseci | ||||
| .vercel | ||||
|  | ||||
| # typescript | ||||
| *.tsbuildinfo | ||||
| next-env.d.ts | ||||
|   | ||||
| @@ -14,7 +14,9 @@ export const Language: React.FC = () => { | ||||
|   const languageClickRef = useRef<HTMLDivElement | null>(null) | ||||
|  | ||||
|   const handleHiddenMenu = useCallback(() => { | ||||
|     setHiddenMenu((oldHiddenMenu) => !oldHiddenMenu) | ||||
|     setHiddenMenu((oldHiddenMenu) => { | ||||
|       return !oldHiddenMenu | ||||
|     }) | ||||
|   }, []) | ||||
|  | ||||
|   useEffect(() => { | ||||
| @@ -65,7 +67,9 @@ export const Language: React.FC = () => { | ||||
|             <li | ||||
|               key={index} | ||||
|               className='flex h-12 w-full items-center justify-center pl-2 hover:bg-[#4f545c] hover:bg-opacity-20' | ||||
|               onClick={async () => await handleLanguage(language)} | ||||
|               onClick={async () => { | ||||
|                 return await handleLanguage(language) | ||||
|               }} | ||||
|             > | ||||
|               <LanguageFlag language={language} /> | ||||
|             </li> | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' | ||||
| import { IconDefinition } from '@fortawesome/free-solid-svg-icons' | ||||
| import type { IconDefinition } from '@fortawesome/free-solid-svg-icons' | ||||
|  | ||||
| interface InterestItemProps { | ||||
|   title: string | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| import useTranslation from 'next-translate/useTranslation' | ||||
|  | ||||
| import { InterestParagraph, InterestParagraphProps } from './InterestParagraph' | ||||
| import type { InterestParagraphProps } from './InterestParagraph' | ||||
| import { InterestParagraph } from './InterestParagraph' | ||||
| import { InterestsList } from './InterestsList' | ||||
|  | ||||
| export const Interests: React.FC = () => { | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| import useTranslation from 'next-translate/useTranslation' | ||||
|  | ||||
| import { PortfolioItem, PortfolioItemProps } from './PortfolioItem' | ||||
| import type { PortfolioItemProps } from './PortfolioItem' | ||||
| import { PortfolioItem } from './PortfolioItem' | ||||
|  | ||||
| export const Portfolio: React.FC = () => { | ||||
|   const { t } = useTranslation('home') | ||||
|   | ||||
| @@ -1,5 +1,7 @@ | ||||
| describe('Common > Header', () => { | ||||
|   beforeEach(() => cy.visit('/')) | ||||
|   beforeEach(() => { | ||||
|     return cy.visit('/') | ||||
|   }) | ||||
|  | ||||
|   it('should redirect to /blog on click of the blog link', () => { | ||||
|     cy.get('[data-cy=header-blog-link]') | ||||
|   | ||||
| @@ -1,5 +1,7 @@ | ||||
| describe('Page /404', () => { | ||||
|   beforeEach(() => cy.visit('/404', { failOnStatusCode: false })) | ||||
|   beforeEach(() => { | ||||
|     return cy.visit('/404', { failOnStatusCode: false }) | ||||
|   }) | ||||
|  | ||||
|   it('should display the statusCode of 404', () => { | ||||
|     cy.get('[data-cy=status-code]').contains('404') | ||||
|   | ||||
| @@ -1,5 +1,7 @@ | ||||
| describe('Page /500', () => { | ||||
|   beforeEach(() => cy.visit('/500', { failOnStatusCode: false })) | ||||
|   beforeEach(() => { | ||||
|     return cy.visit('/500', { failOnStatusCode: false }) | ||||
|   }) | ||||
|  | ||||
|   it('should display the statusCode of 500', () => { | ||||
|     cy.get('[data-cy=status-code]').contains('500') | ||||
|   | ||||
| @@ -1,5 +1,7 @@ | ||||
| describe('Page /', () => { | ||||
|   beforeEach(() => cy.visit('/')) | ||||
|   beforeEach(() => { | ||||
|     return cy.visit('/') | ||||
|   }) | ||||
|  | ||||
|   it('should reveals the sections while scrolling except the about section', () => { | ||||
|     const sectionsReveals = [ | ||||
|   | ||||
							
								
								
									
										469
									
								
								jsonresume-theme-custom/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										469
									
								
								jsonresume-theme-custom/package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -11,16 +11,32 @@ | ||||
|         "modern-normalize": "1.1.0" | ||||
|       }, | ||||
|       "devDependencies": { | ||||
|         "@types/node": "18.7.11", | ||||
|         "@types/node": "18.7.23", | ||||
|         "date-and-time": "2.4.1", | ||||
|         "vite": "3.0.9", | ||||
|         "vite": "3.1.4", | ||||
|         "vite-plugin-html": "3.2.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@esbuild/android-arm": { | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.10.tgz", | ||||
|       "integrity": "sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==", | ||||
|       "cpu": [ | ||||
|         "arm" | ||||
|       ], | ||||
|       "dev": true, | ||||
|       "optional": true, | ||||
|       "os": [ | ||||
|         "android" | ||||
|       ], | ||||
|       "engines": { | ||||
|         "node": ">=12" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@esbuild/linux-loong64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", | ||||
|       "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.10.tgz", | ||||
|       "integrity": "sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==", | ||||
|       "cpu": [ | ||||
|         "loong64" | ||||
|       ], | ||||
| @@ -140,9 +156,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@types/node": { | ||||
|       "version": "18.7.11", | ||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.11.tgz", | ||||
|       "integrity": "sha512-KZhFpSLlmK/sdocfSAjqPETTMd0ug6HIMIAwkwUpU79olnZdQtMxpQP+G1wDzCH7na+FltSIhbaZuKdwZ8RDrw==", | ||||
|       "version": "18.7.23", | ||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.23.tgz", | ||||
|       "integrity": "sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/acorn": { | ||||
| @@ -410,9 +426,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/dotenv": { | ||||
|       "version": "16.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", | ||||
|       "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", | ||||
|       "version": "16.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.2.tgz", | ||||
|       "integrity": "sha512-JvpYKUmzQhYoIFgK2MOnF3bciIZoItIIoryihy0rIA+H4Jy0FmgyKYAHCTN98P5ybGSJcIFbh6QKeJdtZd1qhA==", | ||||
|       "dev": true, | ||||
|       "engines": { | ||||
|         "node": ">=12" | ||||
| @@ -452,9 +468,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", | ||||
|       "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.10.tgz", | ||||
|       "integrity": "sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==", | ||||
|       "dev": true, | ||||
|       "hasInstallScript": true, | ||||
|       "bin": { | ||||
| @@ -464,33 +480,34 @@ | ||||
|         "node": ">=12" | ||||
|       }, | ||||
|       "optionalDependencies": { | ||||
|         "@esbuild/linux-loong64": "0.14.54", | ||||
|         "esbuild-android-64": "0.14.54", | ||||
|         "esbuild-android-arm64": "0.14.54", | ||||
|         "esbuild-darwin-64": "0.14.54", | ||||
|         "esbuild-darwin-arm64": "0.14.54", | ||||
|         "esbuild-freebsd-64": "0.14.54", | ||||
|         "esbuild-freebsd-arm64": "0.14.54", | ||||
|         "esbuild-linux-32": "0.14.54", | ||||
|         "esbuild-linux-64": "0.14.54", | ||||
|         "esbuild-linux-arm": "0.14.54", | ||||
|         "esbuild-linux-arm64": "0.14.54", | ||||
|         "esbuild-linux-mips64le": "0.14.54", | ||||
|         "esbuild-linux-ppc64le": "0.14.54", | ||||
|         "esbuild-linux-riscv64": "0.14.54", | ||||
|         "esbuild-linux-s390x": "0.14.54", | ||||
|         "esbuild-netbsd-64": "0.14.54", | ||||
|         "esbuild-openbsd-64": "0.14.54", | ||||
|         "esbuild-sunos-64": "0.14.54", | ||||
|         "esbuild-windows-32": "0.14.54", | ||||
|         "esbuild-windows-64": "0.14.54", | ||||
|         "esbuild-windows-arm64": "0.14.54" | ||||
|         "@esbuild/android-arm": "0.15.10", | ||||
|         "@esbuild/linux-loong64": "0.15.10", | ||||
|         "esbuild-android-64": "0.15.10", | ||||
|         "esbuild-android-arm64": "0.15.10", | ||||
|         "esbuild-darwin-64": "0.15.10", | ||||
|         "esbuild-darwin-arm64": "0.15.10", | ||||
|         "esbuild-freebsd-64": "0.15.10", | ||||
|         "esbuild-freebsd-arm64": "0.15.10", | ||||
|         "esbuild-linux-32": "0.15.10", | ||||
|         "esbuild-linux-64": "0.15.10", | ||||
|         "esbuild-linux-arm": "0.15.10", | ||||
|         "esbuild-linux-arm64": "0.15.10", | ||||
|         "esbuild-linux-mips64le": "0.15.10", | ||||
|         "esbuild-linux-ppc64le": "0.15.10", | ||||
|         "esbuild-linux-riscv64": "0.15.10", | ||||
|         "esbuild-linux-s390x": "0.15.10", | ||||
|         "esbuild-netbsd-64": "0.15.10", | ||||
|         "esbuild-openbsd-64": "0.15.10", | ||||
|         "esbuild-sunos-64": "0.15.10", | ||||
|         "esbuild-windows-32": "0.15.10", | ||||
|         "esbuild-windows-64": "0.15.10", | ||||
|         "esbuild-windows-arm64": "0.15.10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-android-64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", | ||||
|       "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.10.tgz", | ||||
|       "integrity": "sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
| @@ -504,9 +521,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-android-arm64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", | ||||
|       "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.10.tgz", | ||||
|       "integrity": "sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==", | ||||
|       "cpu": [ | ||||
|         "arm64" | ||||
|       ], | ||||
| @@ -520,9 +537,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-darwin-64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", | ||||
|       "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.10.tgz", | ||||
|       "integrity": "sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
| @@ -536,9 +553,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-darwin-arm64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", | ||||
|       "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.10.tgz", | ||||
|       "integrity": "sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==", | ||||
|       "cpu": [ | ||||
|         "arm64" | ||||
|       ], | ||||
| @@ -552,9 +569,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-freebsd-64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", | ||||
|       "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.10.tgz", | ||||
|       "integrity": "sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
| @@ -568,9 +585,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-freebsd-arm64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", | ||||
|       "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.10.tgz", | ||||
|       "integrity": "sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==", | ||||
|       "cpu": [ | ||||
|         "arm64" | ||||
|       ], | ||||
| @@ -584,9 +601,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-linux-32": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", | ||||
|       "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.10.tgz", | ||||
|       "integrity": "sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==", | ||||
|       "cpu": [ | ||||
|         "ia32" | ||||
|       ], | ||||
| @@ -600,9 +617,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-linux-64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", | ||||
|       "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.10.tgz", | ||||
|       "integrity": "sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
| @@ -616,9 +633,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-linux-arm": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", | ||||
|       "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.10.tgz", | ||||
|       "integrity": "sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==", | ||||
|       "cpu": [ | ||||
|         "arm" | ||||
|       ], | ||||
| @@ -632,9 +649,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-linux-arm64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", | ||||
|       "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.10.tgz", | ||||
|       "integrity": "sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==", | ||||
|       "cpu": [ | ||||
|         "arm64" | ||||
|       ], | ||||
| @@ -648,9 +665,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-linux-mips64le": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", | ||||
|       "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.10.tgz", | ||||
|       "integrity": "sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==", | ||||
|       "cpu": [ | ||||
|         "mips64el" | ||||
|       ], | ||||
| @@ -664,9 +681,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-linux-ppc64le": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", | ||||
|       "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.10.tgz", | ||||
|       "integrity": "sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==", | ||||
|       "cpu": [ | ||||
|         "ppc64" | ||||
|       ], | ||||
| @@ -680,9 +697,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-linux-riscv64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", | ||||
|       "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.10.tgz", | ||||
|       "integrity": "sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==", | ||||
|       "cpu": [ | ||||
|         "riscv64" | ||||
|       ], | ||||
| @@ -696,9 +713,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-linux-s390x": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", | ||||
|       "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.10.tgz", | ||||
|       "integrity": "sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==", | ||||
|       "cpu": [ | ||||
|         "s390x" | ||||
|       ], | ||||
| @@ -712,9 +729,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-netbsd-64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", | ||||
|       "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.10.tgz", | ||||
|       "integrity": "sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
| @@ -728,9 +745,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-openbsd-64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", | ||||
|       "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.10.tgz", | ||||
|       "integrity": "sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
| @@ -744,9 +761,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-sunos-64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", | ||||
|       "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.10.tgz", | ||||
|       "integrity": "sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
| @@ -760,9 +777,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-windows-32": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", | ||||
|       "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.10.tgz", | ||||
|       "integrity": "sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==", | ||||
|       "cpu": [ | ||||
|         "ia32" | ||||
|       ], | ||||
| @@ -776,9 +793,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-windows-64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", | ||||
|       "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.10.tgz", | ||||
|       "integrity": "sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
| @@ -792,9 +809,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/esbuild-windows-arm64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", | ||||
|       "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.10.tgz", | ||||
|       "integrity": "sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==", | ||||
|       "cpu": [ | ||||
|         "arm64" | ||||
|       ], | ||||
| @@ -814,9 +831,9 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/fast-glob": { | ||||
|       "version": "3.2.11", | ||||
|       "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", | ||||
|       "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", | ||||
|       "version": "3.2.12", | ||||
|       "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", | ||||
|       "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "@nodelib/fs.stat": "^2.0.2", | ||||
| @@ -1132,9 +1149,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/node-html-parser": { | ||||
|       "version": "5.4.1", | ||||
|       "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.4.1.tgz", | ||||
|       "integrity": "sha512-xy/O2wOEBJsIRLs4avwa1lVY7tIpXXOoHHUJLa0GvnoPPqMG1hgBVl1tNI3GHOwRktTVZy+Y6rjghk4B9/NLyg==", | ||||
|       "version": "5.4.2", | ||||
|       "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.4.2.tgz", | ||||
|       "integrity": "sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "css-select": "^4.2.1", | ||||
| @@ -1284,9 +1301,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/rollup": { | ||||
|       "version": "2.77.3", | ||||
|       "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz", | ||||
|       "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==", | ||||
|       "version": "2.78.1", | ||||
|       "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz", | ||||
|       "integrity": "sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==", | ||||
|       "dev": true, | ||||
|       "bin": { | ||||
|         "rollup": "dist/bin/rollup" | ||||
| @@ -1374,9 +1391,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/terser": { | ||||
|       "version": "5.14.2", | ||||
|       "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", | ||||
|       "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", | ||||
|       "version": "5.15.0", | ||||
|       "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz", | ||||
|       "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "@jridgewell/source-map": "^0.3.2", | ||||
| @@ -1425,15 +1442,15 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/vite": { | ||||
|       "version": "3.0.9", | ||||
|       "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.9.tgz", | ||||
|       "integrity": "sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw==", | ||||
|       "version": "3.1.4", | ||||
|       "resolved": "https://registry.npmjs.org/vite/-/vite-3.1.4.tgz", | ||||
|       "integrity": "sha512-JoQI08aBjY9lycL7jcEq4p9o1xUjq5aRvdH4KWaXtkSx7e7RpAh9D3IjzDWRD4Fg44LS3oDAIOG/Kq1L+82psA==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "esbuild": "^0.14.47", | ||||
|         "esbuild": "^0.15.6", | ||||
|         "postcss": "^8.4.16", | ||||
|         "resolve": "^1.22.1", | ||||
|         "rollup": ">=2.75.6 <2.77.0 || ~2.77.0" | ||||
|         "rollup": "~2.78.0" | ||||
|       }, | ||||
|       "bin": { | ||||
|         "vite": "bin/vite.js" | ||||
| @@ -1490,10 +1507,17 @@ | ||||
|     } | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "@esbuild/android-arm": { | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.10.tgz", | ||||
|       "integrity": "sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "@esbuild/linux-loong64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", | ||||
|       "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.10.tgz", | ||||
|       "integrity": "sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
| @@ -1583,9 +1607,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "@types/node": { | ||||
|       "version": "18.7.11", | ||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.11.tgz", | ||||
|       "integrity": "sha512-KZhFpSLlmK/sdocfSAjqPETTMd0ug6HIMIAwkwUpU79olnZdQtMxpQP+G1wDzCH7na+FltSIhbaZuKdwZ8RDrw==", | ||||
|       "version": "18.7.23", | ||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.23.tgz", | ||||
|       "integrity": "sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "acorn": { | ||||
| @@ -1793,9 +1817,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "dotenv": { | ||||
|       "version": "16.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", | ||||
|       "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", | ||||
|       "version": "16.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.2.tgz", | ||||
|       "integrity": "sha512-JvpYKUmzQhYoIFgK2MOnF3bciIZoItIIoryihy0rIA+H4Jy0FmgyKYAHCTN98P5ybGSJcIFbh6QKeJdtZd1qhA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "dotenv-expand": { | ||||
| @@ -1820,171 +1844,172 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "esbuild": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", | ||||
|       "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.10.tgz", | ||||
|       "integrity": "sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@esbuild/linux-loong64": "0.14.54", | ||||
|         "esbuild-android-64": "0.14.54", | ||||
|         "esbuild-android-arm64": "0.14.54", | ||||
|         "esbuild-darwin-64": "0.14.54", | ||||
|         "esbuild-darwin-arm64": "0.14.54", | ||||
|         "esbuild-freebsd-64": "0.14.54", | ||||
|         "esbuild-freebsd-arm64": "0.14.54", | ||||
|         "esbuild-linux-32": "0.14.54", | ||||
|         "esbuild-linux-64": "0.14.54", | ||||
|         "esbuild-linux-arm": "0.14.54", | ||||
|         "esbuild-linux-arm64": "0.14.54", | ||||
|         "esbuild-linux-mips64le": "0.14.54", | ||||
|         "esbuild-linux-ppc64le": "0.14.54", | ||||
|         "esbuild-linux-riscv64": "0.14.54", | ||||
|         "esbuild-linux-s390x": "0.14.54", | ||||
|         "esbuild-netbsd-64": "0.14.54", | ||||
|         "esbuild-openbsd-64": "0.14.54", | ||||
|         "esbuild-sunos-64": "0.14.54", | ||||
|         "esbuild-windows-32": "0.14.54", | ||||
|         "esbuild-windows-64": "0.14.54", | ||||
|         "esbuild-windows-arm64": "0.14.54" | ||||
|         "@esbuild/android-arm": "0.15.10", | ||||
|         "@esbuild/linux-loong64": "0.15.10", | ||||
|         "esbuild-android-64": "0.15.10", | ||||
|         "esbuild-android-arm64": "0.15.10", | ||||
|         "esbuild-darwin-64": "0.15.10", | ||||
|         "esbuild-darwin-arm64": "0.15.10", | ||||
|         "esbuild-freebsd-64": "0.15.10", | ||||
|         "esbuild-freebsd-arm64": "0.15.10", | ||||
|         "esbuild-linux-32": "0.15.10", | ||||
|         "esbuild-linux-64": "0.15.10", | ||||
|         "esbuild-linux-arm": "0.15.10", | ||||
|         "esbuild-linux-arm64": "0.15.10", | ||||
|         "esbuild-linux-mips64le": "0.15.10", | ||||
|         "esbuild-linux-ppc64le": "0.15.10", | ||||
|         "esbuild-linux-riscv64": "0.15.10", | ||||
|         "esbuild-linux-s390x": "0.15.10", | ||||
|         "esbuild-netbsd-64": "0.15.10", | ||||
|         "esbuild-openbsd-64": "0.15.10", | ||||
|         "esbuild-sunos-64": "0.15.10", | ||||
|         "esbuild-windows-32": "0.15.10", | ||||
|         "esbuild-windows-64": "0.15.10", | ||||
|         "esbuild-windows-arm64": "0.15.10" | ||||
|       } | ||||
|     }, | ||||
|     "esbuild-android-64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", | ||||
|       "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.10.tgz", | ||||
|       "integrity": "sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-android-arm64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", | ||||
|       "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.10.tgz", | ||||
|       "integrity": "sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-darwin-64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", | ||||
|       "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.10.tgz", | ||||
|       "integrity": "sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-darwin-arm64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", | ||||
|       "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.10.tgz", | ||||
|       "integrity": "sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-freebsd-64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", | ||||
|       "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.10.tgz", | ||||
|       "integrity": "sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-freebsd-arm64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", | ||||
|       "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.10.tgz", | ||||
|       "integrity": "sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-linux-32": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", | ||||
|       "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.10.tgz", | ||||
|       "integrity": "sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-linux-64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", | ||||
|       "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.10.tgz", | ||||
|       "integrity": "sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-linux-arm": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", | ||||
|       "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.10.tgz", | ||||
|       "integrity": "sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-linux-arm64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", | ||||
|       "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.10.tgz", | ||||
|       "integrity": "sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-linux-mips64le": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", | ||||
|       "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.10.tgz", | ||||
|       "integrity": "sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-linux-ppc64le": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", | ||||
|       "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.10.tgz", | ||||
|       "integrity": "sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-linux-riscv64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", | ||||
|       "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.10.tgz", | ||||
|       "integrity": "sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-linux-s390x": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", | ||||
|       "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.10.tgz", | ||||
|       "integrity": "sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-netbsd-64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", | ||||
|       "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.10.tgz", | ||||
|       "integrity": "sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-openbsd-64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", | ||||
|       "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.10.tgz", | ||||
|       "integrity": "sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-sunos-64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", | ||||
|       "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.10.tgz", | ||||
|       "integrity": "sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-windows-32": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", | ||||
|       "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.10.tgz", | ||||
|       "integrity": "sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-windows-64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", | ||||
|       "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.10.tgz", | ||||
|       "integrity": "sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "esbuild-windows-arm64": { | ||||
|       "version": "0.14.54", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", | ||||
|       "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", | ||||
|       "version": "0.15.10", | ||||
|       "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.10.tgz", | ||||
|       "integrity": "sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
| @@ -1995,9 +2020,9 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "fast-glob": { | ||||
|       "version": "3.2.11", | ||||
|       "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", | ||||
|       "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", | ||||
|       "version": "3.2.12", | ||||
|       "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", | ||||
|       "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@nodelib/fs.stat": "^2.0.2", | ||||
| @@ -2237,9 +2262,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node-html-parser": { | ||||
|       "version": "5.4.1", | ||||
|       "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.4.1.tgz", | ||||
|       "integrity": "sha512-xy/O2wOEBJsIRLs4avwa1lVY7tIpXXOoHHUJLa0GvnoPPqMG1hgBVl1tNI3GHOwRktTVZy+Y6rjghk4B9/NLyg==", | ||||
|       "version": "5.4.2", | ||||
|       "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.4.2.tgz", | ||||
|       "integrity": "sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "css-select": "^4.2.1", | ||||
| @@ -2340,9 +2365,9 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "rollup": { | ||||
|       "version": "2.77.3", | ||||
|       "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz", | ||||
|       "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==", | ||||
|       "version": "2.78.1", | ||||
|       "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz", | ||||
|       "integrity": "sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "fsevents": "~2.3.2" | ||||
| @@ -2395,9 +2420,9 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "terser": { | ||||
|       "version": "5.14.2", | ||||
|       "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", | ||||
|       "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", | ||||
|       "version": "5.15.0", | ||||
|       "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz", | ||||
|       "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@jridgewell/source-map": "^0.3.2", | ||||
| @@ -2436,16 +2461,16 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "vite": { | ||||
|       "version": "3.0.9", | ||||
|       "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.9.tgz", | ||||
|       "integrity": "sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw==", | ||||
|       "version": "3.1.4", | ||||
|       "resolved": "https://registry.npmjs.org/vite/-/vite-3.1.4.tgz", | ||||
|       "integrity": "sha512-JoQI08aBjY9lycL7jcEq4p9o1xUjq5aRvdH4KWaXtkSx7e7RpAh9D3IjzDWRD4Fg44LS3oDAIOG/Kq1L+82psA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "esbuild": "^0.14.47", | ||||
|         "esbuild": "^0.15.6", | ||||
|         "fsevents": "~2.3.2", | ||||
|         "postcss": "^8.4.16", | ||||
|         "resolve": "^1.22.1", | ||||
|         "rollup": ">=2.75.6 <2.77.0 || ~2.77.0" | ||||
|         "rollup": "~2.78.0" | ||||
|       } | ||||
|     }, | ||||
|     "vite-plugin-html": { | ||||
|   | ||||
| @@ -12,9 +12,9 @@ | ||||
|     "modern-normalize": "1.1.0" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@types/node": "18.7.11", | ||||
|     "@types/node": "18.7.23", | ||||
|     "date-and-time": "2.4.1", | ||||
|     "vite": "3.0.9", | ||||
|     "vite": "3.1.4", | ||||
|     "vite-plugin-html": "3.2.0" | ||||
|   } | ||||
| } | ||||
|   | ||||
							
								
								
									
										5
									
								
								next-env.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								next-env.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +0,0 @@ | ||||
| /// <reference types="next" /> | ||||
| /// <reference types="next/image-types/global" /> | ||||
|  | ||||
| // NOTE: This file should not be edited | ||||
| // see https://nextjs.org/docs/basic-features/typescript for more information. | ||||
							
								
								
									
										14054
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										14054
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										40
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								package.json
									
									
									
									
									
								
							| @@ -33,49 +33,49 @@ | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "@fontsource/montserrat": "4.5.12", | ||||
|     "@fortawesome/fontawesome-svg-core": "6.1.2", | ||||
|     "@fortawesome/free-brands-svg-icons": "6.1.2", | ||||
|     "@fortawesome/free-solid-svg-icons": "6.1.2", | ||||
|     "@fortawesome/fontawesome-svg-core": "6.2.0", | ||||
|     "@fortawesome/free-brands-svg-icons": "6.2.0", | ||||
|     "@fortawesome/free-solid-svg-icons": "6.2.0", | ||||
|     "@fortawesome/react-fontawesome": "0.2.0", | ||||
|     "@giscus/react": "2.2.0", | ||||
|     "clsx": "1.2.1", | ||||
|     "date-and-time": "2.4.1", | ||||
|     "gray-matter": "4.0.3", | ||||
|     "html-react-parser": "3.0.4", | ||||
|     "next": "12.2.5", | ||||
|     "next": "12.3.1", | ||||
|     "next-mdx-remote": "4.1.0", | ||||
|     "next-pwa": "5.6.0", | ||||
|     "next-themes": "0.2.0", | ||||
|     "next-translate": "1.5.0", | ||||
|     "next-themes": "0.2.1", | ||||
|     "next-translate": "1.6.0", | ||||
|     "react": "18.2.0", | ||||
|     "react-dom": "18.2.0", | ||||
|     "read-pkg": "7.1.0", | ||||
|     "rehype-raw": "6.1.1", | ||||
|     "rehype-slug": "5.0.1", | ||||
|     "remark-gfm": "3.0.1", | ||||
|     "sharp": "0.30.7", | ||||
|     "sharp": "0.31.1", | ||||
|     "shiki": "0.11.1", | ||||
|     "unified": "10.1.2", | ||||
|     "unist-util-visit": "4.1.1", | ||||
|     "universal-cookie": "4.0.4" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@commitlint/cli": "17.0.3", | ||||
|     "@commitlint/config-conventional": "17.0.3", | ||||
|     "@commitlint/cli": "17.1.2", | ||||
|     "@commitlint/config-conventional": "17.1.0", | ||||
|     "@lhci/cli": "0.9.0", | ||||
|     "@saithodev/semantic-release-backmerge": "2.1.2", | ||||
|     "@semantic-release/git": "10.0.1", | ||||
|     "@tailwindcss/typography": "0.5.4", | ||||
|     "@types/node": "18.7.13", | ||||
|     "@types/react": "18.0.17", | ||||
|     "@tailwindcss/typography": "0.5.7", | ||||
|     "@types/node": "18.7.23", | ||||
|     "@types/react": "18.0.21", | ||||
|     "@types/unist": "2.0.6", | ||||
|     "@typescript-eslint/eslint-plugin": "5.35.1", | ||||
|     "autoprefixer": "10.4.8", | ||||
|     "cypress": "10.6.0", | ||||
|     "@typescript-eslint/eslint-plugin": "5.38.1", | ||||
|     "autoprefixer": "10.4.12", | ||||
|     "cypress": "10.9.0", | ||||
|     "editorconfig-checker": "4.0.2", | ||||
|     "eslint": "8.23.0", | ||||
|     "eslint-config-conventions": "3.0.0", | ||||
|     "eslint-config-next": "12.2.5", | ||||
|     "eslint": "8.24.0", | ||||
|     "eslint-config-conventions": "4.0.1", | ||||
|     "eslint-config-next": "12.3.1", | ||||
|     "eslint-config-prettier": "8.5.0", | ||||
|     "eslint-plugin-import": "2.26.0", | ||||
|     "eslint-plugin-prettier": "4.2.1", | ||||
| @@ -92,7 +92,7 @@ | ||||
|     "semantic-release": "19.0.5", | ||||
|     "start-server-and-test": "1.14.0", | ||||
|     "tailwindcss": "3.1.8", | ||||
|     "typescript": "4.8.2", | ||||
|     "vercel": "28.2.0" | ||||
|     "typescript": "4.8.4", | ||||
|     "vercel": "28.4.5" | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -1,10 +1,11 @@ | ||||
| import { GetStaticProps, NextPage } from 'next' | ||||
| import type { GetStaticProps, NextPage } from 'next' | ||||
| import useTranslation from 'next-translate/useTranslation' | ||||
|  | ||||
| import { ErrorPage } from 'components/ErrorPage' | ||||
| import { Head } from 'components/Head' | ||||
| import { Header } from 'components/Header' | ||||
| import { Footer, FooterProps } from 'components/Footer' | ||||
| import type { FooterProps } from 'components/Footer' | ||||
| import { Footer } from 'components/Footer' | ||||
|  | ||||
| interface Error404Props extends FooterProps {} | ||||
|  | ||||
|   | ||||
| @@ -1,10 +1,11 @@ | ||||
| import { GetStaticProps, NextPage } from 'next' | ||||
| import type { GetStaticProps, NextPage } from 'next' | ||||
| import useTranslation from 'next-translate/useTranslation' | ||||
|  | ||||
| import { ErrorPage } from 'components/ErrorPage' | ||||
| import { Head } from 'components/Head' | ||||
| import { Header } from 'components/Header' | ||||
| import { Footer, FooterProps } from 'components/Footer' | ||||
| import type { FooterProps } from 'components/Footer' | ||||
| import { Footer } from 'components/Footer' | ||||
|  | ||||
| interface Error500Props extends FooterProps {} | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| import { useEffect } from 'react' | ||||
| import { AppProps } from 'next/app' | ||||
| import type { AppType } from 'next/app' | ||||
| import { ThemeProvider } from 'next-themes' | ||||
| import useTranslation from 'next-translate/useTranslation' | ||||
| import UniversalCookie from 'universal-cookie' | ||||
| @@ -13,7 +13,7 @@ const universalCookie = new UniversalCookie() | ||||
| /** how long in seconds, until the cookie expires (10 years) */ | ||||
| const COOKIE_MAX_AGE = 10 * 365.25 * 24 * 60 * 60 | ||||
|  | ||||
| const Application = ({ Component, pageProps }: AppProps): JSX.Element => { | ||||
| const Application: AppType = ({ Component, pageProps }) => { | ||||
|   const { lang } = useTranslation() | ||||
|  | ||||
|   useEffect(() => { | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| import { GetStaticProps, GetStaticPaths, NextPage } from 'next' | ||||
| import type { GetStaticProps, GetStaticPaths, NextPage } from 'next' | ||||
| import { MDXRemote } from 'next-mdx-remote' | ||||
| import date from 'date-and-time' | ||||
| import Giscus from '@giscus/react' | ||||
| @@ -6,7 +6,8 @@ import { useTheme } from 'next-themes' | ||||
|  | ||||
| import { Head } from 'components/Head' | ||||
| import { Header } from 'components/Header' | ||||
| import { Footer, FooterProps } from 'components/Footer' | ||||
| import type { FooterProps } from 'components/Footer' | ||||
| import { Footer } from 'components/Footer' | ||||
| import type { Post } from 'utils/blog' | ||||
|  | ||||
| interface BlogPostPageProps extends FooterProps { | ||||
|   | ||||
| @@ -1,10 +1,11 @@ | ||||
| import { GetStaticProps, NextPage } from 'next' | ||||
| import type { GetStaticProps, NextPage } from 'next' | ||||
| import Link from 'next/link' | ||||
| import date from 'date-and-time' | ||||
|  | ||||
| import { Head } from 'components/Head' | ||||
| import { Header } from 'components/Header' | ||||
| import { Footer, FooterProps } from 'components/Footer' | ||||
| import type { FooterProps } from 'components/Footer' | ||||
| import { Footer } from 'components/Footer' | ||||
| import { ShadowContainer } from 'components/design/ShadowContainer' | ||||
| import type { PostMetadata } from 'utils/blog' | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| import { GetStaticProps, NextPage } from 'next' | ||||
| import type { GetStaticProps, NextPage } from 'next' | ||||
| import useTranslation from 'next-translate/useTranslation' | ||||
|  | ||||
| import { RevealFade } from 'components/design/RevealFade' | ||||
| @@ -11,7 +11,8 @@ import { SocialMediaList } from 'components/Profile/SocialMediaList' | ||||
| import { Skills } from 'components/Skills' | ||||
| import { OpenSource } from 'components/OpenSource' | ||||
| import { Header } from 'components/Header' | ||||
| import { Footer, FooterProps } from 'components/Footer' | ||||
| import type { FooterProps } from 'components/Footer' | ||||
| import { Footer } from 'components/Footer' | ||||
|  | ||||
| interface HomeProps extends FooterProps {} | ||||
|  | ||||
|   | ||||
							
								
								
									
										193
									
								
								posts/git-ultimate-guide.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										193
									
								
								posts/git-ultimate-guide.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,193 @@ | ||||
| --- | ||||
| title: '🗓️ Git version control: Ultimate Guide' | ||||
| description: 'What is `git`, what are the most used commands, best practices, and tips and tricks. The Ultimate guide to master `git` in your daily workflow.' | ||||
| isPublished: true | ||||
| publishedOn: '2022-09-04T14:33:07.465Z' | ||||
| --- | ||||
|  | ||||
| Hello! 👋 | ||||
|  | ||||
| Welcome to the Ultimate Guide to master `git` in your daily workflow, we will see what are the most used commands, what are the best practices, and tips and tricks. | ||||
|  | ||||
| **Note:** Sources used to write this blog post are available at the [end of this post](#sources). | ||||
|  | ||||
| ## Introduction | ||||
|  | ||||
| **Git** is a free and open source distributed **version control system** for keeping track of changes across a set of files. | ||||
|  | ||||
| Git was originally authored by [Linus Torvalds](https://en.wikipedia.org/wiki/Linus_Torvalds) in 2005 for development of the [Linux kernel](https://kernel.org/). | ||||
|  | ||||
| Git allows: | ||||
|  | ||||
| - to be able to work with several people on the same codebase. | ||||
| - track changes to know who did what and when. | ||||
| - revert changes. | ||||
|  | ||||
| Git is **decentralized**, which means that every developer has a full copy of the repository and the complete history of the project. | ||||
|  | ||||
| ## Get started with `git` and `.gitconfig` config file | ||||
|  | ||||
| The first thing you should do when you install Git is to set your user name and email address. | ||||
|  | ||||
| ```sh | ||||
| git config --global user.name "Username" | ||||
| git config --global user.email "email@example.com" | ||||
| ``` | ||||
|  | ||||
| These configurations are stored in the `.gitconfig` file in your home directory (e.g: `~/.gitconfig`) with this format: | ||||
|  | ||||
| ```sh | ||||
| [user] | ||||
|   name = Username | ||||
|   email = email@example.com | ||||
| ``` | ||||
|  | ||||
| You can find more information and useful `git` configurations in the official documentation: [git-scm.com/docs/git-config](https://git-scm.com/docs/git-config). | ||||
|  | ||||
| ## How `git` works? | ||||
|  | ||||
| Each `git` project is called a **repository** (or **repo** for short) and it contains all the files and folders for a project, as well as each file's revision history (**commits**) stored in the `.git` folder. | ||||
|  | ||||
| The history of a repository is represented by a graph. | ||||
|  | ||||
| Each node is called commit and contains: | ||||
|  | ||||
| - an instantaneous view (snapshot) of the state of the repository at a specific moment | ||||
| - metadata: message, author, creation date, etc. | ||||
|  | ||||
| ## Commands cheatsheet | ||||
|  | ||||
| ```sh | ||||
| # Initialize a new git repository | ||||
| git init | ||||
|  | ||||
| # Clone a repository | ||||
| git clone <url> | ||||
|  | ||||
| # Add all the files to staging area | ||||
| git add . | ||||
|  | ||||
| # Add specific file to staging area | ||||
| git add <file> | ||||
|  | ||||
| # Commit changes | ||||
| git commit -m "chore: initial commit" | ||||
|  | ||||
| # Add remote repository | ||||
| git remote add origin <url> | ||||
|  | ||||
| # Add forked repository | ||||
| git remote add upstream <url> | ||||
|  | ||||
| # Sync forked repository | ||||
| git fetch upstream | ||||
| git merge upstream/<branch> | ||||
|  | ||||
| # Push changes to remote repository | ||||
| git push | ||||
|  | ||||
| # Pull changes from remote repository | ||||
| git pull | ||||
|  | ||||
| # Show the status of the working tree | ||||
| git status | ||||
|  | ||||
| # Show the commit history | ||||
| git log | ||||
|  | ||||
| # Create a new branch | ||||
| git checkout -b <branch> | ||||
|  | ||||
| # Switch to a branch (or tag or commit) | ||||
| git checkout <branch> | ||||
|  | ||||
| # Merge a branch into the current branch | ||||
| git merge <branch> | ||||
|  | ||||
| # Delete a branch | ||||
| git branch -d <branch> | ||||
| git push origin --delete <branch> | ||||
|  | ||||
| # Fetch branches from remote repository and prune | ||||
| git fetch --prune | ||||
|  | ||||
| # Revert a commit | ||||
| git revert <commit> | ||||
|  | ||||
| # Change several past commits (interactive rebase) | ||||
| # HEAD points to the current consulted commit. | ||||
| git rebase -i HEAD~<number-of-commits> | ||||
|  | ||||
| # Reset the current branch, delete all commits since <branch> (without removing the changes) | ||||
| git reset --soft <branch> | ||||
|  | ||||
| # Apply the changes introduced by some existing commits | ||||
| git cherry-pick <commit> | ||||
| ``` | ||||
|  | ||||
| ## `.gitignore` file | ||||
|  | ||||
| The `.gitignore` file is a text file that tells `git` which files (or patterns) it should ignore. | ||||
|  | ||||
| The `.gitignore` file is usually placed in the root directory of the repository. | ||||
|  | ||||
| We usually ignore files that are generated by the build process or files that contain sensitive information. | ||||
|  | ||||
| Example of `.gitignore` file: | ||||
|  | ||||
| ```sh | ||||
| .env | ||||
| build | ||||
| *.exe | ||||
| ``` | ||||
|  | ||||
| ## `.gitkeep` file | ||||
|  | ||||
| The `.gitkeep` file is a file that is used to keep an empty directory in a Git repository. | ||||
|  | ||||
| This is useful when you want to keep an empty directory in your repository but you don't want to commit any file inside it. | ||||
|  | ||||
| ## Git remote repositories (GitHub/GitLab) | ||||
|  | ||||
| Explain what are the differences, how it works, + basic vocabulary... | ||||
|  | ||||
| ### SSH vs HTTPS authentication | ||||
|  | ||||
| Explain the differences + quickly setup a SSH key... | ||||
|  | ||||
| ### Sign `git` commits with `gpg` | ||||
|  | ||||
| Explain, how and why to sign `git` commits... | ||||
|  | ||||
| ### Continous Integration/Continuous Delivery | ||||
|  | ||||
| GitHub Actions, Vercel, why is it so important... | ||||
|  | ||||
| ## Best practices and `git` workflows | ||||
|  | ||||
| ### Commit messages and semver | ||||
|  | ||||
| ### GitFlow | ||||
|  | ||||
| ... | ||||
|  | ||||
| ### GitHub Flow | ||||
|  | ||||
| ... | ||||
|  | ||||
| ### Trunk-based | ||||
|  | ||||
| ... | ||||
|  | ||||
| ## Conclusion | ||||
|  | ||||
| `git` is the tool that every programmer should know to do collaborative work and keeping track of changes across a set of files. | ||||
|  | ||||
| ## Sources | ||||
|  | ||||
| - [Git official website and documentation](https://git-scm.com/) | ||||
| - [Git Explained in 100 Seconds](https://www.youtube.com/watch?v=hwP7WQkmECE) | ||||
| - [Understand Git in 7 minutes](https://www.jesuisundev.com/en/understand-git-in-7-minutes/) | ||||
| - [How (and why) to sign Git commits | With Blue Ink](https://withblue.ink/2020/05/17/how-and-why-to-sign-git-commits.html?utm_source=tiktok&utm_campaign=codetok-sign) | ||||
| - [Creator of Gitflow blog post](https://nvie.com/posts/a-successful-git-branching-model/) | ||||
| - [What Are the Best Git Branching Strategies](https://www.flagship.io/git-branching-strategies/) | ||||
| @@ -53,8 +53,12 @@ export const getPosts = async (): Promise<PostMetadata[]> => { | ||||
|     }) | ||||
|   ) | ||||
|   const postsWithTimeSorted = postsWithTime | ||||
|     .filter((post) => post.frontmatter.isPublished) | ||||
|     .sort((a, b) => b.time - a.time) | ||||
|     .filter((post) => { | ||||
|       return post.frontmatter.isPublished | ||||
|     }) | ||||
|     .sort((a, b) => { | ||||
|       return b.time - a.time | ||||
|     }) | ||||
|   return postsWithTimeSorted | ||||
| } | ||||
|  | ||||
| @@ -62,7 +66,9 @@ export const getPostBySlug = async ( | ||||
|   slug?: string | string[] | ||||
| ): Promise<Post | undefined> => { | ||||
|   const posts = await getPosts() | ||||
|   const post = posts.find((post) => post.slug === slug) | ||||
|   const post = posts.find((post) => { | ||||
|     return post.slug === slug | ||||
|   }) | ||||
|   if (post == null) { | ||||
|     return undefined | ||||
|   } | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| import { Plugin, Transformer } from 'unified' | ||||
| import { Literal } from 'unist' | ||||
| import type { Plugin, Transformer } from 'unified' | ||||
| import type { Literal } from 'unist' | ||||
| import { visit } from 'unist-util-visit' | ||||
| import { Highlighter } from 'shiki' | ||||
| import type { Highlighter } from 'shiki' | ||||
|  | ||||
| export interface RemarkSyntaxHighlightingPluginOptions { | ||||
|   highlighter: Highlighter | ||||
|   | ||||
		Reference in New Issue
	
	Block a user