@quranjs/api 1.5.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -60,6 +60,18 @@ declare const quran: {
60
60
  page: number;
61
61
  perPage: number;
62
62
  }> | undefined) => Promise<import("..").Verse[]>;
63
+ findByHizb: (hizb: import("..").HizbNumber, options?: Partial<{
64
+ language: import("..").Language;
65
+ reciter: string | number;
66
+ words: boolean;
67
+ translations: string[] | number[];
68
+ tafsirs: string[] | number[];
69
+ wordFields: Partial<Record<import("..").WordField, boolean>>;
70
+ translationFields: Partial<Record<import("..").TranslationField, boolean>>;
71
+ fields: Partial<Record<import("..").VerseField, boolean>>;
72
+ page: number;
73
+ perPage: number;
74
+ }> | undefined) => Promise<import("..").Verse[]>;
63
75
  findRandom: (options?: Partial<{
64
76
  language: import("..").Language;
65
77
  reciter: string | number;
@@ -1,4 +1,4 @@
1
- export declare const versesMaping: {
1
+ export declare const versesMapping: {
2
2
  '1': number;
3
3
  '2': number;
4
4
  '3': number;
@@ -59,6 +59,18 @@ declare const v4: {
59
59
  page: number;
60
60
  perPage: number;
61
61
  }> | undefined) => Promise<import("../..").Verse[]>;
62
+ findByHizb: (hizb: import("../..").HizbNumber, options?: Partial<{
63
+ language: import("../..").Language;
64
+ reciter: string | number;
65
+ words: boolean;
66
+ translations: string[] | number[];
67
+ tafsirs: string[] | number[];
68
+ wordFields: Partial<Record<import("../..").WordField, boolean>>;
69
+ translationFields: Partial<Record<import("../..").TranslationField, boolean>>;
70
+ fields: Partial<Record<import("../..").VerseField, boolean>>;
71
+ page: number;
72
+ perPage: number;
73
+ }> | undefined) => Promise<import("../..").Verse[]>;
62
74
  findRandom: (options?: Partial<{
63
75
  language: import("../..").Language;
64
76
  reciter: string | number;
@@ -1,4 +1,4 @@
1
- import { ChapterId, JuzNumber, Language, PageNumber, TranslationField, Verse, VerseField, VerseKey, WordField } from '../../types';
1
+ import { ChapterId, HizbNumber, JuzNumber, Language, PageNumber, TranslationField, Verse, VerseField, VerseKey, WordField } from '../../types';
2
2
  declare const verses: {
3
3
  findByKey: (key: VerseKey, options?: Partial<{
4
4
  language: Language;
@@ -48,6 +48,18 @@ declare const verses: {
48
48
  page: number;
49
49
  perPage: number;
50
50
  }> | undefined) => Promise<Verse[]>;
51
+ findByHizb: (hizb: HizbNumber, options?: Partial<{
52
+ language: Language;
53
+ reciter: string | number;
54
+ words: boolean;
55
+ translations: string[] | number[];
56
+ tafsirs: string[] | number[];
57
+ wordFields: Partial<Record<WordField, boolean>>;
58
+ translationFields: Partial<Record<TranslationField, boolean>>;
59
+ fields: Partial<Record<VerseField, boolean>>;
60
+ page: number;
61
+ perPage: number;
62
+ }> | undefined) => Promise<Verse[]>;
51
63
  findRandom: (options?: Partial<{
52
64
  language: Language;
53
65
  reciter: string | number;
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
- "version": "1.5.0",
8
+ "version": "1.6.0",
9
9
  "license": "MIT",
10
10
  "main": "dist/index.js",
11
11
  "typings": "dist/index.d.ts",
@@ -28,6 +28,7 @@
28
28
  "@size-limit/preset-small-lib": "^7.0.8",
29
29
  "@types/humps": "^2.0.1",
30
30
  "dts-cli": "^1.4.0",
31
+ "fast-check": "^3.3.0",
31
32
  "husky": "^7.0.4",
32
33
  "msw": "^0.39.2",
33
34
  "rollup-plugin-analyzer": "^4.0.0",
package/src/sdk/utils.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  // this maps chapterNumber to verseCount
2
- export const versesMaping = {
2
+ export const versesMapping = {
3
3
  '1': 7,
4
4
  '2': 286,
5
5
  '3': 200,
@@ -211,7 +211,7 @@ const isValidVerseKey = (key: string) => {
211
211
  if (!chapterId || !verseId || !isValidChapterId(chapterId)) return false;
212
212
 
213
213
  const parsedVerse = Number(verseId);
214
- const verseCount = (versesMaping as any)[chapterId];
214
+ const verseCount = (versesMapping as any)[chapterId];
215
215
  if (!parsedVerse || parsedVerse <= 0 || parsedVerse > verseCount)
216
216
  return false;
217
217
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ChapterId,
3
- // HizbNumber,
3
+ HizbNumber,
4
4
  JuzNumber,
5
5
  Language,
6
6
  PageNumber,
@@ -146,7 +146,6 @@ const findByJuz = async (juz: JuzNumber, options?: GetVerseOptions) => {
146
146
  return verses;
147
147
  };
148
148
 
149
- // TODO: uncomment when API is fixed
150
149
  /**
151
150
  * Get all ayahs for a Hizb.
152
151
  * @description https://quran.api-docs.io/v4/verses/by-hizb-number
@@ -156,15 +155,15 @@ const findByJuz = async (juz: JuzNumber, options?: GetVerseOptions) => {
156
155
  * quran.v4.verses.findByHizb('1')
157
156
  * quran.v4.verses.findByHizb('29')
158
157
  */
159
- // const findByHizb = async (hizb: HizbNumber, options?: GetVerseOptions) => {
160
- // if (!Utils.isValidHizb(hizb)) throw new Error('Invalid hizb');
158
+ const findByHizb = async (hizb: HizbNumber, options?: GetVerseOptions) => {
159
+ if (!Utils.isValidHizb(hizb)) throw new Error('Invalid hizb');
161
160
 
162
- // const params = getVerseOptions(options);
163
- // const url = `/verses/by_hizb/${hizb}`;
164
- // const { verses } = await fetcher<{ verses: Verse[] }>(url, params);
161
+ const params = getVerseOptions(options);
162
+ const url = `/verses/by_hizb/${hizb}`;
163
+ const { verses } = await fetcher<{ verses: Verse[] }>(url, params);
165
164
 
166
- // return verses;
167
- // };
165
+ return verses;
166
+ };
168
167
 
169
168
  // TODO: uncomment when API is fixed
170
169
  /**
@@ -205,7 +204,7 @@ const verses = {
205
204
  findByChapter,
206
205
  findByPage,
207
206
  findByJuz,
208
- // findByHizb,
207
+ findByHizb,
209
208
  // findByRub,
210
209
  findRandom,
211
210
  };