From 077861c7dc33e5562fb75c1defbee0f2db4e2f2a Mon Sep 17 00:00:00 2001 From: Aric Camarata Date: Sat, 30 May 2026 16:41:59 -0400 Subject: [PATCH] docs: add TypeDoc API generation (typedoc@0.28.19 + typedoc-plugin-markdown@4.11.0) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- .github/wiki/api/README.md | 22 + .github/wiki/api/classes/FcnaCalendar.md | 649 ++++++++++++++++++ .github/wiki/api/classes/HijriCalendar.md | 568 +++++++++++++++ .github/wiki/api/classes/UaqCalendar.md | 647 +++++++++++++++++ .github/wiki/api/interfaces/CalendarEngine.md | 111 +++ .../wiki/api/interfaces/ConversionOptions.md | 17 + .github/wiki/api/interfaces/HijriDate.md | 33 + .github/wiki/api/variables/fcnaCalendar.md | 11 + .github/wiki/api/variables/uaqCalendar.md | 11 + package.json | 6 +- pnpm-lock.yaml | 462 ++++++++++++- typedoc.json | 10 + 12 files changed, 2542 insertions(+), 5 deletions(-) create mode 100644 .github/wiki/api/README.md create mode 100644 .github/wiki/api/classes/FcnaCalendar.md create mode 100644 .github/wiki/api/classes/HijriCalendar.md create mode 100644 .github/wiki/api/classes/UaqCalendar.md create mode 100644 .github/wiki/api/interfaces/CalendarEngine.md create mode 100644 .github/wiki/api/interfaces/ConversionOptions.md create mode 100644 .github/wiki/api/interfaces/HijriDate.md create mode 100644 .github/wiki/api/variables/fcnaCalendar.md create mode 100644 .github/wiki/api/variables/uaqCalendar.md create mode 100644 typedoc.json diff --git a/.github/wiki/api/README.md b/.github/wiki/api/README.md new file mode 100644 index 0000000..5a43f96 --- /dev/null +++ b/.github/wiki/api/README.md @@ -0,0 +1,22 @@ +**temporal-hijri v1.0.1** + +*** + +# temporal-hijri v1.0.1 + +## Classes + +- [FcnaCalendar](classes/FcnaCalendar.md) +- [HijriCalendar](classes/HijriCalendar.md) +- [UaqCalendar](classes/UaqCalendar.md) + +## Interfaces + +- [CalendarEngine](interfaces/CalendarEngine.md) +- [ConversionOptions](interfaces/ConversionOptions.md) +- [HijriDate](interfaces/HijriDate.md) + +## Variables + +- [fcnaCalendar](variables/fcnaCalendar.md) +- [uaqCalendar](variables/uaqCalendar.md) diff --git a/.github/wiki/api/classes/FcnaCalendar.md b/.github/wiki/api/classes/FcnaCalendar.md new file mode 100644 index 0000000..cdf484c --- /dev/null +++ b/.github/wiki/api/classes/FcnaCalendar.md @@ -0,0 +1,649 @@ +[**temporal-hijri v1.0.1**](../README.md) + +*** + +[temporal-hijri](../README.md) / FcnaCalendar + +# Class: FcnaCalendar + +Defined in: [src/calendars/FcnaCalendar.ts:18](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/FcnaCalendar.ts#L18) + +Temporal calendar implementation for the FCNA/ISNA calendar. + +The Fiqh Council of North America (FCNA) calendar, also used by the Islamic +Society of North America (ISNA), determines month starts through astronomical +calculation: a new month begins the day after the conjunction (new moon) if +that conjunction occurs before 12:00 noon UTC, or two days after if at or +after noon. This criterion enables global date-setting without local moon +sighting, making it popular for diaspora Muslim communities in North America +and Europe. + +Calendar engine: hijri-core FCNA (Meeus Chapter 49 calculations). +Calendar ID: "hijri-fcna" + +## Extends + +- [`HijriCalendar`](HijriCalendar.md) + +## Constructors + +### Constructor + +> **new FcnaCalendar**(): `FcnaCalendar` + +Defined in: [src/calendars/FcnaCalendar.ts:19](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/FcnaCalendar.ts#L19) + +#### Returns + +`FcnaCalendar` + +#### Overrides + +[`HijriCalendar`](HijriCalendar.md).[`constructor`](HijriCalendar.md#constructor) + +## Properties + +### id + +> `readonly` **id**: `string` + +Defined in: [src/calendars/HijriCalendar.ts:59](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L59) + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`id`](HijriCalendar.md#id) + +## Methods + +### dateAdd() + +> **dateAdd**(`date`, `duration`, `_options?`): `PlainDate` + +Defined in: [src/calendars/HijriCalendar.ts:346](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L346) + +Add a duration to a Hijri date. + +Year and month additions are handled in Hijri space to preserve calendar +semantics (e.g., adding one month to 1 Ramadan yields 1 Shawwal, not a +fixed 30-day offset). Day and week additions are then applied in ISO space +so that they always represent exact day counts. + +Month normalization uses O(1) modular arithmetic instead of iterative loops. +When the day-of-month exceeds the target month's length after a Hijri-space +adjustment, it is clamped to the last valid day of that month. + +#### Parameters + +##### date + +`PlainDate` + +##### duration + +`Duration` + +##### \_options? + +###### overflow? + +`"constrain"` \| `"reject"` + +#### Returns + +`PlainDate` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`dateAdd`](HijriCalendar.md#dateadd) + +*** + +### dateFromFields() + +> **dateFromFields**(`fields`, `options?`): `PlainDate` + +Defined in: [src/calendars/HijriCalendar.ts:279](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L279) + +#### Parameters + +##### fields + +###### day + +`number` + +###### month + +`number` + +###### year + +`number` + +##### options? + +###### overflow? + +`"constrain"` \| `"reject"` + +#### Returns + +`PlainDate` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`dateFromFields`](HijriCalendar.md#datefromfields) + +*** + +### dateUntil() + +> **dateUntil**(`one`, `two`, `options?`): `Duration` + +Defined in: [src/calendars/HijriCalendar.ts:384](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L384) + +Compute the difference between two Hijri dates. + +For simplicity and correctness across variable-length Hijri months, this +delegates to the underlying ISO PlainDate difference when the largest unit +is days or weeks. Year/month differences require a Hijri-space calculation. + +#### Parameters + +##### one + +`PlainDate` + +##### two + +`PlainDate` + +##### options? + +###### largestUnit? + +`DateUnit` + +#### Returns + +`Duration` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`dateUntil`](HijriCalendar.md#dateuntil) + +*** + +### day() + +> **day**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:169](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L169) + +Returns the day of the Hijri month (1-29 or 1-30). + +#### Parameters + +##### date + +`PlainDate` + +A Temporal.PlainDate with ISO (Gregorian) coordinates. + +#### Returns + +`number` + +Day of month within the Hijri calendar. + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`day`](HijriCalendar.md#day) + +*** + +### dayOfWeek() + +> **dayOfWeek**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:234](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L234) + +ISO weekday: 1 = Monday, 7 = Sunday. +PlainDate.dayOfWeek on an ISO-calendar date already gives ISO weekday, +so no conversion is needed. + +#### Parameters + +##### date + +`PlainDate` + +#### Returns + +`number` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`dayOfWeek`](HijriCalendar.md#dayofweek) + +*** + +### dayOfYear() + +> **dayOfYear**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:242](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L242) + +Day within the Hijri year. Accumulates full months before the current one, +then adds the day-of-month offset. + +#### Parameters + +##### date + +`PlainDate` + +#### Returns + +`number` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`dayOfYear`](HijriCalendar.md#dayofyear) + +*** + +### daysInMonth() + +> **daysInMonth**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:184](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L184) + +Returns the number of days in the Hijri month containing the given date. + +Hijri months alternate between 29 and 30 days, but the exact pattern +differs by calendar system (UAQ uses fixed tables; FCNA uses calculation). + +#### Parameters + +##### date + +`PlainDate` + +A Temporal.PlainDate with ISO (Gregorian) coordinates. + +#### Returns + +`number` + +29 or 30. + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`daysInMonth`](HijriCalendar.md#daysinmonth) + +*** + +### daysInWeek() + +> **daysInWeek**(`_date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:263](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L263) + +Returns the number of days in a week. + +Always 7. Required by the Temporal Calendar Protocol. + +#### Parameters + +##### \_date + +`PlainDate` + +#### Returns + +`number` + +Always 7. + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`daysInWeek`](HijriCalendar.md#daysinweek) + +*** + +### daysInYear() + +> **daysInYear**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:193](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L193) + +Sum all 12 month lengths for the Hijri year. Standard lunar years are 354 +days; leap years (with an added day in Dhul-Hijja) are 355 days. + +#### Parameters + +##### date + +`PlainDate` + +#### Returns + +`number` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`daysInYear`](HijriCalendar.md#daysinyear) + +*** + +### fields() + +> **fields**(`fields`): `string`[] + +Defined in: [src/calendars/HijriCalendar.ts:273](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L273) + +Return the list of fields that the calendar adds to a Temporal object. +Non-era calendars return the input array unchanged. + +#### Parameters + +##### fields + +`string`[] + +#### Returns + +`string`[] + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`fields`](HijriCalendar.md#fields) + +*** + +### inLeapYear() + +> **inLeapYear**(`date`): `boolean` + +Defined in: [src/calendars/HijriCalendar.ts:223](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L223) + +Returns whether the Hijri year is a leap year (355 days). + +Standard Hijri years have 354 days. A leap year adds one day to +Dhul-Hijja (month 12), making it 355 days total. + +#### Parameters + +##### date + +`PlainDate` + +A Temporal.PlainDate with ISO (Gregorian) coordinates. + +#### Returns + +`boolean` + +`true` if the year has 355 days. + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`inLeapYear`](HijriCalendar.md#inleapyear) + +*** + +### mergeFields() + +> **mergeFields**(`fields`, `additionalFields`): `Record`\<`string`, `unknown`\> + +Defined in: [src/calendars/HijriCalendar.ts:414](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L414) + +#### Parameters + +##### fields + +`Record`\<`string`, `unknown`\> + +##### additionalFields + +`Record`\<`string`, `unknown`\> + +#### Returns + +`Record`\<`string`, `unknown`\> + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`mergeFields`](HijriCalendar.md#mergefields) + +*** + +### month() + +> **month**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:149](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L149) + +Returns the Hijri month (1-12) for the given ISO date. + +#### Parameters + +##### date + +`PlainDate` + +A Temporal.PlainDate with ISO (Gregorian) coordinates. + +#### Returns + +`number` + +Month number 1 (Muharram) through 12 (Dhul-Hijja). + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`month`](HijriCalendar.md#month) + +*** + +### monthCode() + +> **monthCode**(`date`): `string` + +Defined in: [src/calendars/HijriCalendar.ts:158](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L158) + +Month code per the Temporal proposal: "M01".."M12". +Hijri months are always 1-12 (no leap/intercalary month), so the code is +simply the zero-padded month number. + +#### Parameters + +##### date + +`PlainDate` + +#### Returns + +`string` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`monthCode`](HijriCalendar.md#monthcode) + +*** + +### monthDayFromFields() + +> **monthDayFromFields**(`fields`, `options?`): `PlainMonthDay` + +Defined in: [src/calendars/HijriCalendar.ts:317](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L317) + +ISO-anchored PlainMonthDay per the Temporal Calendar Protocol. +Reference year 1444 is intentional: it is a recent, well-covered UAQ year +used to anchor the ISO coordinates when no year is supplied. + +#### Parameters + +##### fields + +###### day + +`number` + +###### month + +`number` + +###### year? + +`number` + +##### options? + +###### overflow? + +`"constrain"` \| `"reject"` + +#### Returns + +`PlainMonthDay` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`monthDayFromFields`](HijriCalendar.md#monthdayfromfields) + +*** + +### monthsInYear() + +> **monthsInYear**(`_date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:210](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L210) + +Returns the number of months in the Hijri year. + +Always 12. Unlike the Hebrew calendar, the Hijri lunar calendar has no +intercalary (leap) month — only a possible extra day in Dhul-Hijja. + +#### Parameters + +##### \_date + +`PlainDate` + +#### Returns + +`number` + +Always 12. + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`monthsInYear`](HijriCalendar.md#monthsinyear) + +*** + +### toString() + +> **toString**(): `string` + +Defined in: [src/calendars/HijriCalendar.ts:66](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L66) + +#### Returns + +`string` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`toString`](HijriCalendar.md#tostring) + +*** + +### weekOfYear() + +> **weekOfYear**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:252](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L252) + +Hijri week number counted from day 1 of Muharram (day 1-7 = week 1). No ISO week alignment. + +#### Parameters + +##### date + +`PlainDate` + +#### Returns + +`number` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`weekOfYear`](HijriCalendar.md#weekofyear) + +*** + +### year() + +> **year**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:139](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L139) + +Returns the Hijri year for the given ISO date. + +#### Parameters + +##### date + +`PlainDate` + +A Temporal.PlainDate with ISO (Gregorian) coordinates. + +#### Returns + +`number` + +The Hijri year, e.g. 1444. + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`year`](HijriCalendar.md#year) + +*** + +### yearMonthFromFields() + +> **yearMonthFromFields**(`fields`, `options?`): `PlainYearMonth` + +Defined in: [src/calendars/HijriCalendar.ts:294](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L294) + +ISO-anchored PlainYearMonth per the Temporal Calendar Protocol. +The resulting PlainYearMonth stores ISO coordinates internally, representing +the Hijri month that starts on that ISO year/month. + +#### Parameters + +##### fields + +###### month + +`number` + +###### year + +`number` + +##### options? + +###### overflow? + +`"constrain"` \| `"reject"` + +#### Returns + +`PlainYearMonth` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`yearMonthFromFields`](HijriCalendar.md#yearmonthfromfields) diff --git a/.github/wiki/api/classes/HijriCalendar.md b/.github/wiki/api/classes/HijriCalendar.md new file mode 100644 index 0000000..691a83e --- /dev/null +++ b/.github/wiki/api/classes/HijriCalendar.md @@ -0,0 +1,568 @@ +[**temporal-hijri v1.0.1**](../README.md) + +*** + +[temporal-hijri](../README.md) / HijriCalendar + +# Class: HijriCalendar + +Defined in: [src/calendars/HijriCalendar.ts:57](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L57) + +Base class implementing the TC39 Temporal Calendar Protocol for Hijri calendars. + +Coordinate bridging: Temporal.PlainDate operates in the ISO (Gregorian) calendar. +Every calendar method receives a PlainDate with ISO year/month/day, and must +return results in the Hijri calendar's coordinate system. The bridge is +toHijri() and fromHijri(), which delegate to the injected CalendarEngine. + +Arithmetic strategy for dateAdd(): + - Year and month deltas are applied in Hijri space (correct handling of + variable month lengths). + - Day and week deltas are applied in ISO space after the Hijri addition, + so that "add 30 days" always means exactly 30 days. + +## Extended by + +- [`UaqCalendar`](UaqCalendar.md) +- [`FcnaCalendar`](FcnaCalendar.md) + +## Constructors + +### Constructor + +> **new HijriCalendar**(`engine`): `HijriCalendar` + +Defined in: [src/calendars/HijriCalendar.ts:61](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L61) + +#### Parameters + +##### engine + +[`CalendarEngine`](../interfaces/CalendarEngine.md) + +#### Returns + +`HijriCalendar` + +## Properties + +### id + +> `readonly` **id**: `string` + +Defined in: [src/calendars/HijriCalendar.ts:59](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L59) + +## Methods + +### dateAdd() + +> **dateAdd**(`date`, `duration`, `_options?`): `PlainDate` + +Defined in: [src/calendars/HijriCalendar.ts:346](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L346) + +Add a duration to a Hijri date. + +Year and month additions are handled in Hijri space to preserve calendar +semantics (e.g., adding one month to 1 Ramadan yields 1 Shawwal, not a +fixed 30-day offset). Day and week additions are then applied in ISO space +so that they always represent exact day counts. + +Month normalization uses O(1) modular arithmetic instead of iterative loops. +When the day-of-month exceeds the target month's length after a Hijri-space +adjustment, it is clamped to the last valid day of that month. + +#### Parameters + +##### date + +`PlainDate` + +##### duration + +`Duration` + +##### \_options? + +###### overflow? + +`"constrain"` \| `"reject"` + +#### Returns + +`PlainDate` + +*** + +### dateFromFields() + +> **dateFromFields**(`fields`, `options?`): `PlainDate` + +Defined in: [src/calendars/HijriCalendar.ts:279](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L279) + +#### Parameters + +##### fields + +###### day + +`number` + +###### month + +`number` + +###### year + +`number` + +##### options? + +###### overflow? + +`"constrain"` \| `"reject"` + +#### Returns + +`PlainDate` + +*** + +### dateUntil() + +> **dateUntil**(`one`, `two`, `options?`): `Duration` + +Defined in: [src/calendars/HijriCalendar.ts:384](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L384) + +Compute the difference between two Hijri dates. + +For simplicity and correctness across variable-length Hijri months, this +delegates to the underlying ISO PlainDate difference when the largest unit +is days or weeks. Year/month differences require a Hijri-space calculation. + +#### Parameters + +##### one + +`PlainDate` + +##### two + +`PlainDate` + +##### options? + +###### largestUnit? + +`DateUnit` + +#### Returns + +`Duration` + +*** + +### day() + +> **day**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:169](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L169) + +Returns the day of the Hijri month (1-29 or 1-30). + +#### Parameters + +##### date + +`PlainDate` + +A Temporal.PlainDate with ISO (Gregorian) coordinates. + +#### Returns + +`number` + +Day of month within the Hijri calendar. + +*** + +### dayOfWeek() + +> **dayOfWeek**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:234](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L234) + +ISO weekday: 1 = Monday, 7 = Sunday. +PlainDate.dayOfWeek on an ISO-calendar date already gives ISO weekday, +so no conversion is needed. + +#### Parameters + +##### date + +`PlainDate` + +#### Returns + +`number` + +*** + +### dayOfYear() + +> **dayOfYear**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:242](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L242) + +Day within the Hijri year. Accumulates full months before the current one, +then adds the day-of-month offset. + +#### Parameters + +##### date + +`PlainDate` + +#### Returns + +`number` + +*** + +### daysInMonth() + +> **daysInMonth**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:184](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L184) + +Returns the number of days in the Hijri month containing the given date. + +Hijri months alternate between 29 and 30 days, but the exact pattern +differs by calendar system (UAQ uses fixed tables; FCNA uses calculation). + +#### Parameters + +##### date + +`PlainDate` + +A Temporal.PlainDate with ISO (Gregorian) coordinates. + +#### Returns + +`number` + +29 or 30. + +*** + +### daysInWeek() + +> **daysInWeek**(`_date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:263](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L263) + +Returns the number of days in a week. + +Always 7. Required by the Temporal Calendar Protocol. + +#### Parameters + +##### \_date + +`PlainDate` + +#### Returns + +`number` + +Always 7. + +*** + +### daysInYear() + +> **daysInYear**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:193](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L193) + +Sum all 12 month lengths for the Hijri year. Standard lunar years are 354 +days; leap years (with an added day in Dhul-Hijja) are 355 days. + +#### Parameters + +##### date + +`PlainDate` + +#### Returns + +`number` + +*** + +### fields() + +> **fields**(`fields`): `string`[] + +Defined in: [src/calendars/HijriCalendar.ts:273](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L273) + +Return the list of fields that the calendar adds to a Temporal object. +Non-era calendars return the input array unchanged. + +#### Parameters + +##### fields + +`string`[] + +#### Returns + +`string`[] + +*** + +### inLeapYear() + +> **inLeapYear**(`date`): `boolean` + +Defined in: [src/calendars/HijriCalendar.ts:223](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L223) + +Returns whether the Hijri year is a leap year (355 days). + +Standard Hijri years have 354 days. A leap year adds one day to +Dhul-Hijja (month 12), making it 355 days total. + +#### Parameters + +##### date + +`PlainDate` + +A Temporal.PlainDate with ISO (Gregorian) coordinates. + +#### Returns + +`boolean` + +`true` if the year has 355 days. + +*** + +### mergeFields() + +> **mergeFields**(`fields`, `additionalFields`): `Record`\<`string`, `unknown`\> + +Defined in: [src/calendars/HijriCalendar.ts:414](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L414) + +#### Parameters + +##### fields + +`Record`\<`string`, `unknown`\> + +##### additionalFields + +`Record`\<`string`, `unknown`\> + +#### Returns + +`Record`\<`string`, `unknown`\> + +*** + +### month() + +> **month**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:149](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L149) + +Returns the Hijri month (1-12) for the given ISO date. + +#### Parameters + +##### date + +`PlainDate` + +A Temporal.PlainDate with ISO (Gregorian) coordinates. + +#### Returns + +`number` + +Month number 1 (Muharram) through 12 (Dhul-Hijja). + +*** + +### monthCode() + +> **monthCode**(`date`): `string` + +Defined in: [src/calendars/HijriCalendar.ts:158](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L158) + +Month code per the Temporal proposal: "M01".."M12". +Hijri months are always 1-12 (no leap/intercalary month), so the code is +simply the zero-padded month number. + +#### Parameters + +##### date + +`PlainDate` + +#### Returns + +`string` + +*** + +### monthDayFromFields() + +> **monthDayFromFields**(`fields`, `options?`): `PlainMonthDay` + +Defined in: [src/calendars/HijriCalendar.ts:317](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L317) + +ISO-anchored PlainMonthDay per the Temporal Calendar Protocol. +Reference year 1444 is intentional: it is a recent, well-covered UAQ year +used to anchor the ISO coordinates when no year is supplied. + +#### Parameters + +##### fields + +###### day + +`number` + +###### month + +`number` + +###### year? + +`number` + +##### options? + +###### overflow? + +`"constrain"` \| `"reject"` + +#### Returns + +`PlainMonthDay` + +*** + +### monthsInYear() + +> **monthsInYear**(`_date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:210](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L210) + +Returns the number of months in the Hijri year. + +Always 12. Unlike the Hebrew calendar, the Hijri lunar calendar has no +intercalary (leap) month — only a possible extra day in Dhul-Hijja. + +#### Parameters + +##### \_date + +`PlainDate` + +#### Returns + +`number` + +Always 12. + +*** + +### toString() + +> **toString**(): `string` + +Defined in: [src/calendars/HijriCalendar.ts:66](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L66) + +#### Returns + +`string` + +*** + +### weekOfYear() + +> **weekOfYear**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:252](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L252) + +Hijri week number counted from day 1 of Muharram (day 1-7 = week 1). No ISO week alignment. + +#### Parameters + +##### date + +`PlainDate` + +#### Returns + +`number` + +*** + +### year() + +> **year**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:139](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L139) + +Returns the Hijri year for the given ISO date. + +#### Parameters + +##### date + +`PlainDate` + +A Temporal.PlainDate with ISO (Gregorian) coordinates. + +#### Returns + +`number` + +The Hijri year, e.g. 1444. + +*** + +### yearMonthFromFields() + +> **yearMonthFromFields**(`fields`, `options?`): `PlainYearMonth` + +Defined in: [src/calendars/HijriCalendar.ts:294](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L294) + +ISO-anchored PlainYearMonth per the Temporal Calendar Protocol. +The resulting PlainYearMonth stores ISO coordinates internally, representing +the Hijri month that starts on that ISO year/month. + +#### Parameters + +##### fields + +###### month + +`number` + +###### year + +`number` + +##### options? + +###### overflow? + +`"constrain"` \| `"reject"` + +#### Returns + +`PlainYearMonth` diff --git a/.github/wiki/api/classes/UaqCalendar.md b/.github/wiki/api/classes/UaqCalendar.md new file mode 100644 index 0000000..a40efcb --- /dev/null +++ b/.github/wiki/api/classes/UaqCalendar.md @@ -0,0 +1,647 @@ +[**temporal-hijri v1.0.1**](../README.md) + +*** + +[temporal-hijri](../README.md) / UaqCalendar + +# Class: UaqCalendar + +Defined in: [src/calendars/UaqCalendar.ts:16](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/UaqCalendar.ts#L16) + +Temporal calendar implementation for the Umm al-Qura calendar. + +Umm al-Qura is the official calendar of Saudi Arabia, maintained by the +King Abdulaziz City for Science and Technology (KACST). It is the most +widely used Hijri calendar standard for civil and religious purposes across +the Muslim world. Month boundaries are determined by pre-calculated tables +rather than real-time moon sighting. + +Calendar engine: hijri-core UAQ (table-driven, covers 1318-1500 AH). +Calendar ID: "hijri-uaq" + +## Extends + +- [`HijriCalendar`](HijriCalendar.md) + +## Constructors + +### Constructor + +> **new UaqCalendar**(): `UaqCalendar` + +Defined in: [src/calendars/UaqCalendar.ts:17](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/UaqCalendar.ts#L17) + +#### Returns + +`UaqCalendar` + +#### Overrides + +[`HijriCalendar`](HijriCalendar.md).[`constructor`](HijriCalendar.md#constructor) + +## Properties + +### id + +> `readonly` **id**: `string` + +Defined in: [src/calendars/HijriCalendar.ts:59](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L59) + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`id`](HijriCalendar.md#id) + +## Methods + +### dateAdd() + +> **dateAdd**(`date`, `duration`, `_options?`): `PlainDate` + +Defined in: [src/calendars/HijriCalendar.ts:346](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L346) + +Add a duration to a Hijri date. + +Year and month additions are handled in Hijri space to preserve calendar +semantics (e.g., adding one month to 1 Ramadan yields 1 Shawwal, not a +fixed 30-day offset). Day and week additions are then applied in ISO space +so that they always represent exact day counts. + +Month normalization uses O(1) modular arithmetic instead of iterative loops. +When the day-of-month exceeds the target month's length after a Hijri-space +adjustment, it is clamped to the last valid day of that month. + +#### Parameters + +##### date + +`PlainDate` + +##### duration + +`Duration` + +##### \_options? + +###### overflow? + +`"constrain"` \| `"reject"` + +#### Returns + +`PlainDate` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`dateAdd`](HijriCalendar.md#dateadd) + +*** + +### dateFromFields() + +> **dateFromFields**(`fields`, `options?`): `PlainDate` + +Defined in: [src/calendars/HijriCalendar.ts:279](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L279) + +#### Parameters + +##### fields + +###### day + +`number` + +###### month + +`number` + +###### year + +`number` + +##### options? + +###### overflow? + +`"constrain"` \| `"reject"` + +#### Returns + +`PlainDate` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`dateFromFields`](HijriCalendar.md#datefromfields) + +*** + +### dateUntil() + +> **dateUntil**(`one`, `two`, `options?`): `Duration` + +Defined in: [src/calendars/HijriCalendar.ts:384](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L384) + +Compute the difference between two Hijri dates. + +For simplicity and correctness across variable-length Hijri months, this +delegates to the underlying ISO PlainDate difference when the largest unit +is days or weeks. Year/month differences require a Hijri-space calculation. + +#### Parameters + +##### one + +`PlainDate` + +##### two + +`PlainDate` + +##### options? + +###### largestUnit? + +`DateUnit` + +#### Returns + +`Duration` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`dateUntil`](HijriCalendar.md#dateuntil) + +*** + +### day() + +> **day**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:169](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L169) + +Returns the day of the Hijri month (1-29 or 1-30). + +#### Parameters + +##### date + +`PlainDate` + +A Temporal.PlainDate with ISO (Gregorian) coordinates. + +#### Returns + +`number` + +Day of month within the Hijri calendar. + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`day`](HijriCalendar.md#day) + +*** + +### dayOfWeek() + +> **dayOfWeek**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:234](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L234) + +ISO weekday: 1 = Monday, 7 = Sunday. +PlainDate.dayOfWeek on an ISO-calendar date already gives ISO weekday, +so no conversion is needed. + +#### Parameters + +##### date + +`PlainDate` + +#### Returns + +`number` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`dayOfWeek`](HijriCalendar.md#dayofweek) + +*** + +### dayOfYear() + +> **dayOfYear**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:242](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L242) + +Day within the Hijri year. Accumulates full months before the current one, +then adds the day-of-month offset. + +#### Parameters + +##### date + +`PlainDate` + +#### Returns + +`number` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`dayOfYear`](HijriCalendar.md#dayofyear) + +*** + +### daysInMonth() + +> **daysInMonth**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:184](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L184) + +Returns the number of days in the Hijri month containing the given date. + +Hijri months alternate between 29 and 30 days, but the exact pattern +differs by calendar system (UAQ uses fixed tables; FCNA uses calculation). + +#### Parameters + +##### date + +`PlainDate` + +A Temporal.PlainDate with ISO (Gregorian) coordinates. + +#### Returns + +`number` + +29 or 30. + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`daysInMonth`](HijriCalendar.md#daysinmonth) + +*** + +### daysInWeek() + +> **daysInWeek**(`_date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:263](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L263) + +Returns the number of days in a week. + +Always 7. Required by the Temporal Calendar Protocol. + +#### Parameters + +##### \_date + +`PlainDate` + +#### Returns + +`number` + +Always 7. + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`daysInWeek`](HijriCalendar.md#daysinweek) + +*** + +### daysInYear() + +> **daysInYear**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:193](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L193) + +Sum all 12 month lengths for the Hijri year. Standard lunar years are 354 +days; leap years (with an added day in Dhul-Hijja) are 355 days. + +#### Parameters + +##### date + +`PlainDate` + +#### Returns + +`number` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`daysInYear`](HijriCalendar.md#daysinyear) + +*** + +### fields() + +> **fields**(`fields`): `string`[] + +Defined in: [src/calendars/HijriCalendar.ts:273](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L273) + +Return the list of fields that the calendar adds to a Temporal object. +Non-era calendars return the input array unchanged. + +#### Parameters + +##### fields + +`string`[] + +#### Returns + +`string`[] + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`fields`](HijriCalendar.md#fields) + +*** + +### inLeapYear() + +> **inLeapYear**(`date`): `boolean` + +Defined in: [src/calendars/HijriCalendar.ts:223](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L223) + +Returns whether the Hijri year is a leap year (355 days). + +Standard Hijri years have 354 days. A leap year adds one day to +Dhul-Hijja (month 12), making it 355 days total. + +#### Parameters + +##### date + +`PlainDate` + +A Temporal.PlainDate with ISO (Gregorian) coordinates. + +#### Returns + +`boolean` + +`true` if the year has 355 days. + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`inLeapYear`](HijriCalendar.md#inleapyear) + +*** + +### mergeFields() + +> **mergeFields**(`fields`, `additionalFields`): `Record`\<`string`, `unknown`\> + +Defined in: [src/calendars/HijriCalendar.ts:414](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L414) + +#### Parameters + +##### fields + +`Record`\<`string`, `unknown`\> + +##### additionalFields + +`Record`\<`string`, `unknown`\> + +#### Returns + +`Record`\<`string`, `unknown`\> + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`mergeFields`](HijriCalendar.md#mergefields) + +*** + +### month() + +> **month**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:149](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L149) + +Returns the Hijri month (1-12) for the given ISO date. + +#### Parameters + +##### date + +`PlainDate` + +A Temporal.PlainDate with ISO (Gregorian) coordinates. + +#### Returns + +`number` + +Month number 1 (Muharram) through 12 (Dhul-Hijja). + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`month`](HijriCalendar.md#month) + +*** + +### monthCode() + +> **monthCode**(`date`): `string` + +Defined in: [src/calendars/HijriCalendar.ts:158](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L158) + +Month code per the Temporal proposal: "M01".."M12". +Hijri months are always 1-12 (no leap/intercalary month), so the code is +simply the zero-padded month number. + +#### Parameters + +##### date + +`PlainDate` + +#### Returns + +`string` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`monthCode`](HijriCalendar.md#monthcode) + +*** + +### monthDayFromFields() + +> **monthDayFromFields**(`fields`, `options?`): `PlainMonthDay` + +Defined in: [src/calendars/HijriCalendar.ts:317](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L317) + +ISO-anchored PlainMonthDay per the Temporal Calendar Protocol. +Reference year 1444 is intentional: it is a recent, well-covered UAQ year +used to anchor the ISO coordinates when no year is supplied. + +#### Parameters + +##### fields + +###### day + +`number` + +###### month + +`number` + +###### year? + +`number` + +##### options? + +###### overflow? + +`"constrain"` \| `"reject"` + +#### Returns + +`PlainMonthDay` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`monthDayFromFields`](HijriCalendar.md#monthdayfromfields) + +*** + +### monthsInYear() + +> **monthsInYear**(`_date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:210](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L210) + +Returns the number of months in the Hijri year. + +Always 12. Unlike the Hebrew calendar, the Hijri lunar calendar has no +intercalary (leap) month — only a possible extra day in Dhul-Hijja. + +#### Parameters + +##### \_date + +`PlainDate` + +#### Returns + +`number` + +Always 12. + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`monthsInYear`](HijriCalendar.md#monthsinyear) + +*** + +### toString() + +> **toString**(): `string` + +Defined in: [src/calendars/HijriCalendar.ts:66](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L66) + +#### Returns + +`string` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`toString`](HijriCalendar.md#tostring) + +*** + +### weekOfYear() + +> **weekOfYear**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:252](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L252) + +Hijri week number counted from day 1 of Muharram (day 1-7 = week 1). No ISO week alignment. + +#### Parameters + +##### date + +`PlainDate` + +#### Returns + +`number` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`weekOfYear`](HijriCalendar.md#weekofyear) + +*** + +### year() + +> **year**(`date`): `number` + +Defined in: [src/calendars/HijriCalendar.ts:139](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L139) + +Returns the Hijri year for the given ISO date. + +#### Parameters + +##### date + +`PlainDate` + +A Temporal.PlainDate with ISO (Gregorian) coordinates. + +#### Returns + +`number` + +The Hijri year, e.g. 1444. + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`year`](HijriCalendar.md#year) + +*** + +### yearMonthFromFields() + +> **yearMonthFromFields**(`fields`, `options?`): `PlainYearMonth` + +Defined in: [src/calendars/HijriCalendar.ts:294](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/calendars/HijriCalendar.ts#L294) + +ISO-anchored PlainYearMonth per the Temporal Calendar Protocol. +The resulting PlainYearMonth stores ISO coordinates internally, representing +the Hijri month that starts on that ISO year/month. + +#### Parameters + +##### fields + +###### month + +`number` + +###### year + +`number` + +##### options? + +###### overflow? + +`"constrain"` \| `"reject"` + +#### Returns + +`PlainYearMonth` + +#### Inherited from + +[`HijriCalendar`](HijriCalendar.md).[`yearMonthFromFields`](HijriCalendar.md#yearmonthfromfields) diff --git a/.github/wiki/api/interfaces/CalendarEngine.md b/.github/wiki/api/interfaces/CalendarEngine.md new file mode 100644 index 0000000..2bf16b0 --- /dev/null +++ b/.github/wiki/api/interfaces/CalendarEngine.md @@ -0,0 +1,111 @@ +[**temporal-hijri v1.0.1**](../README.md) + +*** + +[temporal-hijri](../README.md) / CalendarEngine + +# Interface: CalendarEngine + +Defined in: node\_modules/.pnpm/hijri-core@1.0.0/node\_modules/hijri-core/dist/index.d.mts:13 + +## Properties + +### id + +> `readonly` **id**: `string` + +Defined in: node\_modules/.pnpm/hijri-core@1.0.0/node\_modules/hijri-core/dist/index.d.mts:14 + +## Methods + +### daysInMonth() + +> **daysInMonth**(`hy`, `hm`): `number` + +Defined in: node\_modules/.pnpm/hijri-core@1.0.0/node\_modules/hijri-core/dist/index.d.mts:19 + +#### Parameters + +##### hy + +`number` + +##### hm + +`number` + +#### Returns + +`number` + +*** + +### isValid() + +> **isValid**(`hy`, `hm`, `hd`): `boolean` + +Defined in: node\_modules/.pnpm/hijri-core@1.0.0/node\_modules/hijri-core/dist/index.d.mts:18 + +#### Parameters + +##### hy + +`number` + +##### hm + +`number` + +##### hd + +`number` + +#### Returns + +`boolean` + +*** + +### toGregorian() + +> **toGregorian**(`hy`, `hm`, `hd`): `Date` \| `null` + +Defined in: node\_modules/.pnpm/hijri-core@1.0.0/node\_modules/hijri-core/dist/index.d.mts:17 + +Returns null for invalid or out-of-range input. Never throws. + +#### Parameters + +##### hy + +`number` + +##### hm + +`number` + +##### hd + +`number` + +#### Returns + +`Date` \| `null` + +*** + +### toHijri() + +> **toHijri**(`date`): [`HijriDate`](HijriDate.md) \| `null` + +Defined in: node\_modules/.pnpm/hijri-core@1.0.0/node\_modules/hijri-core/dist/index.d.mts:15 + +#### Parameters + +##### date + +`Date` + +#### Returns + +[`HijriDate`](HijriDate.md) \| `null` diff --git a/.github/wiki/api/interfaces/ConversionOptions.md b/.github/wiki/api/interfaces/ConversionOptions.md new file mode 100644 index 0000000..fdd4ad1 --- /dev/null +++ b/.github/wiki/api/interfaces/ConversionOptions.md @@ -0,0 +1,17 @@ +[**temporal-hijri v1.0.1**](../README.md) + +*** + +[temporal-hijri](../README.md) / ConversionOptions + +# Interface: ConversionOptions + +Defined in: node\_modules/.pnpm/hijri-core@1.0.0/node\_modules/hijri-core/dist/index.d.mts:21 + +## Properties + +### calendar? + +> `optional` **calendar?**: `string` + +Defined in: node\_modules/.pnpm/hijri-core@1.0.0/node\_modules/hijri-core/dist/index.d.mts:22 diff --git a/.github/wiki/api/interfaces/HijriDate.md b/.github/wiki/api/interfaces/HijriDate.md new file mode 100644 index 0000000..83390aa --- /dev/null +++ b/.github/wiki/api/interfaces/HijriDate.md @@ -0,0 +1,33 @@ +[**temporal-hijri v1.0.1**](../README.md) + +*** + +[temporal-hijri](../README.md) / HijriDate + +# Interface: HijriDate + +Defined in: node\_modules/.pnpm/hijri-core@1.0.0/node\_modules/hijri-core/dist/index.d.mts:1 + +## Properties + +### hd + +> **hd**: `number` + +Defined in: node\_modules/.pnpm/hijri-core@1.0.0/node\_modules/hijri-core/dist/index.d.mts:4 + +*** + +### hm + +> **hm**: `number` + +Defined in: node\_modules/.pnpm/hijri-core@1.0.0/node\_modules/hijri-core/dist/index.d.mts:3 + +*** + +### hy + +> **hy**: `number` + +Defined in: node\_modules/.pnpm/hijri-core@1.0.0/node\_modules/hijri-core/dist/index.d.mts:2 diff --git a/.github/wiki/api/variables/fcnaCalendar.md b/.github/wiki/api/variables/fcnaCalendar.md new file mode 100644 index 0000000..db87fbd --- /dev/null +++ b/.github/wiki/api/variables/fcnaCalendar.md @@ -0,0 +1,11 @@ +[**temporal-hijri v1.0.1**](../README.md) + +*** + +[temporal-hijri](../README.md) / fcnaCalendar + +# Variable: fcnaCalendar + +> `const` **fcnaCalendar**: [`FcnaCalendar`](../classes/FcnaCalendar.md) + +Defined in: [src/index.ts:12](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/index.ts#L12) diff --git a/.github/wiki/api/variables/uaqCalendar.md b/.github/wiki/api/variables/uaqCalendar.md new file mode 100644 index 0000000..6c5a1d7 --- /dev/null +++ b/.github/wiki/api/variables/uaqCalendar.md @@ -0,0 +1,11 @@ +[**temporal-hijri v1.0.1**](../README.md) + +*** + +[temporal-hijri](../README.md) / uaqCalendar + +# Variable: uaqCalendar + +> `const` **uaqCalendar**: [`UaqCalendar`](../classes/UaqCalendar.md) + +Defined in: [src/index.ts:11](https://github.com/acamarata/temporal-hijri/blob/cdcede1c5890a670cd9f06a043e3a796fbd69b10/src/index.ts#L11) diff --git a/package.json b/package.json index 741b862..27eee23 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ "pretest": "tsup", "test": "node --test test.mjs && node --test test-cjs.cjs", "prepublishOnly": "tsup", - "coverage": "c8 --reporter=lcov --reporter=text node --test", + "coverage": "c8 --reporter=lcov --reporter=text node test.mjs", + "docs": "typedoc --out .github/wiki/api src/index.ts", "postbuild": "cp dist/index.d.ts dist/index.d.mts" }, "keywords": [ @@ -69,11 +70,14 @@ "@eslint/js": "^10.0.1", "@js-temporal/polyfill": "^0.4.4", "@types/node": "^22.0.0", + "c8": "^11.0.0", "eslint": "^10.0.3", "eslint-config-prettier": "^10.1.8", "hijri-core": "^1.0.0", "prettier": "^3.8.1", "tsup": "^8.0.0", + "typedoc": "^0.28.19", + "typedoc-plugin-markdown": "^4.11.0", "typescript": "^5.5.0", "typescript-eslint": "^8.56.1" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9544146..f163844 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,6 +26,9 @@ importers: '@types/node': specifier: ^22.0.0 version: 22.19.11 + c8: + specifier: ^11.0.0 + version: 11.0.0 eslint: specifier: ^10.0.3 version: 10.0.3 @@ -40,7 +43,13 @@ importers: version: 3.8.1 tsup: specifier: ^8.0.0 - version: 8.5.1(typescript@5.9.3) + version: 8.5.1(typescript@5.9.3)(yaml@2.9.0) + typedoc: + specifier: ^0.28.19 + version: 0.28.19(typescript@5.9.3) + typedoc-plugin-markdown: + specifier: ^4.11.0 + version: 4.11.0(typedoc@0.28.19(typescript@5.9.3)) typescript: specifier: ^5.5.0 version: 5.9.3 @@ -76,6 +85,10 @@ packages: resolution: {integrity: sha512-bgzyBak43mE+0HhduZX3cvaPjKcggtGGZZMjr35qtYWolsIWgZ9nx7OOswbVYoU35qoUv6rZ0mTK6GbZ8QTYjw==} engines: {node: '>=20'} + '@bcoe/v8-coverage@1.0.2': + resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} + engines: {node: '>=18'} + '@esbuild/aix-ppc64@0.27.3': resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} engines: {node: '>=18'} @@ -271,6 +284,9 @@ packages: resolution: {integrity: sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@gerrit0/mini-shiki@3.23.0': + resolution: {integrity: sha512-bEMORlG0cqdjVyCEuU0cDQbORWX+kYCeo0kV1lbxF5bt4r7SID2l9bqsxJEM0zndaxpOUT7riCyIVEuqq/Ynxg==} + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -287,6 +303,10 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} + '@istanbuljs/schema@0.1.6': + resolution: {integrity: sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==} + engines: {node: '>=8'} + '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -442,18 +462,42 @@ packages: cpu: [x64] os: [win32] + '@shikijs/engine-oniguruma@3.23.0': + resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} + + '@shikijs/langs@3.23.0': + resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} + + '@shikijs/themes@3.23.0': + resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} + + '@shikijs/types@3.23.0': + resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + '@types/esrecurse@4.3.1': resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} '@types/node@22.19.11': resolution: {integrity: sha512-BH7YwL6rA93ReqeQS1c4bsPpcfOmJasG+Fkr6Y59q83f9M1WcBRHR2vM+P9eOisYRcN3ujQoiZY8uk5W+1WL8w==} + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + '@typescript-eslint/eslint-plugin@8.56.1': resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -526,9 +570,20 @@ packages: ajv@6.14.0: resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + balanced-match@4.0.4: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} @@ -537,12 +592,26 @@ packages: resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} engines: {node: 18 || 20 || >=22} + brace-expansion@5.0.6: + resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} + engines: {node: 18 || 20 || >=22} + bundle-require@5.1.0: resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: esbuild: '>=0.18' + c8@11.0.0: + resolution: {integrity: sha512-e/uRViGHSVIJv7zsaDKM7VRn2390TgHXqUSvYwPHBQaU6L7E9L0n9JbdkwdYPvshDT0KymBmmlwSpms3yBaMNg==} + engines: {node: 20 || >=22} + hasBin: true + peerDependencies: + monocart-coverage-reports: ^2 + peerDependenciesMeta: + monocart-coverage-reports: + optional: true + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -551,6 +620,17 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} @@ -562,6 +642,9 @@ packages: resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} engines: {node: ^14.18.0 || >=16.10.0} + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -578,11 +661,22 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + esbuild@0.27.3: resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} engines: {node: '>=18'} hasBin: true + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -671,19 +765,38 @@ packages: flatted@3.3.4: resolution: {integrity: sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA==} + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + hijri-core@1.0.0: resolution: {integrity: sha512-wImBZLBKbEWEEUE1nrc1CFY/uvx4XjGNWYChImJZlswXIVhrBCzSVaj6DP1AU2gUMJ6KDh2ygXo/u/Qx232CXA==} engines: {node: '>=20'} + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -700,6 +813,10 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -707,6 +824,18 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + engines: {node: '>=8'} + joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} @@ -737,6 +866,9 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + linkify-it@5.0.1: + resolution: {integrity: sha512-wVoTjP4Q6R0NW5hiZkVJaFZPWgtXfoGF+6LucL3/FtiNjmcHhYjEr5f1Kqjirc1nBW07J/ZuRFumqr2oqccEWg==} + load-tsconfig@0.2.5: resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -745,13 +877,39 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} + lru-cache@11.5.1: + resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==} + engines: {node: 20 || >=22} + + lunr@2.3.9: + resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + markdown-it@14.2.0: + resolution: {integrity: sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ==} + hasBin: true + + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + minimatch@10.2.4: resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} engines: {node: 18 || 20 || >=22} + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} + + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + mlly@1.8.0: resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} @@ -788,6 +946,10 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -832,6 +994,10 @@ packages: engines: {node: '>=14'} hasBin: true + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -840,6 +1006,10 @@ packages: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} @@ -862,15 +1032,35 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + source-map@0.7.6: resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} engines: {node: '>= 12'} + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + sucrase@3.35.1: resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + test-exclude@8.0.0: + resolution: {integrity: sha512-ZOffsNrXYggvU1mDGHk54I96r26P8SyMjO5slMKSc7+IWmtB/MQKnEC2fP51imB3/pT6YK5cT5E8f+Dd9KdyOQ==} + engines: {node: 20 || >=22} + thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -924,6 +1114,19 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} + typedoc-plugin-markdown@4.11.0: + resolution: {integrity: sha512-2iunh2ALyfyh204OF7h2u0kuQ84xB3jFZtFyUr01nThJkLvR8oGGSSDlyt2gyO4kXhvUxDcVbO0y43+qX+wFbw==} + engines: {node: '>= 18'} + peerDependencies: + typedoc: 0.28.x + + typedoc@0.28.19: + resolution: {integrity: sha512-wKh+lhdmMFivMlc6vRRcMGXeGEHGU2g8a2CkPTJjJlwRf1iXbimWIPcFolCqe4E0d/FRtGszpIrsp3WLpDB8Pw==} + engines: {node: '>= 18', pnpm: '>= 10'} + hasBin: true + peerDependencies: + typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x || 6.0.x + typescript-eslint@8.56.1: resolution: {integrity: sha512-U4lM6pjmBX7J5wk4szltF7I1cGBHXZopnAXCMXb3+fZ3B/0Z3hq3wS/CCUB2NZBNAExK92mCU2tEohWuwVMsDQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -936,6 +1139,9 @@ packages: engines: {node: '>=14.17'} hasBin: true + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + ufo@1.6.3: resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} @@ -945,6 +1151,10 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} + engines: {node: '>=10.12.0'} + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -954,6 +1164,27 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + engines: {node: '>= 14.6'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -973,6 +1204,8 @@ snapshots: '@acamarata/tsconfig@0.1.0': {} + '@bcoe/v8-coverage@1.0.2': {} + '@esbuild/aix-ppc64@0.27.3': optional: true @@ -1085,6 +1318,14 @@ snapshots: '@eslint/core': 1.1.1 levn: 0.4.1 + '@gerrit0/mini-shiki@3.23.0': + dependencies: + '@shikijs/engine-oniguruma': 3.23.0 + '@shikijs/langs': 3.23.0 + '@shikijs/themes': 3.23.0 + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.7': @@ -1096,6 +1337,8 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} + '@istanbuljs/schema@0.1.6': {} + '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -1190,16 +1433,44 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.59.0': optional: true + '@shikijs/engine-oniguruma@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + + '@shikijs/themes@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + + '@shikijs/types@3.23.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@10.0.2': {} + '@types/esrecurse@4.3.1': {} '@types/estree@1.0.8': {} + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/istanbul-lib-coverage@2.0.6': {} + '@types/json-schema@7.0.15': {} '@types/node@22.19.11': dependencies: undici-types: 6.21.0 + '@types/unist@3.0.3': {} + '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.3)(typescript@5.9.3))(eslint@10.0.3)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 @@ -1304,31 +1575,71 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + any-promise@1.3.0: {} + argparse@2.0.1: {} + balanced-match@4.0.4: {} brace-expansion@5.0.4: dependencies: balanced-match: 4.0.4 + brace-expansion@5.0.6: + dependencies: + balanced-match: 4.0.4 + bundle-require@5.1.0(esbuild@0.27.3): dependencies: esbuild: 0.27.3 load-tsconfig: 0.2.5 + c8@11.0.0: + dependencies: + '@bcoe/v8-coverage': 1.0.2 + '@istanbuljs/schema': 0.1.6 + find-up: 5.0.0 + foreground-child: 3.3.1 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-reports: 3.2.0 + test-exclude: 8.0.0 + v8-to-istanbul: 9.3.0 + yargs: 17.7.2 + yargs-parser: 21.1.1 + cac@6.7.14: {} chokidar@4.0.3: dependencies: readdirp: 4.1.2 + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + commander@4.1.1: {} confbox@0.1.8: {} consola@3.4.2: {} + convert-source-map@2.0.0: {} + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -1341,6 +1652,10 @@ snapshots: deep-is@0.1.4: {} + emoji-regex@8.0.0: {} + + entities@4.5.0: {} + esbuild@0.27.3: optionalDependencies: '@esbuild/aix-ppc64': 0.27.3 @@ -1370,6 +1685,8 @@ snapshots: '@esbuild/win32-ia32': 0.27.3 '@esbuild/win32-x64': 0.27.3 + escalade@3.2.0: {} + escape-string-regexp@4.0.0: {} eslint-config-prettier@10.1.8(eslint@10.0.3): @@ -1472,15 +1789,32 @@ snapshots: flatted@3.3.4: {} + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + fsevents@2.3.3: optional: true + get-caller-file@2.0.5: {} + glob-parent@6.0.2: dependencies: is-glob: 4.0.3 + glob@13.0.6: + dependencies: + minimatch: 10.2.4 + minipass: 7.1.3 + path-scurry: 2.0.2 + + has-flag@4.0.0: {} + hijri-core@1.0.0: {} + html-escaper@2.0.2: {} + ignore@5.3.2: {} ignore@7.0.5: {} @@ -1489,12 +1823,27 @@ snapshots: is-extglob@2.1.1: {} + is-fullwidth-code-point@3.0.0: {} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 isexe@2.0.0: {} + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-reports@3.2.0: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + joycon@3.1.1: {} jsbi@4.3.2: {} @@ -1518,20 +1867,49 @@ snapshots: lines-and-columns@1.2.4: {} + linkify-it@5.0.1: + dependencies: + uc.micro: 2.1.0 + load-tsconfig@0.2.5: {} locate-path@6.0.0: dependencies: p-locate: 5.0.0 + lru-cache@11.5.1: {} + + lunr@2.3.9: {} + magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + make-dir@4.0.0: + dependencies: + semver: 7.7.4 + + markdown-it@14.2.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.1 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + mdurl@2.0.0: {} + minimatch@10.2.4: dependencies: brace-expansion: 5.0.4 + minimatch@10.2.5: + dependencies: + brace-expansion: 5.0.6 + + minipass@7.1.3: {} + mlly@1.8.0: dependencies: acorn: 8.16.0 @@ -1572,6 +1950,11 @@ snapshots: path-key@3.1.1: {} + path-scurry@2.0.2: + dependencies: + lru-cache: 11.5.1 + minipass: 7.1.3 + pathe@2.0.3: {} picocolors@1.1.1: {} @@ -1586,18 +1969,24 @@ snapshots: mlly: 1.8.0 pathe: 2.0.3 - postcss-load-config@6.0.1: + postcss-load-config@6.0.1(yaml@2.9.0): dependencies: lilconfig: 3.1.3 + optionalDependencies: + yaml: 2.9.0 prelude-ls@1.2.1: {} prettier@3.8.1: {} + punycode.js@2.3.1: {} + punycode@2.3.1: {} readdirp@4.1.2: {} + require-directory@2.1.1: {} + resolve-from@5.0.0: {} rollup@4.59.0: @@ -1639,8 +2028,20 @@ snapshots: shebang-regex@3.0.0: {} + signal-exit@4.1.0: {} + source-map@0.7.6: {} + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + sucrase@3.35.1: dependencies: '@jridgewell/gen-mapping': 0.3.13 @@ -1651,6 +2052,16 @@ snapshots: tinyglobby: 0.2.15 ts-interface-checker: 0.1.13 + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + test-exclude@8.0.0: + dependencies: + '@istanbuljs/schema': 0.1.6 + glob: 13.0.6 + minimatch: 10.2.4 + thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -1676,7 +2087,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.1(typescript@5.9.3): + tsup@8.5.1(typescript@5.9.3)(yaml@2.9.0): dependencies: bundle-require: 5.1.0(esbuild@0.27.3) cac: 6.7.14 @@ -1687,7 +2098,7 @@ snapshots: fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1 + postcss-load-config: 6.0.1(yaml@2.9.0) resolve-from: 5.0.0 rollup: 4.59.0 source-map: 0.7.6 @@ -1707,6 +2118,19 @@ snapshots: dependencies: prelude-ls: 1.2.1 + typedoc-plugin-markdown@4.11.0(typedoc@0.28.19(typescript@5.9.3)): + dependencies: + typedoc: 0.28.19(typescript@5.9.3) + + typedoc@0.28.19(typescript@5.9.3): + dependencies: + '@gerrit0/mini-shiki': 3.23.0 + lunr: 2.3.9 + markdown-it: 14.2.0 + minimatch: 10.2.5 + typescript: 5.9.3 + yaml: 2.9.0 + typescript-eslint@8.56.1(eslint@10.0.3)(typescript@5.9.3): dependencies: '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.3)(typescript@5.9.3))(eslint@10.0.3)(typescript@5.9.3) @@ -1720,6 +2144,8 @@ snapshots: typescript@5.9.3: {} + uc.micro@2.1.0: {} + ufo@1.6.3: {} undici-types@6.21.0: {} @@ -1728,10 +2154,38 @@ snapshots: dependencies: punycode: 2.3.1 + v8-to-istanbul@9.3.0: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + which@2.0.2: dependencies: isexe: 2.0.0 word-wrap@1.2.5: {} + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + y18n@5.0.8: {} + + yaml@2.9.0: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + yocto-queue@0.1.0: {} diff --git a/typedoc.json b/typedoc.json new file mode 100644 index 0000000..245b17f --- /dev/null +++ b/typedoc.json @@ -0,0 +1,10 @@ +{ + "entryPoints": ["src/index.ts"], + "out": ".github/wiki/api", + "plugin": ["typedoc-plugin-markdown"], + "readme": "none", + "skipErrorChecking": false, + "excludePrivate": true, + "excludeProtected": true, + "includeVersion": true +}