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.
This commit is contained in:
Aric Camarata 2026-05-30 16:41:58 -04:00
parent af34aef986
commit 4227afc2c3
32 changed files with 1638 additions and 4 deletions

45
.github/wiki/api/README.md vendored Normal file
View file

@ -0,0 +1,45 @@
**pray-calc v2.1.1**
***
# pray-calc v2.1.1
## Interfaces
- [AtmosphericParams](interfaces/AtmosphericParams.md)
- [FormattedPrayerTimes](interfaces/FormattedPrayerTimes.md)
- [FormattedPrayerTimesAll](interfaces/FormattedPrayerTimesAll.md)
- [MethodDefinition](interfaces/MethodDefinition.md)
- [PrayerTimes](interfaces/PrayerTimes.md)
- [PrayerTimesAll](interfaces/PrayerTimesAll.md)
- [TwilightAngles](interfaces/TwilightAngles.md)
## Type Aliases
- [AsrConvention](type-aliases/AsrConvention.md)
- [FractionalHours](type-aliases/FractionalHours.md)
- [MethodEntry](type-aliases/MethodEntry.md)
- [ShafaqMode](type-aliases/ShafaqMode.md)
- [TimeString](type-aliases/TimeString.md)
## Variables
- [ANGLE\_MAX](variables/ANGLE_MAX.md)
- [ANGLE\_MIN](variables/ANGLE_MIN.md)
- [DHUHR\_OFFSET\_MINUTES](variables/DHUHR_OFFSET_MINUTES.md)
- [METHODS](variables/METHODS.md)
## Functions
- [calcTimes](functions/calcTimes.md)
- [calcTimesAll](functions/calcTimesAll.md)
- [getAngles](functions/getAngles.md)
- [getAsr](functions/getAsr.md)
- [getMidnight](functions/getMidnight.md)
- [getMscFajr](functions/getMscFajr.md)
- [getMscIsha](functions/getMscIsha.md)
- [getQiyam](functions/getQiyam.md)
- [getTimes](functions/getTimes.md)
- [getTimesAll](functions/getTimesAll.md)
- [solarEphemeris](functions/solarEphemeris.md)
- [toJulianDate](functions/toJulianDate.md)

81
.github/wiki/api/functions/calcTimes.md vendored Normal file
View file

