Thank you for your interest in contributing to WebCrypt! This document provides guidelines for contributing to WebCrypt, maintained by PuterVision LLC.
# Clone the repository
git clone https://github.com/putervision/webcrypt.git
cd webcrypt
# Install dependencies
npm install
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Check formatting
npm run format:check
# Fix formatting
npm run format
# Build for distribution
npm run buildwebcrypt/
├── src/
│ ├── index.js # Entry point (re-exports all modules)
│ ├── WebCrypt.js # Symmetric encryption (AES-256-GCM)
│ ├── WebCrypt.d.ts # TypeScript definitions
│ ├── WebCryptAsym.js # Asymmetric encryption (RSA-4096 hybrid)
│ ├── WebCryptAsym.d.ts # TypeScript definitions
│ ├── WebCryptPQC.js # Post-quantum cryptography (placeholder)
│ ├── WebCryptPQC.d.ts # TypeScript definitions
│ └── TimingSafeHelper.js # Timing attack protection utilities
├── __tests__/ # Jest test suites
├── examples/ # HTML example files
├── SECURITY_FIXES.md # Security hardening changelog
├── SECURITY.md # Vulnerability reporting policy
└── CHANGELOG.md # Version history
- Formatter: Prettier is configured in
package.json— runnpm run formatbefore committing - No dependencies: WebCrypt is zero-dependency by design. Do not add runtime dependencies.
- Comments: Preserve existing comments. Add JSDoc for all public methods.
- All tests use Jest with Node.js (ESM mode)
- Run the full suite:
npm test - Tests must pass before submitting a PR
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes
- Run
npm testandnpm run format:check - Commit with clear, descriptive messages
- Open a PR against
main
- Do NOT open public issues for security vulnerabilities — see SECURITY.md
- All crypto-related changes require careful review
- Update
.d.tstype definitions when changing public API signatures - Contributions are accepted subject to the PuterVision LLC MIT License and Limitation of Liability disclaimer.
By contributing, you agree that your contributions will be licensed under the MIT License by PuterVision LLC.