[optional body]
A new feature A bug fix Documentation only changes Changes that do not affect the meaning of the code (formatting, missing semi-colons, etc.) A code change that neither fixes a bug nor adds a feature A code change that improves performance Adding missing tests or correcting existing tests Changes that affect the build system or external dependencies Changes to CI configuration files and scripts Initial project setup, tooling, configs, dependencies, or changes that don't modify src or test files Reverts a previous commit 1. Write all commit messages strictly in English. 2. Do NOT use scopes or parentheses (always use " : "). 3. Use the imperative mood in the subject line ("add" not "added" or "adds") 4. Do not capitalize the first letter of the subject line 5. Do not end the subject line with a period 6. Limit the subject line to 50 characters when possible, max 72 7. Separate subject from body with a blank line (if body is present) 7. Do NOT generate a commit body, file list, or bullet points for initial setup, chore, configuration, or dependency commits. Keep them strictly as a SINGLE line. 8. Only generate an optional body for complex features or breaking changes; never list generated/modified files in the body. 9. Use the body to explain what and why, not how 10. Wrap the body at 72 characters Indicate breaking changes by: - Adding "!" after the type: feat!: remove deprecated API - Adding a BREAKING CHANGE: footer in the body ✨ feat: add OAuth2 login support ✨ feat: implement guest checkout flow ✨ feat: add dark mode toggle to settings 🐛 fix: resolve null pointer exception in user service 🐛 fix: correct button alignment on mobile viewport 🐛 fix: prevent duplicate form submissions 📝 docs: update installation instructions 📝 docs: add endpoint usage examples 📝 docs: add contributing guidelines 🎨 style: format code with prettier 🎨 style: fix indentation in Button component 🎨 style: remove trailing whitespace ♻️ refactor: extract validation logic to middleware ♻️ refactor: simplify conditional rendering in Dashboard ♻️ refactor: rename user table columns for clarity ⚡ perf: implement lazy loading for gallery ⚡ perf: add database query caching ⚡ perf: reduce bundle size by code splitting 🧪 test: add unit tests for login validation 🧪 test: increase coverage for utils module 🧪 test: add checkout flow integration tests 📦 build: upgrade React to v19 📦 build: configure webpack for production optimization 📦 build: update base image to node 22 🤖 ci: add GitHub Actions workflow for testing 🤖 ci: configure automatic staging deployments 🤖 ci: add code coverage reporting to pipeline 🔧 chore: initialize next.js project with tailwind css 🔧 chore: set up initial project structure and tooling 🔧 chore: update .gitignore patterns 🔧 chore: bump minor dependency versions 🔧 chore: remove deprecated config files ⏪ revert: revert "feat: add OAuth2 login support" ⏪ revert: undo breaking change to user endpoint 💥 feat!: change response format for user endpointsBREAKING CHANGE: User endpoint now returns data wrapped in "data" property
refactor!: drop support for Node.js 16