Commit graph

35 commits

Author SHA1 Message Date
Aric Camarata
57dd684f4a chore: bump to v3.0.3 2026-06-13 11:52:27 -04:00
Aric Camarata
56fdd8d14d build: use prepack hook so npm pack/publish reliably emit index.d.mts 2026-06-13 10:11:20 -04:00
Aric Camarata
ab7c5d814e chore: bump to v3.0.2 2026-06-10 16:50:11 -04:00
Aric Camarata
8990001e17 chore: update hijri-core to 1.0.3 2026-06-10 16:49:20 -04:00
Aric Camarata
eea0bc808d test: align day-boundary tests and docs with hijri-core's UTC-day contract
Convert all LOCAL-noon Date anchors (new Date(y, m, d, 12)) to UTC-explicit
anchors (new Date(Date.UTC(y, m-1, d))) in test.mjs and test-cjs.cjs.
Add UAQ default-engine round-trip regression suite (5 cases).
Extend FCNA round-trips; update vitest header comment.

README: add "Day boundaries and time zones" section explaining the UTC-day
contract, the correct pattern for zone-aware Luxon DateTimes, and ISO-string
parsing behaviour. Quick Start examples updated to use Date.UTC.

CHANGELOG: document inherited UTC-day fix under [Unreleased].

Lock-step dependency: requires hijri-core fix (commit 3419378,
branch fix/utc-day-boundary). Both packages release together per ADR-013.

Verified: TZ={UTC,America/New_York,Pacific/Auckland} × {test.mjs,
test-cjs.cjs, test-crossval.mjs, vitest} — all pass (88+26+120+15 tests).
2026-06-10 16:38:29 -04:00
Aric Camarata
1e6fdfa407 ci: fix eslint parser devDeps, typed-linting config, coverage ignores, prettier format 2026-05-31 08:48:01 -04:00
Aric Camarata
f711154dab chore: bump to v3.0.1 2026-05-30 19:12:02 -04:00
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
19dc465d7f chore: adopt shared config packages (tsconfig, eslint, prettier) 2026-05-30 15:08:47 -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
19f03daddd chore: untrack AGENTS.md (AI working memory, not source code) 2026-05-29 06:36:41 -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
fd246b7a99 chore: ADR-007 peer-dep migration to luxon v3, CHANGELOG update (v3.0.0 BREAKING) 2026-05-28 13:46:05 -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
361046a9b5 docs: add Acknowledgments section to README 2026-03-08 16:46:06 -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
3332c912f1 chore: clear .npmrc to remove pnpm-only key that warns on npm publish 2026-02-25 15:09:10 -05:00
Aric Camarata
30afd3c8a7 feat: v2.1.0 — delegate engine logic to hijri-core
All Hijri conversion logic (UAQ table, FCNA algorithm, month/weekday
names, isValidHijriDate) now lives in hijri-core and is re-exported
from this package with identical signatures. Zero breaking changes:
the public API surface, type exports, and behavior are unchanged.

src/fcna.ts removed — FCNA engine is in hijri-core.
src/hDates.ts, hMonths.ts, hWeekdays.ts, utils.ts, toHijri.ts,
toGregorian.ts all rewritten as thin re-exports or single-line wrappers.

hijri-core added as a runtime dependency.
2026-02-25 14:14:29 -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
uny-dev
ba66326b98 Add prepare script and files field to include build artifacts 2025-03-19 09:29:28 -04:00
uny-dev
4530b3208a Add prepare script and files field to include build artifacts 2025-03-19 09:29:04 -04:00
uny-dev
64b0c14d7e Updated package.json repository field for NPM 2025-03-18 06:13:39 -04:00
3d402f6a27
Create LICENSE 2025-03-07 09:49:39 -05:00
82668e6b6b fixed for build 2023-12-01 22:53:29 +07:00
f3203d2d2b added types declarations 2023-12-01 22:41:48 +07:00
612aa63a78 initial commit 2023-12-01 22:10:54 +07:00