npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@fehu-zone/islamic-calendar-authority

v2.1.0

Published

Comprehensive Islamic calendar library with prayer times, Ramadan dates, and Qibla calculation based on official religious authorities worldwide

Downloads

364

Readme

🕌 Islamic Calendar Authority (Core Engine v2.0.0)

npm version License: MIT Platform: Universal

A high-performance, professional-grade core engine for Islamic temporal and spatial calculations. This library is designed to be the "Reliability Layer" for modern Islamic applications, offering platform independence and automated data verification.


🚀 Key Improvements in v2.0.0

1. ⚖️ Hybrid Validation (The "Cross-Check" Engine)

Never serve "broken" prayer times again. The orchestrator fetches data from official APIs and validates them against internal high-precision astronomical engine.

  • Regional Logic: Applies ±1m tolerance for Turkey (Diyanet standard) and ±2m globally.
  • Automated Fallback: If an API returns anomalous data (>15m error), the engine automatically falls back to internal calculation.

2. 🌍 Geodetic Qibla (Vincenty's Formula)

Switched from Haversine (Spherical) to Vincenty's Formulae (Ellipsoidal).

  • Millimeter Precision: Calculated on the WGS-84 ellipsoid.
  • Magnetic Correction: Supports True North to Magnetic North conversion via injectable providers.

3. 🔌 Provider Pattern (Universal Core)

100% platform agnostic. Inject your native device powers:

  • LocationProvider: Bind to react-native-geolocation-service or Web Geolocation.
  • MagneticProvider: Bind to geomagnetism or native WMM models.

4. 🛡️ Robust Networking

  • Exponential Backoff: Automatic retries for unstable network conditions.
  • Smart Caching: In-memory caching for API responses to minimize data usage.

📦 Installation

npm install @fehu-zone/islamic-calendar-authority

🛠️ Implementation Guide

A. Initializing Providers (Mobile/Web)

Inject native capabilities at app startup to enable high-precision features.

import { providers } from '@fehu-zone/islamic-calendar-authority/core';

// Example: React Native Injection
providers.registerLocationProvider({
    getCurrentPosition: async () => {
        // High accuracy native call
        return { latitude: 41.0082, longitude: 28.9784, accuracy: 15 };
    }
});

providers.registerMagneticProvider({
    getDeclination: async (lat, lng) => {
        // Return magnetic declination for proper compass heading
        return 5.5; 
    }
});

B. Fetching Accurate Prayer Times

Use the orchestrator for automated validation and fallback handling.

import { getPrayerTimes, METHOD_IDS } from '@fehu-zone/islamic-calendar-authority';

const times = await getPrayerTimes(new Date(), 41.0082, 28.9784, {
    method: METHOD_IDS.DIYANET,
    accuracy: 15 // meters
});

// Response contains validation metadata
console.log(times._validation.status); // 'VALID', 'WARNING', or 'FALLBACK_CRITICAL'

C. Precision Qibla & Compass

Get exact bearings for True North and Magnetic Compass.

import { getQiblaInfo } from '@fehu-zone/islamic-calendar-authority/qibla';

const qibla = await getQiblaInfo(41.0082, 28.9784);

/* 
Output:
{
  trueNorth: 151.52,      // True North bearing (Geodetic)
  magneticNorth: 146.02,  // Corrected compass heading
  distance: 2405820.5,    // Distance to Kaaba in meters
  declination: 5.5
}
*/

🌙 Ramadan & Authorities

Official Dates

The library contains official dates validated by national authorities (Diyanet, Umm Al-Qura, etc.).

import { getRamadanStartDate, getAuthorityForCountry } from '@fehu-zone/islamic-calendar-authority';

const start = getRamadanStartDate(1447, 'TR'); // 2026-02-19
const authority = getAuthorityForCountry('TR'); // Diyanet İşleri Başkanlığı

📊 Methodology Presets

| ID | Authority | Region | Fajr Angle | Isha Angle | |:---|:---|:---|:---|:---| | 13 | Diyanet | Turkey | 18.0° | 17.0° | | 4 | Umm Al-Qura | Saudi / Gulf | 18.5° | 90min (Fixed) | | 2 | ISNA | North America | 15.0° | 15.0° | | 3 | MWL | Global / Europe | 18.0° | 17.0° |


⚖️ Safety & Precision Benchmarks

  • GPS Safety: Automatically flags LOW_PRECISION if GPS accuracy > 100m.
  • Astronomical Engine: Calibrated against NOAA Solar Algorithms.
  • Cross-Check: Real-time comparison between AlAdhan API and internal reference engine.

📄 License

MIT © Ramazan App Team


Developed to provide the most reliable spiritual timing for Muslims worldwide.