A lightweight JavaScript library for validating and generating Swiss National Identification Numbers with:
- Zero dependencies
- Modern ES Module support
- Full test coverage
- TypeScript-friendly JSDoc annotations
- Browser-ready UMD bundle
# NPM
npm install swiss-ssn
# Yarn
yarn add swiss-ssn
# pnpm
pnpm add swiss-ssn
import SwissSSN from 'swiss-ssn';
// Validate a SSN
const isValid = SwissSSN.validateSSN('756.9217.0769.85');
console.log(isValid); // true
// Generate a random valid SSN
const newSSN = SwissSSN.generateSSN();
console.log(newSSN); // e.g., '756.1234.5678.90'
<!-- Use the minified UMD bundle -->
<script src="https://unpkg.com/swiss-ssn/dist/swiss-ssn.min.js"></script>
<script>
// The SwissSSN class is available globally
const isValid = SwissSSN.validateSSN('756.9217.0769.85');
console.log(isValid); // true
// Generate a random SSN
const newSSN = SwissSSN.generateSSN();
console.log(newSSN);
</script>
<!-- Use as ES Module in modern browsers -->
<script type="module">
import SwissSSN from 'https://unpkg.com/swiss-ssn/dist/swiss-ssn.js';
const isValid = SwissSSN.validateSSN('756.9217.0769.85');
console.log(isValid);
</script>
Validates a Swiss SSN number.
// Valid SSN examples
SwissSSN.validateSSN('756.9217.0769.85'); // true
SwissSSN.validateSSN('7569217076985'); // true (without dots)
// Invalid SSN examples
SwissSSN.validateSSN('756.9217.0769.84'); // false (wrong check digit)
SwissSSN.validateSSN('756.9217.076'); // false (incomplete)
SwissSSN.validateSSN(''); // false
Generates a random valid Swiss SSN.
const ssn = SwissSSN.generateSSN();
// Returns a formatted SSN like '756.9217.0769.85'
# Install dependencies
npm install
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Build distribution files
npm run dist
# Lint code
npm run lint
- Fixed npm package configuration to include dist files
- Added explicit files field in package.json
- Updated build process to ensure proper file inclusion
- Fixed unpkg CDN availability
- Fixed version number in package.json
- Fixed jest configuration
- Fixed browser compatibility issues with UMD bundle
- Added proper global exports for browser environments
- Improved documentation for browser usage
- Added ES Module example for modern browsers
- Updated build configuration for better browser support
- Modernized codebase with ES Modules
- Added Jest for testing
- Improved test coverage
- Added ESLint with modern config
- Updated all dependencies
- Added TypeScript-friendly JSDoc annotations
- Dependencies upgraded for security fixes
- Initial release
Contributions are welcome! Please feel free to submit a Pull Request.