@ -0,0 +1,81 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / calcTimes
# Function: calcTimes()
> **calcTimes**(`date`, `lat`, `lng`, `tz?`, `elevation?`, `temperature?`, `pressure?`, `hanafi?`): [`FormattedPrayerTimes`](../interfaces/FormattedPrayerTimes.md)
Defined in: [calcTimes.ts:30](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/calcTimes.ts#L30)
Compute prayer times formatted as HH:MM:SS strings.
Uses the dynamic twilight angle algorithm. See getTimes() for full parameter
documentation.
## Parameters
### date
`Date`
Observer's local date
### lat
`number`
Latitude in decimal degrees (-90 to 90)
### lng
`number`
Longitude in decimal degrees (-180 to 180)
### tz?
`number` = `...`
UTC offset in hours (default: system timezone)
### elevation?
`number` = `0`
Elevation in meters (default: 0)
### temperature?
`number` = `15`
Temperature in Celsius (default: 15)
### pressure?
`number` = `1013.25`
Pressure in mbar/hPa (default: 1013.25)
### hanafi?
`boolean` = `false`
Hanafi Asr convention (default: false)
## Returns
[`FormattedPrayerTimes`](../interfaces/FormattedPrayerTimes.md)
Prayer times as HH:MM:SS strings. Returns "N/A" for any time that
cannot be computed (polar night, unreachable angle, etc.).
## Example
```ts
const times = calcTimes(new Date('2024-06-21'), 40.7128, -74.006, -4);
console.log(times.Fajr); // "03:51:24"
console.log(times.Maghrib); // "20:31:17"
```

View file

@ -0,0 +1,81 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / calcTimesAll
# Function: calcTimesAll()
> **calcTimesAll**(`date`, `lat`, `lng`, `tz?`, `elevation?`, `temperature?`, `pressure?`, `hanafi?`): [`FormattedPrayerTimesAll`](../interfaces/FormattedPrayerTimesAll.md)
Defined in: [calcTimesAll.ts:30](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/calcTimesAll.ts#L30)
Compute prayer times formatted as HH:MM:SS strings, plus comparison times
for every supported traditional method.
Uses the dynamic twilight angle algorithm for the primary times. See
getTimesAll() for full parameter documentation.
## Parameters
### date
`Date`
Observer's local date
### lat
`number`
Latitude in decimal degrees (-90 to 90)
### lng
`number`
Longitude in decimal degrees (-180 to 180)
### tz?
`number` = `...`
UTC offset in hours (default: system timezone)
### elevation?
`number` = `0`
Elevation in meters (default: 0)
### temperature?
`number` = `15`
Temperature in Celsius (default: 15)
### pressure?
`number` = `1013.25`
Pressure in mbar/hPa (default: 1013.25)
### hanafi?
`boolean` = `false`
Hanafi Asr convention (default: false)
## Returns
[`FormattedPrayerTimesAll`](../interfaces/FormattedPrayerTimesAll.md)
All prayer times as HH:MM:SS strings. "N/A" for unreachable events.
## Example
```ts
const result = calcTimesAll(new Date('2024-06-21'), 40.7128, -74.006, -4);
console.log(result.dynamic.Fajr); // "03:51:24"
console.log(result.ISNA.Fajr); // "04:07:30"
```

57
.github/wiki/api/functions/getAngles.md vendored Normal file
View file

@ -0,0 +1,57 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / getAngles
# Function: getAngles()
> **getAngles**(`date`, `lat`, `lng`, `elevation?`, `temperature?`, `pressure?`): [`TwilightAngles`](../interfaces/TwilightAngles.md)
Defined in: [getAngles.ts:216](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/getAngles.ts#L216)
Compute dynamic twilight depression angles for Fajr and Isha.
## Parameters
### date
`Date`
Observer's local date (time-of-day is ignored)
### lat
`number`
Latitude in decimal degrees (-90 to 90)
### lng
`number`
Longitude in decimal degrees (-180 to 180, currently unused; reserved)
### elevation?
`number` = `0`
Observer elevation in meters (default: 0)
### temperature?
`number` = `15`
Ambient temperature in °C (default: 15)
### pressure?
`number` = `1013.25`
Atmospheric pressure in mbar (default: 1013.25)
## Returns
[`TwilightAngles`](../interfaces/TwilightAngles.md)
Fajr and Isha depression angles in degrees

45
.github/wiki/api/functions/getAsr.md vendored Normal file
View file

@ -0,0 +1,45 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / getAsr
# Function: getAsr()
> **getAsr**(`solarNoon`, `latitude`, `declination`, `hanafi?`): `number`
Defined in: [getAsr.ts:21](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/getAsr.ts#L21)
Compute Asr time as fractional hours.
## Parameters
### solarNoon
`number`
Solar noon in fractional hours (from getSpa)
### latitude
`number`
Observer latitude in degrees
### declination
`number`
Solar declination in degrees (from solarEphemeris)
### hanafi?
`boolean` = `false`
true for Hanafi (shadow factor 2), false for Shafi'i (factor 1)
## Returns
`number`
Fractional hours, or NaN if the sun never reaches the required altitude

View file

@ -0,0 +1,33 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / getMidnight
# Function: getMidnight()
> **getMidnight**(`maghribTime`, `endTime`): `number`
Defined in: [getMidnight.ts:16](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/getMidnight.ts#L16)
Compute the midpoint of the night.
## Parameters
### maghribTime
`number`
Maghrib (sunset) time in fractional hours
### endTime
`number`
Fajr or Sunrise time in fractional hours (next day)
## Returns
`number`
Midnight as fractional hours

View file

@ -0,0 +1,43 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / getMscFajr
# Function: getMscFajr()
> **getMscFajr**(`date`, `latitude`): `number`
Defined in: [getMSC.ts:103](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/getMSC.ts#L103)
Compute Fajr offset in minutes before sunrise using the MCW algorithm.
Returns minutes before sunrise. At latitudes above 55°, the 1/7-night
approximation is recommended (handled at the calling site).
## Parameters
### date
`Date`
Observer's local date
### latitude
`number`
Observer latitude in decimal degrees
## Returns
`number`
Minutes before sunrise for Fajr (Subh Sadiq)
## Example
```ts
const offset = getMscFajr(new Date('2024-06-21'), 40.7128);
// offset ≈ 93 (minutes before sunrise for New York in summer)
```

View file

@ -0,0 +1,51 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / getMscIsha
# Function: getMscIsha()
> **getMscIsha**(`date`, `latitude`, `shafaq?`): `number`
Defined in: [getMSC.ts:133](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/getMSC.ts#L133)
Compute Isha offset in minutes after sunset using the MCW algorithm.
Three Shafaq modes:
- 'general': blend that reduces hardship at high latitudes (default)
- 'ahmer': based on disappearance of redness (shafaq ahmer)
- 'abyad': based on disappearance of whiteness (shafaq abyad), later
## Parameters
### date
`Date`
Observer's local date
### latitude
`number`
Observer latitude in decimal degrees
### shafaq?
`ShafaqMode` = `'general'`
Twilight type: 'general' | 'ahmer' | 'abyad'
## Returns
`number`
Minutes after sunset for Isha
## Example
```ts
const offset = getMscIsha(new Date('2024-06-21'), 40.7128, 'general');
// offset ≈ 84
```

33
.github/wiki/api/functions/getQiyam.md vendored Normal file
View file

@ -0,0 +1,33 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / getQiyam
# Function: getQiyam()
> **getQiyam**(`fajrTime`, `ishaTime`): `number`
Defined in: [getQiyam.ts:16](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/getQiyam.ts#L16)
Compute the start of the last third of the night.
## Parameters
### fajrTime
`number`
Fajr time in fractional hours
### ishaTime
`number`
Isha time in fractional hours
## Returns
`number`
Start of the last third of the night (fractional hours)

80
.github/wiki/api/functions/getTimes.md vendored Normal file
View file

@ -0,0 +1,80 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / getTimes
# Function: getTimes()
> **getTimes**(`date`, `lat`, `lng`, `tz?`, `elevation?`, `temperature?`, `pressure?`, `hanafi?`): [`PrayerTimes`](../interfaces/PrayerTimes.md)
Defined in: [getTimes.ts:39](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/getTimes.ts#L39)
Compute prayer times for a given date and location.
Uses the dynamic twilight angle algorithm to determine Fajr and Isha
depression angles, then solves for all prayer events via SPA.
## Parameters
### date
`Date`
Observer's local date (time-of-day is ignored)
### lat
`number`
Latitude in decimal degrees (-90 to 90, south = negative)
### lng
`number`
Longitude in decimal degrees (-180 to 180, west = negative)
### tz?
`number` = `...`
UTC offset in hours (e.g. -5 for EST). Defaults to the
system timezone derived from the Date object.
### elevation?
`number` = `0`
Observer elevation in meters (default: 0)
### temperature?
`number` = `15`
Ambient temperature in °C (default: 15)
### pressure?
`number` = `1013.25`
Atmospheric pressure in mbar/hPa (default: 1013.25)
### hanafi?
`boolean` = `false`
Asr convention: false = Shafi'i/Maliki/Hanbali (default),
true = Hanafi
## Returns
[`PrayerTimes`](../interfaces/PrayerTimes.md)
Prayer times as fractional hours and the dynamic angles used.
Any time that cannot be computed (e.g. polar night/day, or the
sun never reaching the required depression) is returned as `NaN`.
## Throws
if lat, lng, tz, or elevation are out of valid range

View file

@ -0,0 +1,75 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / getTimesAll
# Function: getTimesAll()
> **getTimesAll**(`date`, `lat`, `lng`, `tz?`, `elevation?`, `temperature?`, `pressure?`, `hanafi?`): [`PrayerTimesAll`](../interfaces/PrayerTimesAll.md)
Defined in: [getTimesAll.ts:152](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/getTimesAll.ts#L152)
Compute prayer times plus all traditional method comparisons.
## Parameters
### date
`Date`
Observer's local date (time-of-day is ignored)
### lat
`number`
Latitude in decimal degrees (-90 to 90)
### lng
`number`
Longitude in decimal degrees (-180 to 180)
### tz?
`number` = `...`
UTC offset in hours (defaults to system tz)
### elevation?
`number` = `0`
Observer elevation in meters (default: 0)
### temperature?
`number` = `15`
Ambient temperature in °C (default: 15)
### pressure?
`number` = `1013.25`
Atmospheric pressure in mbar (default: 1013.25)
### hanafi?
`boolean` = `false`
Asr convention: false = Shafi'i (default), true = Hanafi
## Returns
[`PrayerTimesAll`](../interfaces/PrayerTimesAll.md)
Prayer times for the dynamic method plus all traditional methods.
Any time that cannot be computed is returned as `NaN`.
Methods map contains `[fajrTime, ishaTime]` per method.
## Throws
if lat, lng, tz, or elevation are out of valid range

View file

@ -0,0 +1,36 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / solarEphemeris
# Function: solarEphemeris()
> **solarEphemeris**(`jd`): `SolarEphemeris`
Defined in: [getSolarEphemeris.ts:46](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/getSolarEphemeris.ts#L46)
Compute solar declination, Earth-Sun distance, and ecliptic longitude
from a Julian Date. Accuracy: ~0.01° for declination, ~0.0001 AU for r.
## Parameters
### jd
`number`
Julian Date (use toJulianDate to convert a JS Date)
## Returns
`SolarEphemeris`
Solar ephemeris data: declination (degrees), Earth-Sun distance (AU),
and ecliptic longitude (radians, 0-2π season phase)
## Example
```ts
const jd = toJulianDate(new Date('2024-06-21'));
const { decl, r, eclLon } = solarEphemeris(jd);
```

View file

@ -0,0 +1,34 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / toJulianDate
# Function: toJulianDate()
> **toJulianDate**(`date`): `number`
Defined in: [getSolarEphemeris.ts:22](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/getSolarEphemeris.ts#L22)
Convert a JavaScript Date to a Julian Date number.
## Parameters
### date
`Date`
Any JavaScript Date object (uses UTC internally)
## Returns
`number`
Julian Date: days since noon January 1, 4713 BC UTC
## Example
```ts
const jd = toJulianDate(new Date('2024-06-21'));
// jd ≈ 2460482.5
```

View file

@ -0,0 +1,35 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / AtmosphericParams
# Interface: AtmosphericParams
Defined in: [types.ts:97](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L97)
Optional atmospheric and elevation parameters.
## Properties
### elevation?
> `optional` **elevation?**: `number`
Defined in: [types.ts:98](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L98)
***
### pressure?
> `optional` **pressure?**: `number`
Defined in: [types.ts:100](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L100)
***
### temperature?
> `optional` **temperature?**: `number`
Defined in: [types.ts:99](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L99)

View file

@ -0,0 +1,91 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / FormattedPrayerTimes
# Interface: FormattedPrayerTimes
Defined in: [types.ts:50](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L50)
Prayer times formatted as HH:MM:SS strings.
## Properties
### angles
> **angles**: [`TwilightAngles`](TwilightAngles.md)
Defined in: [types.ts:60](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L60)
***
### Asr
> **Asr**: `string`
Defined in: [types.ts:56](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L56)
***
### Dhuhr
> **Dhuhr**: `string`
Defined in: [types.ts:55](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L55)
***
### Fajr
> **Fajr**: `string`
Defined in: [types.ts:52](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L52)
***
### Isha
> **Isha**: `string`
Defined in: [types.ts:58](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L58)
***
### Maghrib
> **Maghrib**: `string`
Defined in: [types.ts:57](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L57)
***
### Midnight
> **Midnight**: `string`
Defined in: [types.ts:59](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L59)
***
### Noon
> **Noon**: `string`
Defined in: [types.ts:54](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L54)
***
### Qiyam
> **Qiyam**: `string`
Defined in: [types.ts:51](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L51)
***
### Sunrise
> **Sunrise**: `string`
Defined in: [types.ts:53](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L53)

View file

@ -0,0 +1,101 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / FormattedPrayerTimesAll
# Interface: FormattedPrayerTimesAll
Defined in: [types.ts:81](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L81)
Prayer times plus all method comparison times, fully formatted.
## Properties
### angles
> **angles**: [`TwilightAngles`](TwilightAngles.md)
Defined in: [types.ts:91](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L91)
***
### Asr
> **Asr**: `string`
Defined in: [types.ts:87](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L87)
***
### Dhuhr
> **Dhuhr**: `string`
Defined in: [types.ts:86](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L86)
***
### Fajr
> **Fajr**: `string`
Defined in: [types.ts:83](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L83)
***
### Isha
> **Isha**: `string`
Defined in: [types.ts:89](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L89)
***
### Maghrib
> **Maghrib**: `string`
Defined in: [types.ts:88](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L88)
***
### Methods
> **Methods**: `Record`\<`string`, \[[`TimeString`](../type-aliases/TimeString.md), [`TimeString`](../type-aliases/TimeString.md)\]\>
Defined in: [types.ts:93](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L93)
Formatted comparison times for each method: [fajrString, ishaString].
***
### Midnight
> **Midnight**: `string`
Defined in: [types.ts:90](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L90)
***
### Noon
> **Noon**: `string`
Defined in: [types.ts:85](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L85)
***
### Qiyam
> **Qiyam**: `string`
Defined in: [types.ts:82](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L82)
***
### Sunrise
> **Sunrise**: `string`
Defined in: [types.ts:84](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L84)

View file

@ -0,0 +1,85 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / MethodDefinition
# Interface: MethodDefinition
Defined in: [types.ts:104](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L104)
Internal record for a single traditional method definition.
## Properties
### fajrAngle
> **fajrAngle**: `number` \| `null`
Defined in: [types.ts:115](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L115)
Fajr depression angle in degrees. Null means the method uses a
seasonal calculation (MSC) rather than a fixed angle.
***
### id
> **id**: `string`
Defined in: [types.ts:106](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L106)
Short identifier used as the Methods map key.
***
### ishaAngle
> **ishaAngle**: `number` \| `null`
Defined in: [types.ts:120](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L120)
Isha depression angle in degrees. Null means the method uses a
fixed-minute offset or seasonal calculation instead.
***
### ishaMinutes?
> `optional` **ishaMinutes?**: `number`
Defined in: [types.ts:125](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L125)
Fixed minutes after sunset for Isha. Overrides ishaAngle when set.
UAQ uses 90 year-round; Qatar uses 90 as well.
***
### name
> **name**: `string`
Defined in: [types.ts:108](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L108)
Human-readable name.
***
### region
> **region**: `string`
Defined in: [types.ts:110](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L110)
Geographic region of primary use.
***
### useMSC?
> `optional` **useMSC?**: `boolean`
Defined in: [types.ts:130](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L130)
When true, the method uses the MSC seasonal algorithm for both
Fajr and Isha.

View file

@ -0,0 +1,115 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / PrayerTimes
# Interface: PrayerTimes
Defined in: [types.ts:26](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L26)
Raw prayer times as fractional hours.
## Extended by
- [`PrayerTimesAll`](PrayerTimesAll.md)
## Properties
### angles
> **angles**: [`TwilightAngles`](TwilightAngles.md)
Defined in: [types.ts:46](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L46)
Dynamic twilight angles used for this calculation.
***
### Asr
> **Asr**: `number`
Defined in: [types.ts:38](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L38)
Asr (Shafi'i or Hanafi shadow convention).
***
### Dhuhr
> **Dhuhr**: `number`
Defined in: [types.ts:36](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L36)
Dhuhr (2.5 minutes after solar noon).
***
### Fajr
> **Fajr**: `number`
Defined in: [types.ts:30](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L30)
True dawn (Subh Sadiq).
***
### Isha
> **Isha**: `number`
Defined in: [types.ts:42](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L42)
Isha (nightfall, end of shafaq).
***
### Maghrib
> **Maghrib**: `number`
Defined in: [types.ts:40](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L40)
Maghrib (sunset).
***
### Midnight
> **Midnight**: `number`
Defined in: [types.ts:44](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L44)
Midnight: midpoint between Maghrib and Fajr.
***
### Noon
> **Noon**: `number`
Defined in: [types.ts:34](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L34)
Solar noon (exact geometric transit).
***
### Qiyam
> **Qiyam**: `number`
Defined in: [types.ts:28](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L28)
Start of the last third of the night (Qiyam al-Layl).
***
### Sunrise
> **Sunrise**: `number`
Defined in: [types.ts:32](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L32)
Astronomical sunrise.

View file

@ -0,0 +1,165 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / PrayerTimesAll
# Interface: PrayerTimesAll
Defined in: [types.ts:75](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L75)
Prayer times plus all method comparison times as fractional hours.
## Extends
- [`PrayerTimes`](PrayerTimes.md)
## Properties
### angles
> **angles**: [`TwilightAngles`](TwilightAngles.md)
Defined in: [types.ts:46](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L46)
Dynamic twilight angles used for this calculation.
#### Inherited from
[`PrayerTimes`](PrayerTimes.md).[`angles`](PrayerTimes.md#angles)
***
### Asr
> **Asr**: `number`
Defined in: [types.ts:38](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L38)
Asr (Shafi'i or Hanafi shadow convention).
#### Inherited from
[`PrayerTimes`](PrayerTimes.md).[`Asr`](PrayerTimes.md#asr)
***
### Dhuhr
> **Dhuhr**: `number`
Defined in: [types.ts:36](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L36)
Dhuhr (2.5 minutes after solar noon).
#### Inherited from
[`PrayerTimes`](PrayerTimes.md).[`Dhuhr`](PrayerTimes.md#dhuhr)
***
### Fajr
> **Fajr**: `number`
Defined in: [types.ts:30](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L30)
True dawn (Subh Sadiq).
#### Inherited from
[`PrayerTimes`](PrayerTimes.md).[`Fajr`](PrayerTimes.md#fajr)
***
### Isha
> **Isha**: `number`
Defined in: [types.ts:42](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L42)
Isha (nightfall, end of shafaq).
#### Inherited from
[`PrayerTimes`](PrayerTimes.md).[`Isha`](PrayerTimes.md#isha)
***
### Maghrib
> **Maghrib**: `number`
Defined in: [types.ts:40](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L40)
Maghrib (sunset).
#### Inherited from
[`PrayerTimes`](PrayerTimes.md).[`Maghrib`](PrayerTimes.md#maghrib)
***
### Methods
> **Methods**: `Record`\<`string`, [`MethodEntry`](../type-aliases/MethodEntry.md)\>
Defined in: [types.ts:77](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L77)
Comparison results from all supported fixed-angle and seasonal methods.
***
### Midnight
> **Midnight**: `number`
Defined in: [types.ts:44](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L44)
Midnight: midpoint between Maghrib and Fajr.
#### Inherited from
[`PrayerTimes`](PrayerTimes.md).[`Midnight`](PrayerTimes.md#midnight)
***
### Noon
> **Noon**: `number`
Defined in: [types.ts:34](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L34)
Solar noon (exact geometric transit).
#### Inherited from
[`PrayerTimes`](PrayerTimes.md).[`Noon`](PrayerTimes.md#noon)
***
### Qiyam
> **Qiyam**: `number`
Defined in: [types.ts:28](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L28)
Start of the last third of the night (Qiyam al-Layl).
#### Inherited from
[`PrayerTimes`](PrayerTimes.md).[`Qiyam`](PrayerTimes.md#qiyam)
***
### Sunrise
> **Sunrise**: `number`
Defined in: [types.ts:32](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L32)
Astronomical sunrise.
#### Inherited from
[`PrayerTimes`](PrayerTimes.md).[`Sunrise`](PrayerTimes.md#sunrise)

View file

@ -0,0 +1,31 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / TwilightAngles
# Interface: TwilightAngles
Defined in: [types.ts:18](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L18)
Computed twilight depression angles for Fajr and Isha.
## Properties
### fajrAngle
> **fajrAngle**: `number`
Defined in: [types.ts:20](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L20)
Solar depression angle for Fajr (positive degrees below horizon).
***
### ishaAngle
> **ishaAngle**: `number`
Defined in: [types.ts:22](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L22)
Solar depression angle for Isha (positive degrees below horizon).

View file

@ -0,0 +1,13 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / AsrConvention
# Type Alias: AsrConvention
> **AsrConvention** = `"shafii"` \| `"hanafi"`
Defined in: [types.ts:12](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L12)
Asr shadow convention: Shafi'i (shadow = 1x object length) or Hanafi (2x).

View file

@ -0,0 +1,13 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / FractionalHours
# Type Alias: FractionalHours
> **FractionalHours** = `number`
Defined in: [types.ts:6](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L6)
Fractional hours (e.g. 5.5 = 05:30:00). NaN indicates an unreachable event.

View file

@ -0,0 +1,19 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / MethodEntry
# Type Alias: MethodEntry
> **MethodEntry** = \[[`FractionalHours`](FractionalHours.md), [`FractionalHours`](FractionalHours.md)\]
Defined in: [types.ts:72](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L72)
Method entry in the Methods map: `[fajrTime, ishaTime]` as fractional hours.
- Index 0 (`fajr`): Fajr time for this method (fractional hours, or `NaN`)
- Index 1 (`isha`): Isha time for this method (fractional hours, or `NaN`)
A value of `NaN` indicates the event is unreachable at this location/date
(e.g. the sun never dips to 18° below the horizon at high latitudes in summer).

View file

@ -0,0 +1,13 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / ShafaqMode
# Type Alias: ShafaqMode
> **ShafaqMode** = `"general"` \| `"ahmer"` \| `"abyad"`
Defined in: [types.ts:15](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L15)
Shafaq (twilight glow) variant for the MSC Isha model.

View file

@ -0,0 +1,13 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / TimeString
# Type Alias: TimeString
> **TimeString** = `string`
Defined in: [types.ts:9](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/types.ts#L9)
HH:MM:SS string produced by formatTime, or "N/A" when unreachable.

17
.github/wiki/api/variables/ANGLE_MAX.md vendored Normal file
View file

@ -0,0 +1,17 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / ANGLE\_MAX
# Variable: ANGLE\_MAX
> `const` **ANGLE\_MAX**: `22` = `22`
Defined in: [constants.ts:35](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/constants.ts#L35)
Maximum allowed dynamic twilight depression angle (degrees).
22° is the upper clamp. Values above ~20° correspond to deep
astronomical twilight where the sky is indistinguishable from full
night. No standard method exceeds 20° for Fajr.

17
.github/wiki/api/variables/ANGLE_MIN.md vendored Normal file
View file

@ -0,0 +1,17 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / ANGLE\_MIN
# Variable: ANGLE\_MIN
> `const` **ANGLE\_MIN**: `10` = `10`
Defined in: [constants.ts:26](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/constants.ts#L26)
Minimum allowed dynamic twilight depression angle (degrees).
At very high latitudes in summer the MCW base angle can drop below
physically meaningful values. 10° is the lower clamp — below this
the sky is too bright for any twilight definition.

View file

@ -0,0 +1,19 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / DHUHR\_OFFSET\_MINUTES
# Variable: DHUHR\_OFFSET\_MINUTES
> `const` **DHUHR\_OFFSET\_MINUTES**: `2.5` = `2.5`
Defined in: [constants.ts:17](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/constants.ts#L17)
Minutes added to solar noon to obtain Dhuhr time.
Standard practice adds a small buffer after geometric solar transit to
ensure the sun has clearly passed the meridian before Dhuhr begins.
The 2.5-minute convention is widely used across Islamic timekeeping
authorities and accounts for the sun's angular diameter (~0.5°) plus
a small safety margin.

13
.github/wiki/api/variables/METHODS.md vendored Normal file
View file

@ -0,0 +1,13 @@
[**pray-calc v2.1.1**](../README.md)
***
[pray-calc](../README.md) / METHODS
# Variable: METHODS
> `const` **METHODS**: [`MethodDefinition`](../interfaces/MethodDefinition.md)[]
Defined in: [getTimesAll.ts:38](https://github.com/acamarata/pray-calc/blob/af34aef986c37d8de9cf8db0744a41e3b0c99c40/src/getTimesAll.ts#L38)
All supported traditional methods.

View file

@ -32,6 +32,7 @@
"format:check": "prettier --check src/",
"prepublishOnly": "tsup",
"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": [
@ -82,6 +83,8 @@
"eslint-config-prettier": "^10.1.8",
"prettier": "^3.8.1",
"tsup": "^8.5.1",
"typedoc": "^0.28.19",
"typedoc-plugin-markdown": "^4.11.0",
"typescript": "^5.9.3",
"typescript-eslint": "^8.56.1"
},

View file

@ -41,7 +41,13 @@ importers:
version: 3.8.1
tsup:
specifier: ^8.5.1
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.9.3
version: 5.9.3
@ -276,6 +282,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'}
@ -442,12 +451,30 @@ 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==}
@ -457,6 +484,9 @@ packages:
'@types/node@25.3.0':
resolution: {integrity: sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==}
'@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}
@ -548,6 +578,9 @@ packages:
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@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
@ -562,6 +595,10 @@ 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}
@ -636,6 +673,10 @@ packages:
emoji-regex@9.2.2:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
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'}
@ -831,6 +872,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}
@ -842,6 +886,9 @@ packages:
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
lunr@2.3.9:
resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==}
magic-string@0.30.21:
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
@ -849,10 +896,21 @@ packages:
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}
minimatch@9.0.9:
resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==}
engines: {node: '>=16 || 14 >=14.17'}
@ -952,6 +1010,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'}
@ -1073,6 +1135,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}
@ -1085,6 +1160,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==}
@ -1119,6 +1197,11 @@ packages:
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'}
@ -1260,6 +1343,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':
@ -1374,10 +1465,34 @@ 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': {}
@ -1386,6 +1501,8 @@ snapshots:
dependencies:
undici-types: 7.18.2
'@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
@ -1502,6 +1619,8 @@ snapshots:
any-promise@1.3.0: {}
argparse@2.0.1: {}
balanced-match@1.0.2: {}
balanced-match@4.0.4: {}
@ -1514,6 +1633,10 @@ snapshots:
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
@ -1577,6 +1700,8 @@ snapshots:
emoji-regex@9.2.2: {}
entities@4.5.0: {}
esbuild@0.27.3:
optionalDependencies:
'@esbuild/aix-ppc64': 0.27.3
@ -1793,6 +1918,10 @@ 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:
@ -1801,6 +1930,8 @@ snapshots:
lru-cache@10.4.3: {}
lunr@2.3.9: {}
magic-string@0.30.21:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
@ -1809,10 +1940,25 @@ snapshots:
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
minimatch@9.0.9:
dependencies:
brace-expansion: 2.1.1
@ -1882,14 +2028,18 @@ 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: {}
@ -2004,7 +2154,7 @@ snapshots:
ts-interface-checker@0.1.13: {}
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
@ -2015,7 +2165,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
@ -2035,6 +2185,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)
@ -2048,6 +2211,8 @@ snapshots:
typescript@5.9.3: {}
uc.micro@2.1.0: {}
ufo@1.6.3: {}
undici-types@7.18.2: {}
@ -2082,6 +2247,8 @@ snapshots:
y18n@5.0.8: {}
yaml@2.9.0: {}
yargs-parser@21.1.1: {}
yargs@17.7.2:

10
typedoc.json Normal file
View file

@ -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
}