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

kalender-bali-agung

v2.5.3

Published

Library Kalender Bali Akurat 100% oleh AgungJSX

Downloads

79

Readme

kalender-bali-agung 🌺

Library Node.js Tercepat, Paling Ringan, & Paling Akurat untuk Komputasi Kalender Saka Bali.

kalender-bali-agung adalah engine komputasi kalender berbasis JavaScript (ES6+) yang dirancang khusus untuk kemudahan ekstraksi penanggalan Bali secara absolut. Dibangun dengan algoritma presisi tinggi (Sistem Multi-Pivot Hibrid & Auto-Paksa Kirang) yang disinkronkan dengan siklus Eka Sungsang (Pangalantaka), library ini secara otomatis menangani kompleksitas fase bulan, lompatan hari (Ngunaratri), dan bulan sisipan (Mala Sasih) tanpa resiko pergeseran/drift di masa depan. Cocok untuk aplikasi skala Enterprise & Production.


✨ Fitur Utama

  • 🚀 Stable Timezone: Menggunakan waktu murni UTC (dayjs), menanggulangi bug Leap Year bawaan JavaScript native. Sangat stabil untuk eksekusi server (Node.js) maupun client-side.
  • 🎯 Akurasi Tanpa Batas Tahun: Dirancang untuk mendukung pencarian data Wariga untuk segala tahun (baik di masa lalu 1900-an, hingga masa depan 2500+).
  • 📜 Wariga Engine Lengkap: Mendukung komputasi Pawukon, Wewaran (Ekawara-Dasawara), Palalintangan, Pancasuda, Pararasan, Rakam, Eka Jala Rsi, hingga Zodiak Hindu.
  • 🌕 Siklus Lunar Otomatis (Auto-Paksa Kirang): Deteksi presisi untuk Tilem/Purnama. Secara cerdas mengunci akhir fase bulan di angka 14 jika terjadi Ngunaratri (bulan pendek), dan di angka 15 jika normal. Serta mendeteksi bulan kabisat Bali (Nampih/Mala Sasih).

📦 Instalasi (Server / Node.js)

Instalasi melalui NPM (secara otomatis akan menginstal dependensi waktu yang dibutuhkan):

npm install kalender-bali-agung dayjs

Atau menggunakan Yarn:

yarn add kalender-bali-agung dayjs

🌐 Penggunaan via CDN (Client-Side / HTML)

Anda dapat menggunakan library ini langsung di dalam tag <script> HTML tanpa perlu instalasi menggunakan NPM. Modul ini di-bundle menjadi format UMD sehingga langsung dapat dipanggil melalui variabel global KalenderBaliAgung.

<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <title>Kalender Bali</title>
</head>
<body>
    <script src="[https://cdn.jsdelivr.net/npm/[email protected]/dist/kalender-bali-agung.min.js](https://cdn.jsdelivr.net/npm/[email protected]/dist/kalender-bali-agung.min.js)"></script>
    <script>
        const tglBali = new KalenderBaliAgung('2024-04-16');
        
        console.log("Saka:", tglBali.tahunSaka);
        console.log("Fase:", tglBali.penanggalStr);
        console.log("Status:", tglBali.statusPurnama);
    </script>
</body>
</html>

🚀 Penggunaan Cepat (Node.js)

Instansiasi kelas menggunakan format tanggal standar (YYYY-MM-DD).

const KalenderBaliAgung = require('kalender-bali-agung');

const tglBali = new KalenderBaliAgung('2024-04-16');

console.log("Tahun Saka:", tglBali.tahunSaka);
console.log("Nomor Wuku:", tglBali.noWuku);
console.log("Fase Angka:", tglBali.penanggalStr);
console.log("Arah Fase :", tglBali.isPangelong ? "Pengelong" : "Penanggal");
console.log("Puncak    :", tglBali.statusPurnama);

📖 Referensi API (Properti & Method)

Setelah memanggil new KalenderBaliAgung('date'), Anda dapat mengakses data-data berikut:

1. Data Utama (Properti)

