Commit graph

15 commits

Author SHA1 Message Date
Aric Camarata
a115ecc2a2 chore: P1 final polish — type accuracy, AGENTS.md sync, E5/E6 refinements 2026-05-30 18:40:41 -04:00
Aric Camarata
4b1a1fc835 docs: refresh TypeDoc API output (T-E8-03 QA-A verify) 2026-05-30 17:48:47 -04:00
Aric Camarata
e663b343ac docs: add TypeDoc API generation (typedoc@0.28.19 + typedoc-plugin-markdown@4.11.0)
Add typedoc and typedoc-plugin-markdown as devDependencies. Add typedoc.json config
targeting src/index.ts with markdown output to .github/wiki/api. Add docs script to
package.json. Generate initial API reference pages.

Part of T-E8-03 — TypeDoc automation for all 12 JS/TS packages.
2026-05-30 16:41:58 -04:00
Aric Camarata
247420ad23 ci(luxon-hijri): corepack, scope prettier to src/, emit d.mts 2026-05-29 20:07:36 -04:00
Aric Camarata
443a096292 docs: add quickstart, advanced guide, examples, and cross-validation test for luxon-hijri 2026-05-28 14:14:23 -04:00
Aric Camarata
7f09544fbc docs(e6): portfolio polish — README trim, CHANGELOG, wiki pages
- Trim README to ≤80 lines with wiki link for full docs
- Add CHANGELOG.md documenting v3.0.0 breaking change (peer-dep migration)
- Add .github/wiki pages: _Sidebar, _Footer, Contributing, SECURITY, CODE_OF_CONDUCT
2026-05-28 14:00:16 -04:00
Aric Camarata
10c2bd60ee chore(config): add AGENTS.md for dual-harness parity 2026-05-25 15:51:09 -04:00
Aric Camarata
54af913f0b chore: align repository structure with portfolio documentation standards 2026-05-15 15:27:03 -04:00
Aric Camarata
fb3f599a4e Add GitHub Sponsors funding config 2026-03-28 18:18:49 -04:00
Aric Camarata
344525a7af ci: let pnpm/action-setup read version from packageManager field 2026-03-08 16:52:28 -04:00
Aric Camarata
124297bc60 ci: pin pnpm to version 10 in all CI jobs
Also enable sourcemap: true in tsup config
2026-03-08 16:37:35 -04:00
Aric Camarata
cc620328a0 refactor: code quality improvements across the board 2026-03-08 11:42:29 -04:00
Aric Camarata
20dc36541b feat: v2.1.0 - delegate engine to hijri-core
Extract conversion logic to hijri-core. All Hijri algorithms now
live in that package and are re-exported with identical signatures.
Fix weekday, era, and time token bugs. Dual CJS/ESM build. Full
test suite. CI and wiki workflows. Zero breaking API changes.
2026-02-25 15:26:28 -05:00
Aric Camarata
8b734dd777 ci: pin pnpm via packageManager field, drop hardcoded version
pnpm/action-setup@v4 with version:10 resolved to pnpm@10.30.2, which
returned 403 from npm registry on release day. Switch to reading the
version from the packageManager field in package.json so CI uses the
same exact pnpm version as local development.
2026-02-25 14:00:19 -05:00
Aric Camarata
1ab6463184 feat: v2.0.0 — FCNA calendar, dual ESM/CJS build, weekday bug fix, full test suite
Core fixes:
- Fix critical weekday bug: iE/iEEE/iEEEE tokens used Hijri year as Gregorian,
  returning weekdays ~580 years wrong. Now converts via toGregorian() first.
- Fix era tokens iooo/ioooo: were returning Gregorian era, now always return "AH".
- Fix toGregorian timezone sensitivity: was using DateTime.local(), now DateTime.utc().
- Fix format token regex: word-boundary approach caused partial matches.

New: FCNA/ISNA calendar support:
- toHijri, toGregorian, isValidHijriDate now accept { calendar: 'fcna' } option.
- FCNA criterion: conjunction before 12:00 UTC → month starts D+1, else D+2.
- New moon times from Meeus Ch.49 full formula (accurate to within minutes, 1000–3000 CE).
- Works for all Hijri years, not just the 1318–1500 UAQ table range.
- Anchor: UAQ table for in-range years, Islamic epoch estimate for out-of-range.
- Exports: CalendarSystem, ConversionOptions types.

Build and infrastructure:
- pnpm replaces npm; tsup replaces tsc for dual CJS/ESM output.
- Exports map with types-first conditional exports for import/require.
- Binary search O(log 183) replaces linear O(n) scan in all three functions.
- Luxon upgraded from ^2.5.2 to ^3.5.0; TypeScript from ^4 to ^5.5.
- CI: Node 20/22/24 matrix, typecheck, and pack-check jobs.
- GitHub Wiki: four pages synced via Actions on push.
- Test suite: 81 ESM tests + 24 CJS tests, verified against ISNA 2023–2025 calendars.
- Exports hwLong, hwShort, hwNumeric weekday arrays.

Breaking changes:
- Dual ESM/CJS exports map (CJS consumers: no change via main field).
- HijriYearRecord replaces hDates interface name.
- Luxon peer dep bumped to ^3.5.0.
- Node >=20 required.
2026-02-25 13:25:11 -05:00