UNPKG

brahma-muhurat

Version:

High-precision Brahma Muhurat calculator for JavaScript and TypeScript

492 lines (385 loc) โ€ข 17.3 kB
<div align="center"> # ๐Ÿ•‰๏ธ Brahma Muhurat Calculator ### *The most auspicious time for your spiritual practice* [![npm version](https://img.shields.io/npm/v/brahma-muhurat.svg?style=for-the-badge&color=orange)](https://www.npmjs.com/package/brahma-muhurat) [![downloads](https://img.shields.io/npm/dm/brahma-muhurat.svg?style=for-the-badge&color=brightgreen)](https://www.npmjs.com/package/brahma-muhurat) [![license](https://img.shields.io/npm/l/brahma-muhurat.svg?style=for-the-badge&color=blue)](https://github.com/rakshitbharat/brahma-muhurat/blob/main/LICENSE) [![tests](https://img.shields.io/badge/tests-83%20passing-success?style=for-the-badge)](https://github.com/rakshitbharat/brahma-muhurat) **A high-precision JavaScript library for calculating Brahma Muhurat with NASA-grade astronomical accuracy** *Calculate the sacred time period occurring approximately 96 minutes before sunrise - the most auspicious time in Hindu tradition for meditation, yoga, and spiritual practices.* </div> --- ## โœจ Why Choose Brahma Muhurat Calculator? ๐ŸŽฏ **Precision** โ€ข NASA-grade astronomical accuracy with multiple precision levels ๐ŸŒ **Global** โ€ข Works anywhere on Earth with proper timezone handling โšก **Fast** โ€ข Sub-100ms calculations optimized for performance ๐Ÿงช **Tested** โ€ข 83 comprehensive test cases with 60%+ coverage ๐Ÿ“ฑ **Universal** โ€ข Works in Node.js and modern browsers ๐Ÿ”ฎ **Spiritual** โ€ข Respects Hindu traditions while embracing modern science ๐Ÿ“ฆ **Optimized** โ€ข Minimal 24KB package size for lightning-fast installation ## ๐Ÿš€ Quick Start ```bash npm install brahma-muhurat ``` ### JavaScript Usage ```javascript const BrahmaMuhuratCalculator = require('brahma-muhurat'); // ๐ŸŽฏ Simple calculation const calculator = new BrahmaMuhuratCalculator(); const result = calculator.calculate({ latitude: 25.317644, // ๐Ÿ“ Varanasi, India longitude: 83.005495, date: '2024-02-18', timezone: 'Asia/Kolkata' }); console.log(`๐ŸŒ… Brahma Muhurat: ${result.brahmaMuhurat.start.localTime} - ${result.brahmaMuhurat.end.localTime}`); console.log(`โ˜€๏ธ Sunrise: ${result.sunrise.localTime}`); console.log(`โฐ Duration: ${result.brahmaMuhurat.duration.formatted}`); ``` ### TypeScript Usage ```typescript import { CalculationParams, CalculationResult } from 'brahma-muhurat'; const BrahmaMuhuratCalculator = require('brahma-muhurat'); // ๐ŸŽฏ Type-safe calculation const calculator = new BrahmaMuhuratCalculator({ precision: 'high', traditionType: 'standard', refractionModel: 'bennett' }); const params: CalculationParams = { latitude: 25.317644, longitude: 83.005495, date: '2024-02-18', timezone: 'Asia/Kolkata' }; const result: CalculationResult = calculator.calculate(params); console.log(`๐Ÿ•‰๏ธ Brahma Muhurat: ${result.brahmaMuhurat.start.localTime} - ${result.brahmaMuhurat.end.localTime}`); ``` ## ๐ŸŒŸ Key Features ### ๐ŸŽฏ **Precision Levels** | Level | Accuracy | Best For | |-------|----------|----------| | `basic` | ยฑ2-5 minutes | Quick calculations | | `high` | ยฑ30 seconds | Daily practice (recommended) | | `maximum` | ยฑ10-30 seconds | Precise ceremonies | ### ๐Ÿ›๏ธ **Tradition Types** | Type | Duration | Description | |------|----------|-------------| | `standard` | 96 minutes | Traditional calculation | | `extended` | 120 minutes | Intensive spiritual practice | | `smarta` | 96 minutes exact | Orthodox Vedic calculation | | `dynamic` | Variable | Seasonal day-length based | ### ๐ŸŒ **Global Capabilities** - โœ… **International locations** with timezone intelligence - โœ… **Polar regions** handling for extreme latitudes - โœ… **High altitude** corrections up to mountain peaks - โœ… **Batch processing** for multiple dates/locations - โœ… **Seasonal variations** with spiritual significance ### ๐Ÿ”ฌ **Scientific Accuracy** - ๐Ÿ›ฐ๏ธ **NASA-grade algorithms** from astronomy-engine - ๐ŸŒก๏ธ **Atmospheric corrections** for pressure, temperature, humidity - ๐Ÿ“ **3 refraction models**: Bennett, Sรฆmundsson, Rigorous - ๐Ÿ”„ **Cross-validation** against traditional Panchang (ยฑ10min accuracy) - ๐ŸŒ™ **Moon phase calculations** with spiritual significance ## ๐Ÿ“ Project Architecture <details> <summary><b>๐Ÿ—๏ธ View Project Structure</b></summary> ``` ๐Ÿ•‰๏ธ brahma-muhurat/ โ”œโ”€โ”€ ๐Ÿ“ src/ # Source code โ”‚ โ”œโ”€โ”€ ๐Ÿ“ core/ # Core astronomical calculations โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿงฎ astronomical.js # NASA-grade solar calculations โ”‚ โ”‚ โ”œโ”€โ”€ ๐ŸŒซ๏ธ refraction.js # Atmospheric refraction models โ”‚ โ”‚ โ””โ”€โ”€ ๐Ÿ•‰๏ธ muhurat.js # Brahma Muhurat calculation logic โ”‚ โ”œโ”€โ”€ ๐Ÿ“ utils/ # Utility functions โ”‚ โ”‚ โ”œโ”€โ”€ โฐ time.js # Time utilities and formatting โ”‚ โ”‚ โ””โ”€โ”€ ๐ŸŒ geo.js # Geographic utilities and validation โ”‚ โ””โ”€โ”€ ๐ŸŽฏ index.js # Main library entry point โ”œโ”€โ”€ ๐Ÿ“ test/ # Comprehensive test suite โ”‚ โ”œโ”€โ”€ ๐Ÿงช calculations.test.js # Core functionality tests โ”‚ โ”œโ”€โ”€ ๐Ÿ“Š coverage-enhancement.test.js # Coverage improvement tests โ”‚ โ””โ”€โ”€ ๐Ÿ”ง utilities-coverage.test.js # Utility function tests โ”œโ”€โ”€ ๐Ÿ“ examples/ # Working examples โ”‚ โ”œโ”€โ”€ ๐ŸŒฑ simple.js # Basic usage demonstration โ”‚ โ””โ”€โ”€ ๐Ÿš€ advanced.js # Advanced features showcase โ”œโ”€โ”€ ๐Ÿ“ scripts/ # Automation scripts โ”‚ โ”œโ”€โ”€ ๐Ÿ”„ update-dependencies.js # Automated dependency management โ”‚ โ”œโ”€โ”€ ๐Ÿ”ง build.js # Build verification โ”‚ โ”œโ”€โ”€ โœ… check-node-version.js # Node.js compatibility check โ”‚ โ””โ”€โ”€ ๐Ÿ” validate-compatibility.js # Environment validation โ”œโ”€โ”€ ๐Ÿ“ types/ # TypeScript definitions โ”‚ โ””โ”€โ”€ ๐Ÿ“ index.d.ts # Complete type definitions โ”œโ”€โ”€ ๐Ÿ“ docs/ # Documentation โ”‚ โ”œโ”€โ”€ ๐Ÿ“‹ AI_PROJECT_PROMPT.md # Original development specifications โ”‚ โ”œโ”€โ”€ ๐Ÿงฎ BRAHMA_MUHURAT_CALCULATION.md # Mathematical documentation โ”‚ โ”œโ”€โ”€ ๐Ÿ“Š DEVELOPMENT_SUMMARY.md # Project overview โ”‚ โ”œโ”€โ”€ ๐Ÿงช TEST_COVERAGE_TYPESCRIPT_SUMMARY.md # Testing details โ”‚ โ””โ”€โ”€ ๐Ÿ“ FINAL_DEVELOPMENT_NOTES.md # Complete development notes โ”œโ”€โ”€ ๐Ÿ“„ package.json # Package configuration โ”œโ”€โ”€ ๐Ÿ“– README.md # This beautiful documentation โ””โ”€โ”€ ๐Ÿ”’ .gitignore # Git ignore patterns ``` </details> ### Precision Levels - **`basic`**: ยฑ2-5 minutes accuracy, fastest performance - **`high`**: ยฑ30 seconds to 2 minutes, recommended for most uses - **`maximum`**: ยฑ10-30 seconds, highest accuracy with atmospheric corrections ### Tradition Types - **`standard`**: 96 minutes before sunrise (traditional) - **`extended`**: 120 minutes before sunrise (intensive practice) - **`smarta`**: 96 minutes exact (orthodox calculation) - **`dynamic`**: Variable duration based on seasonal day length ### Refraction Models - **`bennett`**: Most commonly used, good general accuracy - **`saemundsson`**: More accurate for low altitudes - **`rigorous`**: Highest accuracy with humidity effects ## ๐Ÿ’ป Advanced Usage <details> <summary><b>๐ŸŒ Multiple Locations</b></summary> ```javascript const locations = [ { name: '๐Ÿ‡ฎ๐Ÿ‡ณ Varanasi', lat: 25.317644, lon: 83.005495, tz: 'Asia/Kolkata' }, { name: '๐Ÿ‡บ๐Ÿ‡ธ New York', lat: 40.7128, lon: -74.0060, tz: 'America/New_York' }, { name: '๐Ÿ‡ฌ๐Ÿ‡ง London', lat: 51.5074, lon: -0.1278, tz: 'Europe/London' } ]; locations.forEach(loc => { const result = calculator.calculate({ latitude: loc.lat, longitude: loc.lon, date: '2024-02-18', timezone: loc.tz }); console.log(`${loc.name}: ${result.brahmaMuhurat.start.localTime}`); }); ``` </details> <details> <summary><b>๐Ÿ“… Batch Processing</b></summary> ```javascript const dates = ['2024-02-18', '2024-02-19', '2024-02-20']; const batchResults = calculator.calculateBatch({ latitude: 25.317644, longitude: 83.005495, timezone: 'Asia/Kolkata' }, dates); batchResults.forEach((result, index) => { console.log(`Day ${index + 1}: ${result.brahmaMuhurat.start.localTime}`); }); ``` </details> <details> <summary><b>๐Ÿ”๏ธ High Altitude & Atmospheric Conditions</b></summary> ```javascript // Calculate for Mount Kailash (high altitude) const result = calculator.calculate({ latitude: 31.0688, // Mount Kailash longitude: 81.3108, elevation: 6638, // High altitude in meters pressure: 360, // Reduced atmospheric pressure temperature: -10, // Cold temperature humidity: 0.1, // Low humidity date: '2024-02-18', timezone: 'Asia/Kolkata' }); ``` </details> <details> <summary><b>๐ŸŽฏ Precision Comparison</b></summary> ```javascript const precisions = ['basic', 'high', 'maximum']; const location = { lat: 25.317644, lon: 83.005495, tz: 'Asia/Kolkata' }; precisions.forEach(precision => { const calc = new BrahmaMuhuratCalculator({ precision }); const result = calc.calculate({ ...location, date: '2024-02-18', timezone: location.tz }); console.log(`${precision}: ${result.brahmaMuhurat.start.localTime}`); }); ``` </details> ## ๐Ÿ“š API Reference <details> <summary><b>๐Ÿ—๏ธ Constructor Options</b></summary> ```javascript const calculator = new BrahmaMuhuratCalculator({ precision: 'high', // 'basic' | 'high' | 'maximum' traditionType: 'standard', // 'standard' | 'extended' | 'smarta' | 'dynamic' refractionModel: 'bennett' // 'bennett' | 'saemundsson' | 'rigorous' }); ``` </details> <details> <summary><b>๐Ÿ“ TypeScript Support</b></summary> Full TypeScript integration with comprehensive type definitions: ```typescript import { CalculationParams, CalculationResult, CalculatorOptions } from 'brahma-muhurat'; const BrahmaMuhuratCalculator = require('brahma-muhurat'); // Type-safe calculator creation const calculator = new BrahmaMuhuratCalculator({ precision: 'high', traditionType: 'standard', refractionModel: 'bennett' }); // Type-safe parameters const params: CalculationParams = { latitude: 25.317644, longitude: 83.005495, date: '2024-02-18', timezone: 'Asia/Kolkata' }; // Type-safe result const result: CalculationResult = calculator.calculate(params); ``` **TypeScript Examples:** ```bash npm run example:typescript # All TypeScript examples npm run example:ts-simple # Basic usage npm run example:ts-advanced # Advanced features npm run example:ts-integration # Service patterns ``` **๐Ÿ“– Full TypeScript Guide:** [docs/TYPESCRIPT_GUIDE.md](docs/TYPESCRIPT_GUIDE.md) </details> <details> <summary><b>๐ŸŽฏ Main Methods</b></summary> ### `calculate(params)` - Main calculation method ```javascript const result = calculator.calculate({ latitude: 25.317644, // Decimal degrees (-90 to 90) longitude: 83.005495, // Decimal degrees (-180 to 180) elevation: 80, // Meters above sea level (optional) date: '2024-02-18', // YYYY-MM-DD format timezone: 'Asia/Kolkata', // IANA timezone name pressure: 1013.25, // Atmospheric pressure in mbar (optional) temperature: 15, // Temperature in Celsius (optional) humidity: 0.5 // Relative humidity 0-1 (optional) }); ``` ### `calculateBatch(baseParams, dates)` - Multiple dates ```javascript const results = calculator.calculateBatch(baseParams, ['2024-02-18', '2024-02-19']); ``` ### `calculateSunrise(params)` - Sunrise only ```javascript const sunrise = calculator.calculateSunrise(params); ``` </details> <details> <summary><b>๐Ÿ”ง Static Utility Methods</b></summary> ```javascript // Get supported timezones const timezones = BrahmaMuhuratCalculator.getSupportedTimezones(); // Format coordinates const formatted = BrahmaMuhuratCalculator.formatCoordinates(25.317644, 83.005495); // Validate coordinates const isValid = BrahmaMuhuratCalculator.validateCoordinates(25.317644, 83.005495); // Get library information const info = BrahmaMuhuratCalculator.getLibraryInfo(); ``` </details> ## ๐Ÿงช Testing & Quality ```bash # ๐Ÿงช Run comprehensive test suite (83 tests) npm test # ๐Ÿ“Š Run with coverage report npm run test:coverage # ๐Ÿ” Code linting npm run lint # ๐Ÿš€ Try examples npm run example # Simple usage npm run example:advanced # Advanced features # ๐Ÿ“ TypeScript examples npm run example:typescript # All TypeScript examples npm run example:ts-simple # Simple TypeScript example npm run example:ts-advanced # Advanced TypeScript features npm run example:ts-integration # TypeScript integration patterns ``` **Quality Metrics:** - โœ… **83 tests passing** with comprehensive edge cases - โœ… **60.52% test coverage** across all modules - โœ… **Zero ESLint issues** - clean, maintainable code - โœ… **Cross-validated** against traditional Panchang calculations - โœ… **Performance tested** - all calculations under 100ms ## ๐ŸŒ Spiritual Context & Cultural Significance <div align="center"> *"Brahma Muhurat is the time of Brahma - the creator. It is the most auspicious time for spiritual practices, when the mind is naturally calm and conducive to meditation."* </div> ### ๐Ÿ™ **Perfect for:** - ๐Ÿง˜ **Meditation and Pranayama** - Enhanced focus and awareness - ๐Ÿ“ฟ **Mantra Recitation** - Amplified spiritual vibrations - ๐Ÿ“– **Scripture Study** - Improved comprehension and retention - ๐Ÿ•‰๏ธ **Yoga Practice** - Optimal mind-body harmony - ๐Ÿช” **Religious Ceremonies** - Maximum spiritual benefit ### ๐ŸŒ… **Traditional Significance:** - **Sattvic Period**: Time when Sattva (purity) dominates - **Divine Connection**: Easier access to higher consciousness - **Mental Clarity**: Natural state of alertness and focus - **Spiritual Progress**: Accelerated spiritual development - **Energy Alignment**: Optimal cosmic energy for transformation ## ๐Ÿ› ๏ธ Development Scripts ```bash # ๐Ÿ”„ Check for dependency updates npm run check-latest # โฌ†๏ธ Update dependencies automatically npm run update-deps # โœ… Validate environment compatibility npm run validate-deps # ๐Ÿ”ง Build verification npm run build ``` ## ๐Ÿค Human-AI Partnership <div align="center"> **This library is a product of collaborative innovation between human wisdom and AI assistance.** *Developed through the synergy of traditional spiritual knowledge, modern astronomical science, and cutting-edge AI technology.* </div> ### ๐Ÿ‘ฅ **The Collaboration:** - ๐Ÿง  **Human Vision**: Spiritual understanding, cultural authenticity, and practical requirements - ๐Ÿค– **AI Assistance**: Code optimization, testing strategies, and technical implementation - ๐Ÿ”ฌ **Scientific Accuracy**: NASA-grade algorithms with traditional validation - ๐Ÿ™ **Cultural Respect**: Honoring Hindu traditions while embracing modern technology This partnership demonstrates how AI can augment human creativity and domain expertise to create tools that serve both technical excellence and spiritual practice. --- ## ๐ŸŒ Compatibility & Requirements | Environment | Version | Status | |-------------|---------|--------| | Node.js | 12.0.0+ | โœ… Fully Supported | | Browser | ES6+ | โœ… Fully Supported | | TypeScript | 4.0+ | โœ… Full Type Definitions | | React/Vue/Angular | Any | โœ… Framework Agnostic | --- ## ๐Ÿ“„ License & Contributing ### ๐Ÿ“œ **License** MIT License - Free for personal and commercial use ### ๐Ÿค **Contributing** We welcome contributions! Please: 1. ๐Ÿด Fork the repository 2. ๐ŸŒฟ Create a feature branch 3. โœ… Ensure all tests pass 4. ๐Ÿ“ Add documentation for new features 5. ๐Ÿš€ Submit a pull request ### ๐Ÿ’ฌ **Support & Community** - ๐Ÿ› **Issues**: [GitHub Issues](https://github.com/rakshitbharat/brahma-muhurat/issues) - ๐Ÿ“– **Documentation**: Comprehensive guides and examples - ๐Ÿ’ก **Feature Requests**: We'd love to hear your ideas! --- ## ๐Ÿ™ Acknowledgments ### ๐ŸŒŸ **Special Thanks:** - **Vedic Astronomers** for the foundational mathematical principles - **Modern Astronomers** for precise celestial mechanics - **Open Source Community** for the astronomical libraries - **Spiritual Practitioners** for validation and feedback - **AI Technology** for enhancing development capabilities ### ๐Ÿ“š **Based on:** - Traditional Hindu astronomical calculations (Jyotisha) - Modern astronomical algorithms and NASA data - Atmospheric science research - Cross-cultural spiritual practices --- <div align="center"> ## ๐Ÿ•‰๏ธ **May your spiritual journey be blessed with perfect timing!** *"Time is the most precious gift - use it wisely for spiritual growth"* [![npm](https://img.shields.io/npm/v/brahma-muhurat.svg?style=for-the-badge&logo=npm&color=red)](https://www.npmjs.com/package/brahma-muhurat) [![GitHub](https://img.shields.io/github/stars/rakshitbharat/brahma-muhurat.svg?style=for-the-badge&logo=github&color=black)](https://github.com/rakshitbharat/brahma-muhurat) **Made with ๐Ÿง  Human Wisdom + ๐Ÿค– AI Innovation + ๐Ÿ™ Spiritual Devotion** </div>