Commit graph

32 commits

Author SHA1 Message Date
Aric Camarata
515c554763 chore: stop tracking generated coverage artifacts 2026-06-13 10:27:12 -04:00
Aric Camarata
1f201ac895 build: use prepack hook so npm pack/publish reliably emit index.d.mts 2026-06-13 10:11:20 -04:00
Aric Camarata
5bd50384f2 chore: bump to v1.0.3 2026-06-10 16:50:58 -04:00
Aric Camarata
8e5b35c3a3 chore: update hijri-core to 1.0.3 2026-06-10 16:50:22 -04:00
Aric Camarata
4dd246f27a fix: build Dates via Date.UTC for hijri-core's UTC-day contract
HijriCalendar.toHijri() previously used new Date(y, m, d) (local-time
constructor). Under hijri-core's new UTC-day contract the engine reads
the UTC calendar day, so on east-of-UTC hosts (e.g. UTC+5) the local
midnight falls on the previous UTC date, producing a one-day-off Hijri
result.

Fix: use Date.UTC(y, m, d) so PlainDate calendar fields land in the
Date's UTC components, matching what hijri-core reads.

Lock-step dependency: this fix requires the unreleased hijri-core change
on fix/utc-day-boundary (commit 3419378). Both packages will be released
together per ADR-013.

Tests: round-trip regression added (2025-03-01 = 1 Ramadan 1446 AH);
all 37 ESM + 9 CJS tests pass at TZ=UTC, TZ=America/New_York,
TZ=Pacific/Auckland.
2026-06-10 16:35:38 -04:00
Aric Camarata
70bd956179 ci: format all files with prettier to fix format:check 2026-05-31 08:50:45 -04:00
Aric Camarata
40478b6f7b ci: fix eslint - add parserOptions.project for typed linting rules 2026-05-31 08:49:46 -04:00
Aric Camarata
cae2726766 ci: fix eslint flat config - add files pattern to match TS files in src/ 2026-05-31 08:48:45 -04:00
Aric Camarata
e6fd9d14df ci: fix eslint - add @typescript-eslint/parser and eslint-plugin as explicit devDeps 2026-05-31 08:47:02 -04:00
Aric Camarata
977d4323eb chore: bump to v1.0.2 2026-05-30 19:21:29 -04:00
Aric Camarata
c4ee5efe96 chore: P1 standardization — finalize src/wiki/ci 2026-05-30 18:48:59 -04:00
Aric Camarata
bc8f70ba0b docs: refresh TypeDoc API output (T-E8-03 QA-A verify) 2026-05-30 17:48:47 -04:00
Aric Camarata
077861c7dc 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:59 -04:00
Aric Camarata
cdcede1c58 chore: adopt shared config packages (tsconfig, eslint, prettier) 2026-05-30 15:12:16 -04:00
Aric Camarata
1dea36eda8 ci: corepack before setup-node, scope prettier to src/, emit d.mts 2026-05-29 20:05:46 -04:00
Aric Camarata
250dda20d4 chore: E6 polish wiki content + ADR-015 CI updates (P1) 2026-05-29 07:15:50 -04:00
Aric Camarata
2289dd3718 chore: untrack AGENTS.md (AI working memory, not source code) 2026-05-29 06:36:40 -04:00
Aric Camarata
908e48f9f7 chore: bump to v1.0.1
- Flatten exports map to ADR-015 standard
- Add coverage script (c8)
- Migrate CI to corepack enable
2026-05-28 13:55:03 -04:00
Aric Camarata
3492f1f4b2 chore(config): add AGENTS.md for dual-harness parity 2026-05-25 15:51:25 -04:00
Aric Camarata
e2ca6468cb chore: align repository structure with portfolio documentation standards 2026-05-15 15:27:55 -04:00
Aric Camarata
eb5a9fe00d Add GitHub Sponsors funding config 2026-03-28 18:19:04 -04:00
Aric Camarata
f0e2985849 style: fix prettier table formatting in wiki 2026-03-08 17:30:55 -04:00
Aric Camarata
69b08f5971 style: replace em dashes with colons in docs 2026-03-08 17:28:04 -04:00
Aric Camarata
9e61d6e594 docs: add Architecture section to README 2026-03-08 17:10:48 -04:00
Aric Camarata
aace8d097a ci: let pnpm/action-setup read version from packageManager field 2026-03-08 16:52:31 -04:00
Aric Camarata
937c4296f7 docs: add Acknowledgments section to README 2026-03-08 16:46:28 -04:00
Aric Camarata
ebe5c05bda ci: pin pnpm to version 10 in all CI jobs
Also enable sourcemap: true in tsup config
2026-03-08 16:37:46 -04:00
Aric Camarata
41956c0dc4 refactor: code quality improvements and Temporal Protocol compliance
- Replace O(n) while-loops in dateAdd() with O(1) modular arithmetic
- Implement overflow option handling in dateFromFields, yearMonthFromFields, monthDayFromFields
- Add fields() method per Temporal Calendar Protocol
- Extract shared borrow logic from dateUntil() into borrowHijriDiff helper
- Replace magic number 1444 with REFERENCE_YEAR constant
- Convert test suites to node:test runner with describe/it blocks
- Add tests for dateUntil, dateAdd with days/weeks, overflow reject/constrain, fields(), yearMonthFromFields, monthDayFromFields
- Add ESLint + Prettier with typescript-eslint config
- Add lint job to CI workflow
- Add noImplicitReturns and noFallthroughCasesInSwitch to tsconfig
- Disable unused sourcemap generation in tsup
- Update .editorconfig to include .mts and .cts extensions
- Add missing AI agent dirs to .gitignore
2026-03-08 11:37:22 -04:00
Aric Camarata
997ce2a097 chore: add forceConsistentCasingInFileNames to tsconfig 2026-02-25 15:25:32 -05:00
Aric Camarata
a20f4d62c4 chore: CR/QA polish for v1.0.0 release
Fix documentation style (no em dashes). Update hijri-core devDep
from file: path to ^1.0.0. Add wiki-sync workflow permissions.
Tighten CalendarEngine interface usage; correct month range docs
to 1318-1500 AH throughout.
2026-02-25 15:11:28 -05:00
Aric Camarata
08793ca153 chore: clear .npmrc to remove pnpm-only key that warns on npm publish 2026-02-25 15:09:09 -05:00
Aric Camarata
51e07a65b3 feat: initial release of temporal-hijri v1.0.0
Temporal Calendar Protocol implementation for Hijri calendar via hijri-core.
Provides HijriCalendar base class, UaqCalendar (UAQ engine), FcnaCalendar
(FCNA engine), and convenience singletons uaqCalendar/fcnaCalendar.

Calendar protocol: year, month, monthCode, day, daysInMonth, daysInYear,
monthsInYear, inLeapYear, dayOfWeek, dayOfYear, weekOfYear, daysInWeek,
dateFromFields, yearMonthFromFields, monthDayFromFields, dateAdd,
dateUntil, mergeFields.

dateAdd applies year/month increments in Hijri coordinate space (correct
semantics for variable-length lunar months), then applies days/weeks in
ISO space. Day-of-month clamped on month boundary changes. 18 ESM + 8 CJS
tests passing. Dual CJS/ESM build.
2026-02-25 14:17:27 -05:00