diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index ab8dce1..c8a2140 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -12,35 +12,45 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- node: ['14.x', '16.x']
+ node: ['18.x', '20.x']
steps:
- name: Checkout repo
- uses: actions/checkout@v2
+ uses: actions/checkout@v4
- - name: Use Node ${{ matrix.node }}
- uses: actions/setup-node@v1
+ - name: Setup PNPM
+ uses: pnpm/action-setup@v4
+
+ - name: Install Node.js ${{ matrix.node }}
+ uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
-
- - name: Install deps and build (with cache)
- uses: bahmutov/npm-install@v1
+ cache: "pnpm"
+
+ - name: Install dependencies
+ shell: bash
+ run: pnpm install
- name: Lint
- run: yarn lint --quiet
+ run: pnpm lint --quiet
- name: Test
- run: yarn test:coverage
+ run: pnpm test:coverage
- name: Build
- run: yarn build
+ run: pnpm build
size:
runs-on: ubuntu-latest
env:
CI_JOB_NUMBER: 1
steps:
- - uses: actions/checkout@v1
+ - name: Checkout repo
+ uses: actions/checkout@v4
+
+ - name: Setup PNPM
+ uses: pnpm/action-setup@v4
+
- uses: andresz1/size-limit-action@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/README.md b/README.md
index bc541a5..7cf417c 100644
--- a/README.md
+++ b/README.md
@@ -29,7 +29,7 @@ you can visit the [docs][docs] for more details.
-[qdc-api]: https://api-docs.quran.com/
+[qdc-api]: https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/quran-com-api
[docs]: https://quranjs.vercel.app/
[build-badge]: https://github.com/quran/api-js/workflows/CI/badge.svg
[build]: https://github.com/quran/api-js/actions?query=workflow%3ACI
diff --git a/docs/src/pages/audio.mdx b/docs/src/pages/audio.mdx
index 40f6981..2f6b438 100644
--- a/docs/src/pages/audio.mdx
+++ b/docs/src/pages/audio.mdx
@@ -2,7 +2,7 @@
Get all chapter recitations for specific reciter.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/audio-recitations/list-of-all-surah-audio-files-for-specific-reciter)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/chapter-reciter-audio-files)
**Params:**
@@ -23,7 +23,7 @@ quran.v4.audio.findAllChapterRecitations('2'); // abdulbaset abdulsamad
Get chapter recitation for specific reciter and a specific chapter.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/audio-recitations/get-single-surah-audio-for-specific-reciter)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/chapter-reciter-audio-file)
**Params:**
@@ -45,7 +45,7 @@ quran.v4.audio.findChapterRecitationById('1', '2'); // first chapter recitation
Get all verse audio files for a specific reciter and a specific chapter.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/audio-recitations/get-ayah-recitations-for-specific-surah)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/list-surah-recitation)
**Params:**
@@ -67,7 +67,7 @@ quran.v4.audio.findVerseRecitationsByChapter('1', '2');
Get all verse audio files for a specific reciter and a specific hizb.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/audio-recitations/get-ayah-recitations-for-specific-hizb)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/list-hizb-recitaiton)
**Params:**
@@ -89,7 +89,7 @@ quran.v4.audio.findVerseRecitationsByHizb('1', '2');
Get all verse audio files for a specific reciter and a specific juz.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/audio-recitations/get-ayah-recitations-for-specific-juz)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/list-juz-recitaiton)
**Params:**
@@ -111,7 +111,7 @@ quran.v4.audio.findVerseRecitationsByJuz('1', '2');
Get all verse audio files for a specific reciter and a specific verse.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/audio-recitations/get-ayah-recitations-for-specific-ayah)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/list-ayah-recitaiton)
**Params:**
@@ -133,7 +133,7 @@ quran.v4.audio.findVerseRecitationsByKey('1:1', '2');
Get all verse audio files for a specific reciter and a specific mushaf page.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/audio-recitations/get-ayah-recitations-for-specific-madani-mushaf-page)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/list-page-recitaiton)
**Params:**
@@ -155,7 +155,7 @@ quran.v4.audio.findVerseRecitationsByPage('1', '2');
Get all verse audio files for a specific reciter and a specific rub.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/audio-recitations/get-ayah-recitations-for-specific-rub)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/list-rub-el-hizb-recitaiton)
**Params:**
diff --git a/docs/src/pages/chapters.mdx b/docs/src/pages/chapters.mdx
index d172624..4d05691 100644
--- a/docs/src/pages/chapters.mdx
+++ b/docs/src/pages/chapters.mdx
@@ -2,7 +2,7 @@
Get all chapters.
-- [Quran.api API Docs](https://quran.api-docs.io/v4/chapters/list-chapters)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/list-chapters)
**Params:**
@@ -22,7 +22,7 @@ quran.v4.chapters.findAll();
Get chapter by id.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/chapters/get-chapter)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/get-chapter)
**Params:**
@@ -44,7 +44,7 @@ quran.v4.chapters.findById('114');
Get chapter info by id.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/chapters/chapter_info)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/info)
**Params:**
diff --git a/docs/src/pages/index.mdx b/docs/src/pages/index.mdx
index 106ad8b..efedc87 100644
--- a/docs/src/pages/index.mdx
+++ b/docs/src/pages/index.mdx
@@ -3,7 +3,7 @@ import { Tab, Tabs } from 'nextra-theme-docs';
-A library for fetching quran data from the [Quran.com API](https://quran.api-docs.io/). This library also works on both Node.js and the browser.
+A library for fetching quran data from the [Quran.com API](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/quran-com-api). This library also works on both Node.js and the browser.
- [NPM](https://www.npmjs.com/package/@quranjs/api)
- [MIT License](https://github.com/quran/api-js/blob/master/LICENSE)
@@ -11,7 +11,12 @@ A library for fetching quran data from the [Quran.com API](https://quran.api-doc
## Installation
{/* prettier-ignore-start */}
-
+
+
+ ```bash
+ pnpm add @quranjs/api
+ ```
+
```bash
npm install @quranjs/api
@@ -22,6 +27,16 @@ A library for fetching quran data from the [Quran.com API](https://quran.api-doc
yarn add @quranjs/api
```
+
+ ```html
+
+
+ ```
+
{/* prettier-ignore-end */}
diff --git a/docs/src/pages/juzs.mdx b/docs/src/pages/juzs.mdx
index 174a9b2..9b24051 100644
--- a/docs/src/pages/juzs.mdx
+++ b/docs/src/pages/juzs.mdx
@@ -2,7 +2,7 @@
Get All Juzs
-- [Quran.com API Docs](https://quran.api-docs.io/v4/juz/get-all-juzs)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/juzs)
**Example:**
diff --git a/docs/src/pages/resources.mdx b/docs/src/pages/resources.mdx
index e0e4986..af362d0 100644
--- a/docs/src/pages/resources.mdx
+++ b/docs/src/pages/resources.mdx
@@ -2,7 +2,7 @@
Get all chapter infos.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/resources/chapter-info)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/chapter-info)
**Params:**
@@ -22,7 +22,7 @@ quran.v4.resources.findAllChapterInfos();
Get all chapter reciters.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/resources/list-of-chapter-reciters)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/chapter-reciters)
**Params:**
@@ -42,7 +42,7 @@ quran.v4.resources.findAllChapterReciters();
Get all languages.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/resources/languages)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/languages)
**Params:**
@@ -62,7 +62,7 @@ quran.v4.resources.findAllLanguages();
Get all recitations.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/resources/recitations)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/recitations)
**Params:**
@@ -78,11 +78,32 @@ Get all recitations.
quran.v4.resources.findAllRecitations();
```
+## findRecitationInfo
+
+Get recitation info.
+
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/recitation-info)
+
+**Params:**
+
+`resources.findRecitationInfo(id: string, options?: GetResourceOptions)`
+
+| Param | Type |
+| ------- | -------------------- |
+| id | `string` |
+| options | `GetResourceOptions` |
+
+**Example:**
+
+```js
+quran.v4.resources.findRecitationInfo('1');
+```
+
## findAllRecitationStyles
Get all recitation styles.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/resources/recitation-styles)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/recitation-styles)
**Example:**
@@ -94,7 +115,7 @@ quran.v4.resources.findAllRecitationStyles();
Get all tafsirs.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/resources/tafsirs)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/tafsirs)
**Params:**
@@ -110,11 +131,32 @@ Get all tafsirs.
quran.v4.resources.findAllTafsirs();
```
+## findTafsirInfo
+
+Get tafsir info.
+
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/tafsir-info)
+
+**Params:**
+
+`resources.findTafsirInfo(id: string, options?: GetResourceOptions)`
+
+| Param | Type |
+| ------- | -------------------- |
+| id | `string` |
+| options | `GetResourceOptions` |
+
+**Example:**
+
+```js
+quran.v4.resources.findTafsirInfo('1');
+```
+
## findAllTranslations
Get all translations.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/resources/translations)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/translations)
**Params:**
@@ -130,11 +172,32 @@ Get all translations.
quran.v4.resources.findAllTranslations();
```
+## findTranslationInfo
+
+Get all translations.
+
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/translation-info)
+
+**Params:**
+
+`resources.findTranslationInfo(id: string, options?: GetResourceOptions)`
+
+| Param | Type |
+| ------- | -------------------- |
+| id | `string` |
+| options | `GetResourceOptions` |
+
+**Example:**
+
+```js
+quran.v4.resources.findTranslationInfo('169');
+```
+
## findVerseMedia
Get verse media.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/resources/verse_media)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/verse-media)
**Params:**
diff --git a/docs/src/pages/search.mdx b/docs/src/pages/search.mdx
index 0fd0e70..0485e6d 100644
--- a/docs/src/pages/search.mdx
+++ b/docs/src/pages/search.mdx
@@ -1,6 +1,6 @@
## search
-- [Quran.com API Docs](https://quran.api-docs.io/v4/search/KfCmk4KQYbtyK9adj)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/search)
**Params:**
diff --git a/docs/src/pages/techniques.mdx b/docs/src/pages/techniques.mdx
index 49688a6..2159a0f 100644
--- a/docs/src/pages/techniques.mdx
+++ b/docs/src/pages/techniques.mdx
@@ -1,6 +1,6 @@
## Custom fetcher
-By default, all functions that interact with the [Quran.com API](https://quran.api-docs.io/v4) use the global `fetch` function.
+By default, all functions that interact with the [Quran.com API](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/quran-com-api) use the global `fetch` function.
You can override this by passing a custom fetcher (as `fetchFn`) to the options object of any method.
diff --git a/docs/src/pages/verses.mdx b/docs/src/pages/verses.mdx
index baccd58..d3577b7 100644
--- a/docs/src/pages/verses.mdx
+++ b/docs/src/pages/verses.mdx
@@ -2,16 +2,16 @@
Get all ayahs for a specific chapter.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/verses/by_chapter)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/verses-by-chapter-number)
**Params:**
`verses.findByChapter(id: ChapterId, options?: GetVerseOptions)`
-| Param | Type |
-| ------- | ---------------------------------- |
-| id | ChapterId (minimum 1, maximum 114) |
-| options | `GetVerseOptions` |
+| Param | Type |
+| ------- | ------------------------------------ |
+| id | `ChapterId` (minimum 1, maximum 114) |
+| options | `GetVerseOptions` |
**Example:**
@@ -24,16 +24,16 @@ quran.v4.verses.findByChapter('114');
Get all ayahs for a Juz.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/verses/by-juz)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/verses-by-juz-number)
**Params:**
`verses.findByJuz(juz: JuzNumber, options?: GetVerseOptions)`
-| Param | Type |
-| ------- | --------------------------------- |
-| juz | JuzNumber (minimum 1, maximum 30) |
-| options | `GetVerseOptions` |
+| Param | Type |
+| ------- | ----------------------------------- |
+| juz | `JuzNumber` (minimum 1, maximum 30) |
+| options | `GetVerseOptions` |
**Example:**
@@ -46,7 +46,7 @@ quran.v4.verses.findByJuz('30');
Get a specific ayah with key. Key is combination of surah number and ayah number.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/verses/by-specific-verse-by-key)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/verses-by-verse-key)
**Params:**
@@ -68,16 +68,16 @@ quran.v4.verses.findByKey('101:5');
Get all ayahs for a specific page in the Quran.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/verses/by-page)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/verses-by-page-number)
**Params:**
`verses.findByKey(page: PageNumber, options?: GetVerseOptions)`
-| Param | Type | Description |
-| ------- | ---------------------------- | ----------------- |
-| page | PageNumber
| Quran page number |
-| options | GetVerseOptions
| |
+| Param | Type |
+| ------- | ------------------------------------- |
+| page | `PageNumber` (minimum 1, maximum 604) |
+| options | `GetVerseOptions` |
**Example:**
@@ -90,7 +90,7 @@ quran.v4.verses.findByPage('101');
Get a random ayah.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/verses/random)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/random-verse)
**Params:**
@@ -110,16 +110,16 @@ quran.v4.verses.findRandom();
Get all ayahs of a specific Hizb.
-- [Quran.com API Docs](https://quran.api-docs.io/v4/verses/by-hizb-number)
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/verses-by-hizb-number)
**Params:**
`verses.findByHizb(id: HizbNumber, options?: GetVerseOptions)`
-| Param | Type | Description |
-| ------- | ---------------------------- | ----------------- |
-| page | HizbNumber
| Quran Hizb number |
-| options | GetVerseOptions
| |
+| Param | Type |
+| ------- | ------------------------------------ |
+| hizb | `HizbNumber` (minimum 1, maximum 60) |
+| options | `GetVerseOptions` |
**Example:**
@@ -127,3 +127,25 @@ Get all ayahs of a specific Hizb.
quran.v4.verses.findByHizb('1');
quran.v4.verses.findByHizb('60');
```
+
+## findByRub
+
+Get all ayahs of a specific Rub.
+
+- [Quran.com API Docs](https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/verses-by-rub-el-hizb-number)
+
+**Params:**
+
+`verses.findByRub(id: RubNumber, options?: GetVerseOptions)`
+
+| Param | Type |
+| ------- | ------------------------------------ |
+| rub | `RubNumber` (minimum 1, maximum 240) |
+| options | `GetVerseOptions` |
+
+**Example:**
+
+```js
+quran.v4.verses.findByRub('1');
+quran.v4.verses.findByRub('240');
+```
diff --git a/mocks/handlers.ts b/mocks/handlers.ts
index ae9339d..f4c6f00 100644
--- a/mocks/handlers.ts
+++ b/mocks/handlers.ts
@@ -1095,7 +1095,7 @@ export const handlers = [
'https://api.quran.com/api/v4/resources/tafsirs/:tafsir_id/info',
(req, res, ctx) => {
const id = req.params.tafsir_id;
- if (!id || !Number.isInteger(id))
+ if (!id || !Number.isInteger(Number(id)))
return res(
ctx.status(404),
ctx.json({ status: 404, error: 'Tafsir not found' })
diff --git a/package.json b/package.json
index 8c842c7..04164d4 100644
--- a/package.json
+++ b/package.json
@@ -68,6 +68,10 @@
{
"path": "dist/index.min.mjs",
"limit": "15 KB"
+ },
+ {
+ "path": "dist/index.umd.min.js",
+ "limit": "15 KB"
}
],
"engines": {
diff --git a/src/sdk/v4/audio.ts b/src/sdk/v4/audio.ts
index 3a93489..1cc6234 100644
--- a/src/sdk/v4/audio.ts
+++ b/src/sdk/v4/audio.ts
@@ -33,7 +33,7 @@ const defaultVerseRecitationsOptions: GetVerseRecitationOptions = {
/**
* Get all chapter recitations for specific reciter
- * @description https://quran.api-docs.io/v4/audio-recitations/list-of-all-surah-audio-files-for-specific-reciter
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/chapter-reciter-audio-files
* @param {string} reciterId
* @param {GetChapterRecitationOptions} options
* @example
@@ -54,7 +54,7 @@ const findAllChapterRecitations = async (
/**
* Get chapter recitation for specific reciter and a specific chapter
- * @description https://quran.api-docs.io/v4/audio-recitations/get-single-surah-audio-for-specific-reciter
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/chapter-reciter-audio-file
* @param {ChapterId} chapterId
* @param {string} reciterId
* @param {GetChapterRecitationOptions} options
@@ -80,7 +80,7 @@ const findChapterRecitationById = async (
/**
* Get all verse audio files for a specific reciter and a specific chapter
- * @description https://quran.api-docs.io/v4/audio-recitations/get-ayah-recitations-for-specific-surah
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/list-surah-recitation
* @param {ChapterId} chapterId
* @param {string} recitationId
* @param {GetVerseRecitationOptions} options
@@ -109,7 +109,7 @@ const findVerseRecitationsByChapter = async (
/**
* Get all verse audio files for a specific reciter and a specific juz
- * @description https://quran.api-docs.io/v4/audio-recitations/get-ayah-recitations-for-specific-juz
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/list-juz-recitaiton
* @param {JuzNumber} juz
* @param {string} recitationId
* @param {GetRecitationsOptions} options
@@ -134,7 +134,7 @@ const findVerseRecitationsByJuz = async (
/**
* Get all verse audio files for a specific reciter and a specific mushaf page
- * @description https://quran.api-docs.io/v4/audio-recitations/get-ayah-recitations-for-specific-madani-mushaf-page
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/list-page-recitaiton
* @param {PageNumber} page
* @param {string} recitationId
* @param {GetVerseRecitationOptions} options
@@ -159,7 +159,7 @@ const findVerseRecitationsByPage = async (
/**
* Get all verse audio files for a specific reciter and a specific rub
- * @description https://quran.api-docs.io/v4/audio-recitations/get-ayah-recitations-for-specific-rub
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/list-rub-el-hizb-recitaiton
* @param {RubNumber} rub
* @param {string} recitationId
* @param {GetVerseRecitationOptions} options
@@ -184,7 +184,7 @@ const findVerseRecitationsByRub = async (
/**
* Get all verse audio files for a specific reciter and a specific hizb
- * @description https://quran.api-docs.io/v4/audio-recitations/get-ayah-recitations-for-specific-hizb
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/list-hizb-recitaiton
* @param {HizbNumber} hizb
* @param {string} recitationId
* @param {GetVerseRecitationOptions} options
@@ -209,7 +209,7 @@ const findVerseRecitationsByHizb = async (
/**
* Get all verse audio files for a specific reciter and a specific verse
- * @description https://quran.api-docs.io/v4/audio-recitations/get-ayah-recitations-for-specific-ayah
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/list-ayah-recitaiton
* @param {VerseKey} key
* @param {string} recitationId
* @param {GetVerseRecitationOptions} options
diff --git a/src/sdk/v4/chapters.ts b/src/sdk/v4/chapters.ts
index ffc7ff8..2ba3907 100644
--- a/src/sdk/v4/chapters.ts
+++ b/src/sdk/v4/chapters.ts
@@ -11,7 +11,7 @@ const defaultOptions: GetChapterOptions = {
/**
* Get all chapters.
- * @description https://quran.api-docs.io/v4/chapters/list-chapters
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/list-chapters
* @param {GetChapterOptions} options
* @example
* quran.v4.chapters.findAll()
@@ -29,7 +29,7 @@ const findAll = async (options?: GetChapterOptions) => {
/**
* Get chapter by id.
- * @description https://quran.api-docs.io/v4/chapters/get-chapter
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/get-chapter
* @param {ChapterId} id chapter id, minimum 1, maximum 114
* @param {GetChapterOptions} options
* @example
@@ -51,7 +51,7 @@ const findById = async (id: ChapterId, options?: GetChapterOptions) => {
/**
* Get chapter info by id.
- * @description https://quran.api-docs.io/v4/chapters/chapter_info
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/info
* @param {ChapterId} id chapter id, minimum 1, maximum 114
* @param {GetChapterOptions} options
* @example
diff --git a/src/sdk/v4/juzs.ts b/src/sdk/v4/juzs.ts
index 40c478c..fb41b38 100644
--- a/src/sdk/v4/juzs.ts
+++ b/src/sdk/v4/juzs.ts
@@ -4,7 +4,7 @@ import { fetcher } from './_fetcher';
/**
* Get All Juzs
- * @description https://quran.api-docs.io/v4/juz/get-all-juzs
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/juzs
* @example
* quran.v4.juzs.findAll()
*/
diff --git a/src/sdk/v4/resources.ts b/src/sdk/v4/resources.ts
index 488ce5f..52c7db0 100644
--- a/src/sdk/v4/resources.ts
+++ b/src/sdk/v4/resources.ts
@@ -3,12 +3,12 @@ import {
ChapterReciterResource,
Language,
LanguageResource,
- // RecitationInfoResource,
+ RecitationInfoResource,
RecitationResource,
RecitationStylesResource,
- // TafsirInfoResource,
+ TafsirInfoResource,
TafsirResource,
- // TranslationInfoResource,
+ TranslationInfoResource,
TranslationResource,
VerseMediaResource,
} from '../../types';
@@ -23,7 +23,7 @@ const defaultOptions: GetResourceOptions = {
/**
* Get all recitations.
- * @description https://quran.api-docs.io/v4/resources/recitations
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/recitations
* @param {GetResourceOptions} options
* @example
* quran.v4.resources.findAllRecitations()
@@ -37,27 +37,26 @@ const findAllRecitations = async (options?: GetResourceOptions) => {
return recitations;
};
-// TODO: uncomment when API is ready
/**
* Get all recitation info.
- * @description https://quran.api-docs.io/v4/resources/recitation-info
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/recitation-info
* @param {string} id recitation id
* @param {GetResourceOptions} options
* @example
* quran.v4.resources.findRecitationInfo('1')
*/
-// const findRecitationInfo = async (id: string, options?: GetResourceOptions) => {
-// const params = mergeApiOptions(options, defaultOptions);
-// const { info } = await fetcher<{
-// info: RecitationInfoResource;
-// }>(`/resources/recitations/${id}/info`, params, options?.fetchFn);
+const findRecitationInfo = async (id: string, options?: GetResourceOptions) => {
+ const params = mergeApiOptions(options, defaultOptions);
+ const { info } = await fetcher<{
+ info: RecitationInfoResource;
+ }>(`/resources/recitations/${id}/info`, params, options?.fetchFn);
-// return info;
-// };
+ return info;
+};
/**
* Get all translations.
- * @description https://quran.api-docs.io/v4/resources/translations
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/translations
* @param {GetResourceOptions} options
* @example
* quran.v4.resources.findAllTranslations()
@@ -71,27 +70,29 @@ const findAllTranslations = async (options?: GetResourceOptions) => {
return translations;
};
-// TODO: uncomment when API is ready
/**
* Get translation info.
- * @description https://quran.api-docs.io/v4/resources/translation-info
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/translation-info
* @param {string} id translation id
* @param {GetResourceOptions} options
* @example
* quran.v4.resources.findTranslationInfo('169')
*/
-// const findTranslationInfo = async (id: string, options?: GetResourceOptions) => {
-// const params = mergeApiOptions(options, defaultOptions);
-// const { info } = await fetcher<{
-// info: TranslationInfoResource;
-// }>(`/resources/translations/${id}/info`, params, options?.fetchFn);
+const findTranslationInfo = async (
+ id: string,
+ options?: GetResourceOptions
+) => {
+ const params = mergeApiOptions(options, defaultOptions);
+ const { info } = await fetcher<{
+ info: TranslationInfoResource;
+ }>(`/resources/translations/${id}/info`, params, options?.fetchFn);
-// return info;
-// };
+ return info;
+};
/**
* Get all tafsirs.
- * @description https://quran.api-docs.io/v4/resources/tafsirs
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/tafsirs
* @param {GetResourceOptions} options
* @example
* quran.v4.resources.findAllTafsirs()
@@ -105,27 +106,26 @@ const findAllTafsirs = async (options?: GetResourceOptions) => {
return tafsirs;
};
-// TODO: uncomment when API is ready
/**
* Get tafsir info.
- * @description https://quran.api-docs.io/v4/resources/tafsirs-info
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/tafsir-info
* @param {string} id tafsir id
* @param {GetResourceOptions} options
* @example
- * quran.v4.resources.findTranslationInfo('1')
+ * quran.v4.resources.findTafsirInfo('1')
*/
-// const findTafsirInfo = async (id: string, options?: GetResourceOptions) => {
-// const params = mergeApiOptions(options, defaultOptions);
-// const { info } = await fetcher<{
-// info: TafsirInfoResource;
-// }>(`/resources/tafsirs/${id}/info`, params, options?.fetchFn);
+const findTafsirInfo = async (id: string, options?: GetResourceOptions) => {
+ const params = mergeApiOptions(options, defaultOptions);
+ const { info } = await fetcher<{
+ info: TafsirInfoResource;
+ }>(`/resources/tafsirs/${id}/info`, params, options?.fetchFn);
-// return info;
-// };
+ return info;
+};
/**
* Get all recitation styles.
- * @description https://quran.api-docs.io/v4/resources/recitation-styles
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/recitation-styles
* @example
* quran.v4.resources.findAllRecitationStyles()
*/
@@ -141,7 +141,7 @@ const findAllRecitationStyles = async (
/**
* Get all languages.
- * @description https://quran.api-docs.io/v4/resources/languages
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/languages
* @param {GetResourceOptions} options
* @example
* quran.v4.resources.findAllLanguages()
@@ -157,7 +157,7 @@ const findAllLanguages = async (options?: GetResourceOptions) => {
/**
* Get all chapter infos.
- * @description https://quran.api-docs.io/v4/resources/chapter-info
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/chapter-info
* @param {GetResourceOptions} options
* @example
* quran.v4.resources.findAllChapterInfos()
@@ -173,7 +173,7 @@ const findAllChapterInfos = async (options?: GetResourceOptions) => {
/**
* Get verse media.
- * @description https://quran.api-docs.io/v4/resources/verse_media
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/verse-media
* @param {GetResourceOptions} options
* @example
* quran.v4.resources.findVerseMedia()
@@ -189,7 +189,7 @@ const findVerseMedia = async (options?: GetResourceOptions) => {
/**
* Get all chapter reciters.
- * @description https://quran.api-docs.io/v4/resources/list-of-chapter-reciters
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/chapter-reciters
* @param {GetResourceOptions} options
* @example
* quran.v4.resources.findAllChapterReciters()
@@ -212,9 +212,9 @@ const resources = {
findVerseMedia,
findAllChapterReciters,
findAllChapterInfos,
- // findRecitationInfo
- // findTranslationInfo
- // findTafsirInfo
+ findRecitationInfo,
+ findTranslationInfo,
+ findTafsirInfo,
};
export default resources;
diff --git a/src/sdk/v4/search.ts b/src/sdk/v4/search.ts
index 9da8aa0..c15ef18 100644
--- a/src/sdk/v4/search.ts
+++ b/src/sdk/v4/search.ts
@@ -16,7 +16,7 @@ const defaultSearchOptions: SearchOptions = {
/**
* Search
- * @description https://quran.api-docs.io/v4/search/KfCmk4KQYbtyK9adj
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/search
* @param {string} q search query
* @param {SearchOptions} options
* @example
diff --git a/src/sdk/v4/verses.ts b/src/sdk/v4/verses.ts
index c566fb0..fee0e49 100644
--- a/src/sdk/v4/verses.ts
+++ b/src/sdk/v4/verses.ts
@@ -4,8 +4,8 @@ import {
JuzNumber,
Language,
PageNumber,
+ RubNumber,
TranslationField,
- // RubNumber,
Verse,
VerseField,
VerseKey,
@@ -72,7 +72,7 @@ const mergeVerseOptions = (options: GetVerseOptions = {}) => {
/**
* Get a specific ayah with key. Key is combination of surah number and ayah number.
- * @description https://quran.api-docs.io/v4/verses/by-specific-verse-by-key
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/verses-by-verse-key
* @param {VerseKey} key - surah number and ayah number separated by a colon.
* @param {GetVerseOptions} options
* @example
@@ -94,7 +94,7 @@ const findByKey = async (key: VerseKey, options?: GetVerseOptions) => {
/**
* Get all ayahs for a specific chapter (surah).
- * @description https://quran.api-docs.io/v4/verses/by_chapter
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/verses-by-chapter-number
* @param {ChapterId} id - chapter id (surah number)
* @param {GetVerseOptions} options
* @example
@@ -116,7 +116,7 @@ const findByChapter = async (id: ChapterId, options?: GetVerseOptions) => {
/**
* Get all ayahs for a specific page in the Quran.
- * @description https://quran.api-docs.io/v4/verses/by-page
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/verses-by-page-number
* @param {PageNumber} page - Quran page number
* @param {GetVerseOptions} options
* @example
@@ -139,8 +139,8 @@ const findByPage = async (page: PageNumber, options?: GetVerseOptions) => {
/**
* Get all ayahs for a Juz.
- * @description https://quran.api-docs.io/v4/verses/by-juz
- * @param {JuzNumber} id - juz number
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/verses-by-juz-number
+ * @param {JuzNumber} juz - juz number
* @param {GetVerseOptions} options
* @example
* quran.v4.verses.findByJuz('1')
@@ -162,7 +162,7 @@ const findByJuz = async (juz: JuzNumber, options?: GetVerseOptions) => {
/**
* Get all ayahs for a Hizb.
- * @description https://quran.api-docs.io/v4/verses/by-hizb-number
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/verses-by-hizb-number
* @param {HizbNumber} hizb - hizb number
* @param {GetVerseOptions} options
* @example
@@ -183,29 +183,31 @@ const findByHizb = async (hizb: HizbNumber, options?: GetVerseOptions) => {
return verses;
};
-// TODO: uncomment when API is fixed
/**
* Get all ayahs for a Rub.
- * @description https://quran.api-docs.io/v4/verses/by-rub-number
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/verses-by-rub-el-hizb-number
* @param {RubNumber} rub - rub number
* @param {GetVerseOptions} options
* @example
* quran.v4.verses.findByRub('1')
* quran.v4.verses.findByRub('29')
*/
-// const findByRub = async (rub: RubNumber, options?: GetVerseOptions) => {
-// if (!Utils.isValidRub(rub)) throw new Error('Invalid rub');
+const findByRub = async (rub: RubNumber, options?: GetVerseOptions) => {
+ if (!Utils.isValidRub(rub)) throw new Error('Invalid rub');
-// const params = getVerseOptions(options);
-// const url = `/verses/by_rub/${rub}`;
-// const { verses } = await fetcher<{ verses: Verse[] }>(url, params);
+ const params = mergeVerseOptions(options);
+ const { verses } = await fetcher<{ verses: Verse[] }>(
+ `/verses/by_rub/${rub}`,
+ params,
+ options?.fetchFn
+ );
-// return verses;
-// };
+ return verses;
+};
/**
* Get a random ayah.
- * @description https://quran.api-docs.io/v4/verses/random
+ * @description https://api-docs.quran.com/docs/quran.com_versioned/4.0.0/random-verse
* @param {GetVerseOptions} options
* @example
* quran.v4.verses.findRandom()
@@ -227,7 +229,7 @@ const verses = {
findByPage,
findByJuz,
findByHizb,
- // findByRub,
+ findByRub,
findRandom,
};
diff --git a/test/resources.test.ts b/test/resources.test.ts
index 2a8b9b8..1d4a99b 100644
--- a/test/resources.test.ts
+++ b/test/resources.test.ts
@@ -14,6 +14,13 @@ createApiTest('resources', {
findAllTafsirs: {},
findAllTranslations: {},
findVerseMedia: {},
+ findRecitationInfo: {
+ params: ['1'],
+ },
+ findTranslationInfo: {
+ params: ['1'],
+ },
+ findTafsirInfo: {
+ params: ['169'],
+ },
});
-
-// TODO: text findRecitationInfo, findTafsirInfo, and findTranslationInfo when fixed
diff --git a/test/verses.test.ts b/test/verses.test.ts
index 40e0d00..69603d6 100644
--- a/test/verses.test.ts
+++ b/test/verses.test.ts
@@ -34,6 +34,8 @@ createApiTest('verses', {
params: ['1'],
rejectParams: ['0' as any],
},
+ findByRub: {
+ params: ['1'],
+ rejectParams: ['0' as any],
+ },
});
-
-// TODO: test findByRub when fixed