Thank you for considering contributing to CryptoBox! 🎉
This project adheres to the Code of Conduct.
Use the Bug Report template and include:
- Steps to reproduce
- Expected vs actual behavior
- Environment (OS, Node version, browser)
Use the Feature Request template and describe:
- Use case and motivation
- Proposed solution
DO NOT open public issues. Report privately:
- GitHub Security Advisory: https://github.com/adelzemzemi/cryptobox/security/advisories/new
- Email: hello@adelzemzemi.dev
See SECURITY.md for details.
git clone https://github.com/adelzemzemi/cryptobox.git
cd cryptobox
npm install
npm run build
npm test
npm run lint- Fork and create a branch:
git checkout -b feature/my-feature - Make changes and add tests
- Run:
npm test && npm run lint - Commit with clear messages (see Conventional Commits)
- Push and open a Pull Request
type(scope): subject
Types: feat, fix, docs, refactor, test, security
Examples:
feat(crypto): add ChaCha20 encryption
fix(storage): resolve memory leak
security(crypto): increase PBKDF2 iterations
- TypeScript strict mode
- No
anytypes without justification - JSDoc for public APIs
- Named constants (no magic numbers)
- Validate all inputs
- Use
timingSafeEqualfor comparisons - Generic error messages
- No information leakage
- Unit tests required for new features
- Minimum 80% coverage
- Run
npm testbefore submitting
- Run
npm run format(Prettier) - Run
npm run lint(ESLint)
Thank you for contributing! 🚀