hindu-devotional-texts
Version:
Hand-curated, typed, authoritative Hindu devotional content — aartis, chalisas, kathas, stotras, mantras, ashtottaras & sahasranamas, Vedic suktas, daily prayers, puja vidhi, Navratri, tirthas, the festival/ekadashi calendar, and full scriptures (Bhagavad
73 lines • 3.49 kB
TypeScript
import type { Bilingual, Deity } from '../types.js';
import type { KathaSlug } from '../kathas/index.js';
import type { PujaSlug } from '../puja/index.js';
import type { MantraSlug } from '../mantras/index.js';
import type { SuktaSlug } from '../suktas/index.js';
import type { StotraSlug } from '../stotras/index.js';
/** The kind of observance an entry is (the discriminator). */
export type FestivalCategory = 'ekadashi' | 'tithi-vrat' | 'festival';
/** The two lunar fortnights. A *name*, not a date. */
export type Paksha = 'shukla' | 'krishna';
/**
* A unified entry across every category — a single shape with a `category`
* discriminator and category-specific OPTIONAL fields (chosen over a
* discriminated union so `getAllFestivals()` returns one array type and the
* data files stay uniform, mirroring `TirthaEntry`). Which optionals are
* populated is governed by `category`:
* - `ekadashi` → `paksha`, `month`, `isAdhikaMaasa?`
* - `tithi-vrat` → `paksha?`, `tithi`, `recurrence`
* - `festival` → `month?`, `tithi?`
*/
export interface FestivalEntry {
/** Stable kebab-case slug, unique across the module ('kamada-ekadashi'). */
id: string;
category: FestivalCategory;
/** Display name of the observance. */
name: Bilingual;
/** Devanagari proper name, where it differs usefully from `name.hi`. */
nameSanskrit?: string;
/**
* Roster cross-link to per-deity content (aarti/chalisa/…). `null` when the
* observance is not tied to a single roster deity. Every Ekādaśī → `vishnu`.
*/
deity: Deity | null;
/** One- or two-sentence significance / phala (what observing it grants). */
significance: Bilingual;
/**
* The vrat-kathā / origin narrative, as a researched sense-summary (never a
* copied translation). Absent on the few phala-stuti observances the source
* text gives no story for (Aparā, Kāmikā, Pāpāṅkuśā Ekādaśī).
*/
story?: Bilingual;
/**
* The **scriptural origin** of the observance/story — the Purāṇa + narrator
* frame (e.g. "Padma Purāṇa, narrated by Kṛṣṇa to Yudhiṣṭhira"). This is
* content (like a sūkta's `vedicSource`), NOT a digitization source. Omitted
* where no single text is confidently attributable.
*/
storySource?: Bilingual;
/** Ships provisional until a human pass signs off the story details. */
reviewPending?: boolean;
/** The fortnight the observance falls in (ekadashi; some tithi-vrats). */
paksha?: Paksha;
/** The lunar month, as a display name (ekadashi; some festivals). */
month?: Bilingual;
/** The tithi the observance falls on (tithi-vrat; some festivals). */
tithi?: Bilingual;
/** How often it recurs, described in words — never computed (tithi-vrat). */
recurrence?: Bilingual;
/**
* `true` for the two Ekādaśīs that occur ONLY in the intercalary Adhika
* (Puruṣottama) māsa — Padminī (śukla) and Paramā (kṛṣṇa). They are over and
* above the 24 regular Ekādaśīs and appear only once every ~3 years.
*/
isAdhikaMaasa?: boolean;
kathaSlug?: KathaSlug;
pujaSlug?: PujaSlug;
mantraSlugs?: readonly MantraSlug[];
suktaSlugs?: readonly SuktaSlug[];
stotraSlugs?: readonly StotraSlug[];
/** A scripture slug ('bhagavad-geeta') — e.g. Mokṣadā ↔ Gītā Jayantī. */
scriptureSlug?: string;
}
//# sourceMappingURL=types.d.ts.map