{"id":50536161,"url":"https://github.com/nuwax-io/nuwault-core","last_synced_at":"2026-06-03T17:00:30.017Z","repository":{"id":303309953,"uuid":"1015049694","full_name":"nuwax-io/nuwault-core","owner":"nuwax-io","description":"Generate consistent, secure passwords from keywords. TypeScript-based, with smart entropy controls.","archived":false,"fork":false,"pushed_at":"2025-12-13T00:43:38.000Z","size":155,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-14T14:20:38.468Z","etag":null,"topics":["client-side-encryption","cryptography","deterministic","encryption","hash","password","password-generator","privacy-first","security-tools","web-crypto-api"],"latest_commit_sha":null,"homepage":"https://nuwault.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nuwax-io.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-06T23:17:15.000Z","updated_at":"2025-12-13T00:43:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"43ec10cf-2f38-45fd-bde9-d5e94d7b49ef","html_url":"https://github.com/nuwax-io/nuwault-core","commit_stats":null,"previous_names":["nuwa-x/nuwault-core","nuwax-io/nuwault-core"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/nuwax-io/nuwault-core","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuwax-io%2Fnuwault-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuwax-io%2Fnuwault-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuwax-io%2Fnuwault-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuwax-io%2Fnuwault-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nuwax-io","download_url":"https://codeload.github.com/nuwax-io/nuwault-core/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuwax-io%2Fnuwault-core/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33874679,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["client-side-encryption","cryptography","deterministic","encryption","hash","password","password-generator","privacy-first","security-tools","web-crypto-api"],"created_at":"2026-06-03T17:00:22.103Z","updated_at":"2026-06-03T17:00:29.992Z","avatar_url":"https://github.com/nuwax-io.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![TypeScript](https://img.shields.io/badge/TypeScript-6.0.3-blue.svg?style=flat-square\u0026logo=typescript)](https://www.typescriptlang.org/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)\n[![Node.js](https://img.shields.io/badge/node-%3E%3D22.0.0-brightgreen?style=flat-square\u0026logo=node.js)](https://nodejs.org/)\n[![Test Coverage](https://img.shields.io/badge/coverage-vitest-green.svg?style=flat-square\u0026logo=vitest)](https://vitest.dev/)\n[![Security](https://img.shields.io/badge/Security-SHA--512-red.svg?style=flat-square\u0026logo=security)](SECURITY.md)\n\n**Nuwault Core** - Enterprise-grade deterministic password generation library built with TypeScript. Transform your memorable keywords into cryptographically secure passwords with guaranteed consistency across all platforms and devices. Featuring advanced character diversity algorithms, repetition control, and balanced distribution for maximum security without compromising usability.\n\n### Key Highlights\n- **Enterprise Security**: SHA-512 cryptographic hashing with 1000+ configurable iterations, unique salt per iteration, and optional master salt support\n- **Deterministic Generation**: Same inputs always produce identical passwords across all platforms (Node.js, browsers, different OS) with test vector validation\n- **Privacy-First**: Zero data collection, works completely offline, no external dependencies, uses native Web Crypto API\n- **Performance Optimized**: Configurable hash iterations (fast: 100, secure: 1000, maximum: 5000+) for different security needs\n- **Advanced Character Analytics**: Built-in password strength analysis, entropy calculation, character diversity metrics, repetition control, and balanced distribution algorithms\n- **Cross-Platform Validated**: Node.js 22+, modern browsers (Chrome 60+, Firefox 55+, Safari 11+), Web Workers, Electron, with automated compatibility testing\n- **Developer-Friendly**: Full TypeScript support, comprehensive type definitions, intellisense, both modern and legacy JavaScript APIs\n- **Production Ready**: Algorithm stability validation, health check endpoints, regression testing, version synchronization, and deployment validation\n- **Highly Customizable**: Flexible character sets, adaptive distribution algorithms, security configurations, and password composition options\n- **Algorithm Validation**: Comprehensive test vector validation, cross-platform consistency checks, and version tracking with compatibility guarantees\n- **Stability Monitoring**: Automated regression detection, algorithm change detection, and deployment safety validation\n- **Modular Design**: Use individual functions (generatePassword, analyzePassword) or complete NuwaultCore class\n- **Dual API Support**: Modern TypeScript API with full type safety and legacy JavaScript API for backward compatibility\n\n### Perfect For\n- **Enterprise Applications**: Password managers, authentication systems, security platforms requiring deterministic password generation\n- **Personal Security Tools**: Generate unique, memorable passwords for each service without storing them locally\n- **Gaming \u0026 Simulation**: Consistent seed generation for deterministic content, procedural generation, and reproducible randomness\n- **Web Applications**: Client-side password generation with zero server dependencies and offline capability\n- **Progressive Web Apps**: Offline password generation for enhanced privacy and cross-device synchronization\n- **Developer \u0026 Testing Tools**: Reproducible password generation for unit tests, integration tests, and CI/CD pipelines\n- **CLI Tools \u0026 Scripts**: Deterministic password generation for automation, deployment scripts, and infrastructure tools\n\n### Quality Assurance\n- **Comprehensive Testing**: 70+ test cases covering hash generation, password generation, character diversity, input validation, custom character sets, entropy calculation, repetition limits, and cross-platform compatibility\n- **Character Diversity Algorithms**: Dynamic repetition control (8-char: max 2 reps, 32-char: max 4 reps), balanced distribution, and entropy maximization\n- **Adaptive Distribution**: Length-based strategies (short: equal, medium: 25/35/20/20, long: 20/35/20/25) for optimal security\n- **Algorithm Stability**: Test vector validation across Node.js, browsers, and Electron with automated regression detection\n- **Cryptographic Standards**: SHA-512 (NIST FIPS 180-4), Web Crypto API (W3C standard), IEEE-754 number precision\n- **Complete Documentation**: API reference, usage examples, TypeScript integration guide, and production deployment guide\n\n### Extended Documentation\n- [Developer Guide](docs/developer-guide.md) - Complete API reference and configuration\n- [Usage Examples](docs/usage-examples.md) - Comprehensive examples and patterns\n- [Production Guide](docs/production-guide.md) - Enterprise deployment and monitoring\n- [TypeScript Guide](docs/typescript-guide.md) - Full TypeScript integration guide\n\n## Table of Contents\n\n**Getting Started**\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Configuration](#configuration)\n\n**Core Features**\n- [Algorithm Overview](#algorithm-overview)\n- [Security \u0026 Validation](#security--validation)\n\n**Development**\n- [Developer Guide](#developer-guide)\n- [TypeScript Support](#typescript-support)\n- [Browser Support](#browser-support)\n\n**Production \u0026 Examples**\n- [Production Features](#production-features)\n- [Usage Examples](#usage-examples)\n\n**Project Info**\n- [License](#license)\n- [Contributing](#contributing)\n- [Security Policy](#security-policy)\n- [Changelog](#changelog)\n\n---\n\n## Installation\n\n```bash\nnpm install @nuwax-io/nuwault-core\n```\n\n## Quick Start\n\n### Using the Main Class (Recommended)\n\n```javascript\nimport NuwaultCore from '@nuwax-io/nuwault-core';\n\nconst generator = new NuwaultCore();\n\n// Generate a password\nconst password = await generator.generatePassword(\n  ['github.com', 'john.doe@email.com', 'my-master-key'],\n  {\n    length: 32,\n    includeUppercase: true,\n    includeLowercase: true,\n    includeNumbers: true,\n    includeSymbols: true\n  }\n);\n\nconsole.log('Generated password:', password);\n\n// Check algorithm health and version\nimport { getAlgorithmVersion, quickCompatibilityCheck } from '@nuwax-io/nuwault-core';\n\nconst version = getAlgorithmVersion();\nconst isHealthy = await quickCompatibilityCheck();\n\nconsole.log(`Algorithm version: ${version.version}`);\nconsole.log(`Library status: ${isHealthy ? 'Healthy ✅' : 'Issues detected ❌'}`);\n```\n\n### Using Individual Functions\n\n```javascript\nimport { generatePassword, analyzePassword } from '@nuwax-io/nuwault-core';\n\n// Generate password (legacy API: string[] → Promise\u003cstring\u003e)\nconst password = await generatePassword(\n  ['github.com', 'user@email.com'],\n  { length: 16 }\n);\n\n// Analyze password strength\nconst analysis = analyzePassword(password);\n\nconsole.log('Password:', password);\nconsole.log(`Strength: ${analysis.strengthLevel} (${analysis.strengthScore}/100)`);\nconsole.log(`Entropy: ${analysis.entropy} bits`);\n```\n\n## Developer Guide\n\nFor detailed documentation on using the library, including comprehensive API reference, configuration options, and advanced usage examples, please see the [Developer Guide](docs/developer-guide.md).\n\n### Quick Class Reference\n\n```javascript\nimport NuwaultCore from '@nuwax-io/nuwault-core';\n\n// Create generator\nconst generator = new NuwaultCore(customConfig);\n\n// Generate password\nconst password = await generator.generatePassword(['github.com', 'username'], {\n  length: 32,\n  includeUppercase: true,\n  includeLowercase: true,\n  includeNumbers: true,\n  includeSymbols: true\n});\n\n// Analyze character distribution (returns percentages per type)\nconst dist = generator.analyzePassword(password);\nconsole.log(`Lowercase: ${dist.lowercase}%, Symbols: ${dist.symbols}%`);\n```\n\n### Available Functions\n\n```javascript\nimport {\n  generatePassword,\n  generateHash,\n  hashToPassword,\n  analyzeCharacterDistribution,\n  validateAlgorithmCompatibility,\n  quickCompatibilityCheck,\n  getAlgorithmVersion,\n  SECURITY_CONFIG,\n  CHARACTER_SETS\n} from '@nuwax-io/nuwault-core';\n```\n\n**[Complete API Documentation](docs/developer-guide.md)**\n\n## Configuration\n\nYou can customize the security settings by providing a custom configuration:\n\n```javascript\nimport NuwaultCore from '@nuwax-io/nuwault-core';\n\nconst generator = new NuwaultCore({\n  SECURITY_CONFIG: {\n    hashIterations: 2000,          // More iterations = more secure but slower\n    defaultPasswordLength: 32,     // Default password length when none specified\n    masterSalt: 'your-custom-salt' // Optional master salt (null = no salt)\n    // Note: minPasswordLength / maxPasswordLength are enforced at 8 / 128 and cannot be overridden\n  },\n  CHARACTER_SETS: {\n    SYMBOLS: '!@#$%^\u0026*'           // Restrict symbol pool to these 8 characters\n  },\n  PASSWORD_DISTRIBUTION_CONFIG: {\n    long:   { threshold: 64, distribution: { uppercase: 0.20, lowercase: 0.35, numbers: 0.20, symbols: 0.25 } },\n    medium: { threshold: 32, distribution: { uppercase: 0.25, lowercase: 0.35, numbers: 0.20, symbols: 0.20 } },\n    short:  { distribution: 'equal' }\n  }\n});\n```\n\n## Algorithm Overview\n\n### Core Process\n1. **Input Validation**: Validates and sanitizes input strings\n2. **Normalization**: Trims whitespace and converts inputs to lowercase\n3. **Hash Generation**: Multiple SHA-512 iterations with unique salts\n4. **Character Distribution**: Advanced algorithms for balanced output\n5. **Deterministic Shuffle**: Consistent results across generations\n\n### Character Distribution\nThe library uses sophisticated algorithms to ensure balanced character distribution with minimal repetition:\n\n- **Adaptive Distribution**: Different strategies based on password length\n- **Character Repetition Control**: Dynamic maximum repetition limits\n- **Intelligent Character Selection**: Multi-layer selection algorithm\n- **Character Diversity Optimization**: Maximizes unique character usage\n- **Weighted Selection**: Symbols and numbers get higher priority in longer passwords\n- **Deterministic Shuffle**: Fisher-Yates shuffle using hash entropy for consistent results\n\n### Hash Generation Security\n- **Multiple Iterations**: Configurable iterations (default: 1000) prevent rainbow table attacks\n- **Unique Salt per Iteration**: Each iteration uses a unique salt combining master salt, iteration counter, and previous hash\n- **Master Salt Integration**: When provided, prepended to every iteration for unique password variants\n- **Input Entropy Validation**: Minimum combined input length requirements; all-empty inputs are rejected after filtering\n\n**Salt Construction Example:**\n```javascript\n// With master salt \"org-salt\"  \n\"org-salt|iter-0|github.com|user@email.com|initial-hash\"\n\"org-salt|iter-1|github.com|user@email.com|previous-iteration-hash\"\n```\n\n## Security \u0026 Validation\n\n### Security Features\n- **Multiple Hash Iterations**: Configurable iterations (default: 1000) to prevent rainbow table attacks\n- **Optional Master Salt**: User-provided master salt for additional security (null by default)\n- **Unique Salt per Iteration**: Each hash iteration uses a unique salt combining master salt, iteration counter, and previous hash\n- **Input Validation**: Comprehensive validation and sanitization; empty-only inputs are rejected after filtering\n- **Hash Format Validation**: `hashToPassword` enforces 128-character hex string input\n- **Deterministic Generation**: Same inputs always produce the same password\n\n### Algorithm Validation\nThe library includes comprehensive validation systems to ensure algorithm consistency across different environments, platforms, and library versions.\n\n```javascript\nimport { validateAlgorithmCompatibility, getAlgorithmVersion } from '@nuwax-io/nuwault-core';\n\n// Algorithm version tracking\nconst versionInfo = getAlgorithmVersion();\nconsole.log(`Algorithm Version: ${versionInfo.version}`);\n\n// Comprehensive validation\nconst validation = await validateAlgorithmCompatibility();\nconsole.log(`Overall Compatible: ${validation.overall.isFullyCompatible}`);\nconsole.log(`Hash Generation: ${validation.hashGeneration.isCompatible}`);\nconsole.log(`Password Generation: ${validation.passwordGeneration.isCompatible}`);\n```\n\n### Stability Guarantees\n- **Deterministic Behavior**: Same inputs always produce identical outputs across all platforms\n- **Version Compatibility**: Algorithm versioning prevents breaking changes\n- **Platform Independence**: Identical results on Node.js vs. Browser vs. Electron across different OS\n- **Future-Proof Design**: SHA-512 algorithm standardized by NIST (FIPS 180-4)\n\n### Supported Environments\n- ✅ **Node.js 22+**: Full support with all features using Node.js crypto module\n- ✅ **Modern Browsers**: Chrome 60+, Firefox 55+, Safari 11+, Edge 79+ with Web Crypto API\n- ✅ **Web Workers**: Full support for background password generation\n- ✅ **Electron**: Compatible with all Electron versions (uses Chromium's Web Crypto API)\n- ❌ **React Native**: NOT supported - JavaScriptCore engine lacks Web Crypto API support\n\n**Note**: React Native developers need to use crypto polyfills (like `react-native-crypto`) or alternative approaches as the native JavaScriptCore engine does not support the Web Crypto API required by this library.\n\n### Validation Commands\n```bash\nnpm run ci                     # Full CI pipeline locally (format:check → type-check → test → build → verify:algorithm)\nnpm test                       # Run all tests including algorithm validation\nnpm run validate               # Comprehensive validation (type-check + test + version-check)\nnpm run version-check          # Check algorithm/package version synchronization\nnpm run verify:algorithm       # Verify algorithm output against hardcoded test vectors\nnpm run prepublishOnly         # Pre-deployment validation\n```\n\n## Production Features\n\nThe library is designed for enterprise production environments with comprehensive monitoring and validation capabilities. For detailed production deployment guides, enterprise configurations, and monitoring implementations, please see the [Production Guide](docs/production-guide.md).\n\n### Key Features\n- **Health Check API**: Real-time algorithm compatibility monitoring endpoints\n- **Deployment Validation**: Automated algorithm integrity verification after deployments  \n- **Performance Monitoring**: Built-in performance metrics and alerting\n- **Enterprise Configuration**: Organization-wide security settings and standards\n- **Monitoring Dashboard Integration**: Prometheus/Grafana metrics collection\n- **Version Synchronization**: Automated package.json ↔ algorithm version sync\n- **CI/CD Integration**: Pipeline validation and deployment safety checks\n\n### Quick Setup\n```javascript\n// Health check endpoint\nimport { quickCompatibilityCheck } from '@nuwax-io/nuwault-core';\n\napp.get('/health/algorithm', async (req, res) =\u003e {\n  const isHealthy = await quickCompatibilityCheck();\n  res.json({ \n    status: isHealthy ? 'healthy' : 'unhealthy',\n    timestamp: new Date().toISOString()\n  });\n});\n\n// Enterprise configuration\nconst enterpriseGenerator = new NuwaultCore({\n  SECURITY_CONFIG: {\n    hashIterations: 5000,\n    defaultPasswordLength: 32,\n    masterSalt: process.env.ORG_MASTER_SALT\n  }\n});\n\n// Deployment validation\nimport { validateAlgorithmCompatibility } from '@nuwax-io/nuwault-core';\nconst validation = await validateAlgorithmCompatibility();\nif (!validation.overall.isFullyCompatible) {\n  throw new Error('Deployment validation failed');\n}\n```\n\n**[Complete Production Guide](docs/production-guide.md)**\n\n## Browser Support\n\n- ✅ Modern browsers with Web Crypto API support\n- ✅ Node.js 22+\n- ✅ Supports ES modules and CommonJS\n- ✅ UMD build for legacy browser support\n\n## TypeScript Support\n\nFull TypeScript support included with comprehensive type definitions and intellisense. For detailed TypeScript usage, interface definitions, configuration, and best practices, please see the [TypeScript Guide](docs/typescript-guide.md).\n\n### Key TypeScript Features\n\n- **Complete Type Definitions**: Full type coverage for all functions and interfaces\n- **Intellisense Support**: Rich autocomplete and error detection in IDEs\n- **Type-Safe API**: Strict typing for all password generation and validation functions\n- **Generic Support**: Advanced generic types for custom implementations\n- **Utility Types**: Type guards, validation helpers, and custom type definitions\n\n### Quick TypeScript Example\n\n```typescript\nimport NuwaultCore, {\n  validateAlgorithmCompatibility,\n  getAlgorithmVersion,\n} from '@nuwax-io/nuwault-core';\n\nconst generator = new NuwaultCore();\n\n// NuwaultCore.generatePassword returns Promise\u003cstring\u003e\nconst password: string = await generator.generatePassword(\n  ['github.com', 'username'],\n  { length: 32, includeSymbols: true }\n);\n\n// Return types are inferred — both return complex objects\nconst validation = await validateAlgorithmCompatibility();\nconst versionInfo = getAlgorithmVersion();\n\nconsole.log(`Password: ${password}`);\nconsole.log(`Algorithm compatible: ${validation.overall.isFullyCompatible}`);\nconsole.log(`Version: ${versionInfo.version}`);\n```\n\n**[Complete TypeScript Guide](docs/typescript-guide.md)**\n\n## Usage Examples\n\nFor comprehensive usage examples, including advanced configurations, enterprise implementations, algorithm validation, and production monitoring examples, please see the [Usage Examples](docs/usage-examples.md).\n\n### Quick Examples\n\n```javascript\nimport NuwaultCore from '@nuwax-io/nuwault-core';\n\n// Basic usage\nconst generator = new NuwaultCore();\nconst password = await generator.generatePassword(['github.com', 'username']);\n\n// Advanced configuration\nconst advancedGenerator = new NuwaultCore({\n  SECURITY_CONFIG: {\n    hashIterations: 5000,\n    defaultPasswordLength: 32,\n    masterSalt: 'my-organization-salt'\n  }\n});\n\n// Master salt usage\nconst userPassword = await generator.generatePassword(\n  ['secure-site.com', 'user@email.com'],\n  { \n    length: 24,\n    masterSalt: 'user-specific-salt' \n  }\n);\n\n// Character distribution (percentages per type)\nconst dist = generator.analyzePassword(password);\nconsole.log(`Lowercase: ${dist.lowercase}%, Symbols: ${dist.symbols}%`);\n\n// Algorithm validation\nimport { quickCompatibilityCheck, getAlgorithmVersion } from '@nuwax-io/nuwault-core';\n\nconst isHealthy = await quickCompatibilityCheck();\nconst version = getAlgorithmVersion();\nconsole.log(`Algorithm version: ${version.version}, Status: ${isHealthy ? 'Healthy' : 'Issues detected'}`);\n```\n\n**[Complete Usage Examples](docs/usage-examples.md)**\n\n---\n\n## License\n\nMIT - see [LICENSE](LICENSE) file for details.\n\n## Contributing\n\nContributions are welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## Security Policy\n\nWe take security seriously and appreciate responsible disclosure of vulnerabilities. For detailed security information, vulnerability reporting procedures, and security best practices, please see our [Security Policy](SECURITY.md).\n\n### Security Overview\n- **Secure by Design**: SHA-512 hashing with multiple iterations\n- **Deterministic Generation**: Consistent, predictable outputs\n- **Input Validation**: Comprehensive validation and sanitization with strict empty-input rejection\n- **Hash Format Validation**: `hashToPassword` enforces valid 128-character hex input\n- **Memory Safety**: Best-effort secure memory handling\n\n### Reporting Vulnerabilities\n**Please do not report security vulnerabilities via GitHub issues.**\n\nFor security vulnerabilities, please:\n- Email: [security@nuwault.com](mailto:security@nuwault.com)\n- Follow our coordinated disclosure process\n- Receive acknowledgment within 48 hours\n\n**[Complete Security Policy](SECURITY.md)** \n\n## Contact \u0026 Support\n\nFor general inquiries, technical support, or feedback, please reach out to us:\n\n- **Support Email**: [support@nuwault.com](mailto:support@nuwault.com)\n- **GitHub Issues**: [Report bugs or request features](https://github.com/nuwax-io/nuwault-core/issues)\n- **Documentation**: [Complete documentation and guides](docs/)\n\nWe welcome your feedback and are committed to helping you get the most out of Nuwault Core.\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for a detailed history of changes. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnuwax-io%2Fnuwault-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnuwax-io%2Fnuwault-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnuwax-io%2Fnuwault-core/lists"}