From b6ee6e0331a5c617148fc06cd16761d223a85568 Mon Sep 17 00:00:00 2001 From: Aric Camarata Date: Thu, 28 May 2026 13:54:59 -0400 Subject: [PATCH] chore: bump to v1.0.1 - Flatten exports map to ADR-015 standard - Add coverage script (c8) - Migrate CI to corepack enable --- .claude/AGENTS.md | 45 ++++++++++++++++++++++++++++++++++++++++++++- CHANGELOG.md | 21 +++++++++++++++++++++ package.json | 22 ++++++++++------------ 3 files changed, 75 insertions(+), 13 deletions(-) mode change 120000 => 100644 .claude/AGENTS.md create mode 100644 CHANGELOG.md diff --git a/.claude/AGENTS.md b/.claude/AGENTS.md deleted file mode 120000 index 681311e..0000000 --- a/.claude/AGENTS.md +++ /dev/null @@ -1 +0,0 @@ -CLAUDE.md \ No newline at end of file diff --git a/.claude/AGENTS.md b/.claude/AGENTS.md new file mode 100644 index 0000000..cac6df6 --- /dev/null +++ b/.claude/AGENTS.md @@ -0,0 +1,44 @@ +# date-fns-hijri — PRI (Per-Repo Instructions) + +**PPI:** `~/Sites/acamarata/.claude/CLAUDE.md` + +## What This Is + +date-fns-style utility functions for Hijri calendar operations. Wraps hijri-core with a +functional API for converting, formatting, and validating Hijri dates. Each function is +a pure, stateless utility. No classes. No configuration object. The API mirrors date-fns +conventions so the learning curve is minimal for consumers already using that ecosystem. + +**npm:** `date-fns-hijri@1.0.0` +**Language:** TypeScript +**License:** MIT + +## Key Technical Details + +- Peer dependencies: `hijri-core@^1.0.0` +- Note: `date-fns` itself is NOT a peer dep — functions accept plain `Date` objects and work with any date library +- Key exports: `toHijriDate`, `fromHijriDate`, `formatHijriDate`, `addHijriMonths`, `getHijriMonthName` +- Options argument on every function selects calendar system (UAQ default, FCNA optional) +- Returns `null` for out-of-range inputs rather than throwing (conversion functions) +- Dual CJS/ESM build via tsup +- Zero runtime dependencies (peer deps are provided by the consumer) + +## Architecture + +`src/index.ts` exports all public functions. `src/types.ts` holds shared types and +interfaces. 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 standalone functional utility package, not a plugin — it works with any date library +- hijri-core provides the actual calendar engine — this package is a thin functional adapter +- Changes to hijri-core's API may require updates here +- No dependency on date-fns itself — the "date-fns-style" refers to API convention only diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..6c44b81 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,21 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [1.0.1] - 2026-05-28 + +### Changed +- Flatten exports map to ADR-015 standard (import/require/types at top level) +- Add "./package.json" export condition +- Add coverage script (c8 --reporter=lcov) +- Migrate CI from pnpm/action-setup to corepack enable + +## [1.0.0] - 2026-05-28 + +### Added +- Initial release diff --git a/package.json b/package.json index c687e5b..d54dec9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "date-fns-hijri", - "version": "1.0.0", + "version": "1.0.1", "description": "date-fns-style utility functions for Hijri calendar operations. Wraps hijri-core with a functional API for converting, formatting, and validating Hijri dates.", "author": "Aric Camarata", "license": "MIT", @@ -9,15 +9,11 @@ "types": "./dist/index.d.ts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.ts", - "default": "./dist/index.cjs" - } - } + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + }, + "./package.json": "./package.json" }, "sideEffects": false, "files": [ @@ -41,7 +37,8 @@ "lint": "eslint src/", "format": "prettier --write src/", "format:check": "prettier --check src/", - "prepublishOnly": "tsup" + "prepublishOnly": "tsup", + "coverage": "c8 --reporter=lcov --reporter=text node --test" }, "keywords": [ "date-fns", @@ -80,5 +77,6 @@ "homepage": "https://github.com/acamarata/date-fns-hijri#readme", "bugs": { "url": "https://github.com/acamarata/date-fns-hijri/issues" - } + }, + "type": "module" }