diff --git a/.claude/AGENTS.md b/.claude/AGENTS.md deleted file mode 100644 index f6ac9d4..0000000 --- a/.claude/AGENTS.md +++ /dev/null @@ -1,46 +0,0 @@ -# moment-hijri-plus — PRI (Per-Repo Instructions) - -**PPI:** `~/Sites/acamarata/.claude/CLAUDE.md` - -## What This Is - -Moment.js plugin for Hijri calendar conversion and formatting. Delegates all calendar -logic to hijri-core, a zero-dependency Hijri engine with pluggable calendar support. -Supports Umm al-Qura and FCNA/ISNA calendars. Installed via a function call rather than -`moment.extend()` — call `installHijri(moment)` once at startup. - -**npm:** `moment-hijri-plus@1.0.0` -**Language:** TypeScript -**License:** MIT - -## Key Technical Details - -- Peer dependencies: `moment@^2.0.0`, `hijri-core@^1.0.0` -- Plugin pattern: `installHijri(moment)` called once at startup (not moment.fn.extend) -- Instance methods added: `toHijri()`, `hijriYear()`, `hijriMonth()`, `hijriDay()`, `isValidHijri()`, `formatHijri()` -- Static factory added: `moment.fromHijri(hy, hm, hd, options?)` -- `formatHijri()` Hijri tokens: `iD`, `iMMMM`, `iYYYY`, `iM`, `iDD`, `iMM` — non-Hijri tokens pass through to moment.format() -- Out-of-range inputs return `null` (instance methods) or empty string (formatHijri) -- `fromHijri()` throws if the date is invalid or out of range -- Dual CJS/ESM build via tsup -- Zero runtime dependencies (peer deps are provided by the consumer) - -## Architecture - -`src/index.ts` exports the default `installHijri` function and shared types. Built to -`dist/` (gitignored) with `.cjs` and `.mjs` outputs plus dual type declarations. - -## Commands - -- `pnpm install` — install dev deps -- `pnpm build` — tsup build -- `pnpm test` — run test.mjs + test-cjs.cjs -- `pnpm run typecheck` — tsc --noEmit - -## Important Notes - -- This is a plugin for Moment.js — call `installHijri(moment)` once before using any methods -- hijri-core provides the actual calendar engine — this package is a thin adapter -- Changes to hijri-core's API may require updates here -- moment is a peer dep — the consumer's installed moment instance is used (no bundled copy) -- Moment.js is in maintenance mode; this package targets existing moment users, not new projects