diff --git a/.github/wiki/CODE_OF_CONDUCT.md b/.github/wiki/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..c880c1a --- /dev/null +++ b/.github/wiki/CODE_OF_CONDUCT.md @@ -0,0 +1,34 @@ +# Code of Conduct + +## Summary + +Be direct, be respectful, and focus on the work. + +## Standards + +Constructive behavior: + +- Technical criticism aimed at code and ideas, not people +- Clear and specific feedback with examples where possible +- Acknowledging when you are wrong or do not know something +- Staying on topic in issues and pull requests + +Unacceptable behavior: + +- Personal attacks, insults, or harassment +- Sustained off-topic disruption +- Publishing private information without consent + +## Scope + +This applies to all project spaces: GitHub issues, pull requests, discussions, and any other venue where project work happens. + +## Enforcement + +The project maintainer handles violations. Contact: aric.camarata@gmail.com. + +Reports are reviewed promptly. Responses range from a private note to a permanent ban, depending on severity and history. + +## Attribution + +This code of conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.1. diff --git a/.github/wiki/Contributing.md b/.github/wiki/Contributing.md new file mode 100644 index 0000000..9a7d782 --- /dev/null +++ b/.github/wiki/Contributing.md @@ -0,0 +1,49 @@ +# Contributing + +## Prerequisites + +- Node.js 20 or later +- pnpm (enabled via corepack: `corepack enable`) + +## Setup + +```sh +git clone https://github.com/acamarata/hijri-core.git +cd hijri-core +pnpm install +``` + +## Development + +```sh +pnpm build # compile TypeScript +pnpm test # build + run test suite +pnpm run typecheck # type-check without emitting +pnpm run lint # ESLint +pnpm run format # Prettier format +``` + +## Conversion Engines + +The package ships two engines: + +- **UAQ** (Umm al-Qura): table-based, identical to the official Saudi calendar +- **FCNA**: an algorithmic engine for Fiqh Council of North America calculations + +When modifying either engine, cross-validate against the reference tables in the test suite. The UAQ table covers 1318-1500 AH; the FCNA engine is unbounded but less authoritative outside that range. + +## Downstream Packages + +hijri-core is the foundation for several thin wrapper packages: + +- `luxon-hijri`, `date-fns-hijri`, `dayjs-hijri-plus`, `moment-hijri-plus`, `temporal-hijri` (JS) +- `hijri_core` (Dart) + +Breaking changes here require coordinated updates across all downstream packages. When changing the public API, note which downstream packages are affected in your PR description. + +## Pull Requests + +- One logical change per PR +- Include tests with cross-validation against known dates +- Update `CHANGELOG.md` under `[Unreleased]` +- Do not bump the version number diff --git a/.github/wiki/SECURITY.md b/.github/wiki/SECURITY.md new file mode 100644 index 0000000..08066e8 --- /dev/null +++ b/.github/wiki/SECURITY.md @@ -0,0 +1,26 @@ +# Security Policy + +## Supported Versions + +| Version | Supported | +| --- | --- | +| 1.x | Yes | + +## Reporting a Vulnerability + +Do not open a public GitHub issue for security vulnerabilities. + +Email: aric.camarata@gmail.com + +Include: + +- A description of the vulnerability +- Steps to reproduce +- Potential impact +- Any suggested fix, if you have one + +You will receive an acknowledgment within 48 hours and a resolution timeline within 7 days. + +## Scope + +This package is a pure computation library. It performs no network requests, reads no files, and holds no credentials. All calendar conversion logic is deterministic arithmetic. The primary security concern would be a supply-chain compromise of the npm package. diff --git a/.github/wiki/_Footer.md b/.github/wiki/_Footer.md new file mode 100644 index 0000000..a0a95fd --- /dev/null +++ b/.github/wiki/_Footer.md @@ -0,0 +1 @@ +[npm](https://www.npmjs.com/package/hijri-core) · [GitHub](https://github.com/acamarata/hijri-core) · [Changelog](https://github.com/acamarata/hijri-core/blob/main/CHANGELOG.md) · MIT License diff --git a/.github/wiki/_Sidebar.md b/.github/wiki/_Sidebar.md new file mode 100644 index 0000000..06219b9 --- /dev/null +++ b/.github/wiki/_Sidebar.md @@ -0,0 +1,17 @@ +## hijri-core + +**[Home](Home)** + +**Reference** +- [API Reference](API-Reference) +- [Architecture](Architecture) + +**Contributing** +- [Contributing](Contributing) +- [Code of Conduct](CODE_OF_CONDUCT) +- [Security](SECURITY) + +**Links** +- [npm](https://www.npmjs.com/package/hijri-core) +- [GitHub](https://github.com/acamarata/hijri-core) +- [Changelog](https://github.com/acamarata/hijri-core/blob/main/CHANGELOG.md)