From d8e0db9214ed95a20ef71333f76aaf60339f08d5 Mon Sep 17 00:00:00 2001 From: ahmedriad1 Date: Tue, 7 Jan 2025 04:58:34 +0200 Subject: [PATCH 1/6] fix: update qdc docs url in jsdoc & bring back commentted apis --- src/sdk/v4/audio.ts | 16 ++++---- src/sdk/v4/chapters.ts | 6 +-- src/sdk/v4/juzs.ts | 2 +- src/sdk/v4/resources.ts | 84 ++++++++++++++++++++--------------------- src/sdk/v4/search.ts | 2 +- src/sdk/v4/verses.ts | 38 ++++++++++--------- 6 files changed, 75 insertions(+), 73 deletions(-) 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, }; From 9b953f1e2fd4efdb81194bed6e365a341e4a623c Mon Sep 17 00:00:00 2001 From: ahmedriad1 Date: Tue, 7 Jan 2025 04:59:49 +0200 Subject: [PATCH 2/6] test: add tests for new apis --- mocks/handlers.ts | 2 +- test/resources.test.ts | 11 +++++++++-- test/verses.test.ts | 6 ++++-- 3 files changed, 14 insertions(+), 5 deletions(-) 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/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 From b4642750f4ae77a6c8e1063ea615365f5defacf4 Mon Sep 17 00:00:00 2001 From: ahmedriad1 Date: Tue, 7 Jan 2025 05:00:21 +0200 Subject: [PATCH 3/6] docs: update qdc docs url in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 44d2d23..aebd1bc 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ you can visit the [docs][docs] for more details. -[qdc-api]: https://quran.api-docs.io/ +[qdc-api]: https://api-docs.quran.com/docs/category/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 From efd77f993d46d59fccb98447f29c982b39ad3f00 Mon Sep 17 00:00:00 2001 From: ahmedriad1 Date: Tue, 7 Jan 2025 05:25:04 +0200 Subject: [PATCH 4/6] docs: update qdc docs url & add missing docs for new methods --- README.md | 2 +- docs/src/pages/audio.mdx | 16 +++---- docs/src/pages/chapters.mdx | 6 +-- docs/src/pages/index.mdx | 19 ++++++++- docs/src/pages/juzs.mdx | 2 +- docs/src/pages/resources.mdx | 79 +++++++++++++++++++++++++++++++---- docs/src/pages/search.mdx | 2 +- docs/src/pages/techniques.mdx | 2 +- docs/src/pages/verses.mdx | 66 +++++++++++++++++++---------- 9 files changed, 147 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index aebd1bc..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/docs/category/quran.com-api +[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'; QuranJS/API Banner -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'); +``` From e0ab582fa88d7f5a353aab42061ec8733cd33c25 Mon Sep 17 00:00:00 2001 From: ahmedriad1 Date: Tue, 7 Jan 2025 05:33:31 +0200 Subject: [PATCH 5/6] ci: update PR workflow --- .github/workflows/pr.yml | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) 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 }} From b102605a4b3e46cfaa8ea1b159d34750fdaffea7 Mon Sep 17 00:00:00 2001 From: ahmedriad1 Date: Tue, 7 Jan 2025 05:35:32 +0200 Subject: [PATCH 6/6] chore: update size-limit files to include umd --- package.json | 4 ++++ 1 file changed, 4 insertions(+) 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": {