| Properti | Tipe | Keterangan | | :--- | :--- | :--- | | tahunSaka | Number | Tahun Saka pada tanggal tersebut | | noSasih | Number | Indeks Sasih (1=Kasa, 2=Karo, ..., 12=Sadha) | | penanggal | Number | Angka fase bulan mentah | | penanggalStr | String | String fase bulan bersih (Otomatis mendeteksi ngunaratri. Cth: "14", "12/13") | | isPangelong | Boolean | true jika fase bulan memudar (Pengelong / Kresna Paksa) | | statusPurnama | String | Otomatis mengembalikan "Tilem", "Purnama", atau "" (kosong). Tepat di angka 14 atau 15 | | isNampih | Boolean | true jika terjadi Sasih Kabisat (Mala Sasih) | | isNgunaratri| Boolean | true jika terjadi pergeseran/loncat hari (Ngunaratri) | | noWuku | Number | Indeks Wuku (1=Sinta s/d 30=Watugunung) | | angkaWuku | Number | Urutan hari dalam siklus 210 hari | | uripWuku | Number | Neptu / Urip dari Wuku tersebut | | noEkawara s/d noDasawara | Number | Indeks siklus Wewaran (1 harian sampai 10 harian) |

2. Metode Wariga Lanjutan (Astrologi)

Metode di bawah ini mengembalikan indeks angka yang dapat digunakan untuk pemetaan ramalan atau perhitungan padewasan:

  • hitungLintang() : Indeks Palalintangan (1-35)
  • hitungPancasudha() : Indeks Pancasuda (1-7)
  • hitungPararasan() : Indeks Pararasan (1-12)
  • hitungRakam() : Indeks Rakam (1-6)
  • hitungZodiak() : Indeks Zodiak Hindu (1-12)
  • hitungEkaJalaRsi() : Indeks Eka Jala Rsi (1-27)
  • hitungWatekAlit() : Indeks Watek Alit (1-4)
  • hitungWatekMadya() : Indeks Watek Madya (1-5)
  • hitungJejepan() : Indeks Jejepan (1-6)

🛠️ Implementasi Lanjutan: Kamus Pemetaan Nama Bali

Agar memberikan kebebasan kustomisasi bahasa (Bali/Indonesia/Inggris), library ini mereturn nilai berupa angka indeks. Anda dapat mendefinisikan array kamus string sendiri di dalam aplikasi Anda untuk menerjemahkan indeks tersebut.

const KalenderBaliAgung = require('kalender-bali-agung');

const WUKU = ["", "Sinta", "Landep", "Ukir", "Kulantir", "Tolu", "Gumbreg", "Wariga", "Warigadean", "Julungwangi", "Sungsang", "Dungulan", "Kuningan", "Langkir", "Medangsia", "Pujut", "Pahang", "Krulut", "Merakih", "Tambir", "Medangkungan", "Matal", "Uye", "Menail", "Prangbakat", "Bala", "Ugu", "Wayang", "Kelawu", "Dukut", "Watugunung"];
const PANCAWARA = ["", "Umanis", "Paing", "Pon", "Wage", "Kliwon"];
const SAPTAWARA = ["Redite", "Soma", "Anggara", "Buda", "Wraspati", "Sukra", "Saniscara"];
const SASIH = ["", "Kasa", "Karo", "Katiga", "Kapat", "Kalima", "Kanem", "Kapitu", "Kawalu", "Kasanga", "Kadasa", "Jyestha", "Sadha"];

const tgl = new KalenderBaliAgung('2025-03-29');

console.log(`Wuku    : ${WUKU[tgl.noWuku]}`);
console.log(`Wewaran : ${SAPTAWARA[tgl.noSaptawara]} ${PANCAWARA[tgl.noPancawara]}`);

const namaSasih = tgl.isNampih ? `Mala ${SASIH[tgl.noSasih]}` : SASIH[tgl.noSasih];
console.log(`Sasih   : ${namaSasih}`);

👨‍💻 Author

Agung Developer

Diciptakan dengan dedikasi tinggi untuk digitalisasi kebudayaan Bali. Library ini bertujuan memfasilitasi para pengembang perangkat lunak untuk membangun aplikasi kalender yang menghormati ketepatan waktu penanggalan tradisional di era modern.

📄 Lisensi

Didistribusikan di bawah lisensi MIT. Anda bebas menggunakan, memodifikasi, dan mendistribusikan library ini secara gratis untuk tujuan personal maupun komersial.