@quranjs/api 1.6.0 → 1.7.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.
Files changed (63) hide show
  1. package/dist/index.d.ts +553 -2
  2. package/dist/index.js +11 -6
  3. package/dist/index.js.map +1 -0
  4. package/dist/index.mjs +6 -0
  5. package/dist/index.mjs.map +1 -0
  6. package/package.json +24 -21
  7. package/src/sdk/utils.ts +18 -9
  8. package/src/sdk/v4/_fetcher.ts +58 -7
  9. package/src/sdk/v4/audio.ts +30 -50
  10. package/src/sdk/v4/chapters.ts +12 -15
  11. package/src/sdk/v4/juzs.ts +7 -2
  12. package/src/sdk/v4/resources.ts +27 -31
  13. package/src/sdk/v4/search.ts +14 -13
  14. package/src/sdk/v4/verses.ts +72 -50
  15. package/src/types/BaseApiOptions.ts +6 -0
  16. package/src/types/FetchFn.ts +1 -0
  17. package/src/types/index.ts +2 -0
  18. package/dist/api.cjs.development.js +0 -2754
  19. package/dist/api.cjs.development.js.map +0 -1
  20. package/dist/api.cjs.production.min.js +0 -2
  21. package/dist/api.cjs.production.min.js.map +0 -1
  22. package/dist/api.esm.js +0 -2746
  23. package/dist/api.esm.js.map +0 -1
  24. package/dist/sdk/index.d.ts +0 -195
  25. package/dist/sdk/utils.d.ts +0 -125
  26. package/dist/sdk/v4/_fetcher.d.ts +0 -3
  27. package/dist/sdk/v4/audio.d.ts +0 -52
  28. package/dist/sdk/v4/chapters.d.ts +0 -13
  29. package/dist/sdk/v4/index.d.ts +0 -185
  30. package/dist/sdk/v4/juzs.d.ts +0 -5
  31. package/dist/sdk/v4/resources.d.ts +0 -26
  32. package/dist/sdk/v4/search.d.ts +0 -22
  33. package/dist/sdk/v4/verses.d.ts +0 -76
  34. package/dist/types/ChapterId.d.ts +0 -4
  35. package/dist/types/HizbNumber.d.ts +0 -4
  36. package/dist/types/JuzNumber.d.ts +0 -4
  37. package/dist/types/PageNumber.d.ts +0 -4
  38. package/dist/types/RubNumber.d.ts +0 -4
  39. package/dist/types/VerseKey.d.ts +0 -2
  40. package/dist/types/api/ApiResponses.d.ts +0 -18
  41. package/dist/types/api/AudioData.d.ts +0 -17
  42. package/dist/types/api/AudioResponse.d.ts +0 -8
  43. package/dist/types/api/Chapter.d.ts +0 -14
  44. package/dist/types/api/ChapterInfo.d.ts +0 -8
  45. package/dist/types/api/Footnote.d.ts +0 -6
  46. package/dist/types/api/Juz.d.ts +0 -8
  47. package/dist/types/api/Pagination.d.ts +0 -7
  48. package/dist/types/api/Reciter.d.ts +0 -21
  49. package/dist/types/api/Resources.d.ts +0 -70
  50. package/dist/types/api/Segment.d.ts +0 -4
  51. package/dist/types/api/Tafsir.d.ts +0 -7
  52. package/dist/types/api/TafsirInfo.d.ts +0 -9
  53. package/dist/types/api/TranslatedName.d.ts +0 -4
  54. package/dist/types/api/Translation.d.ts +0 -17
  55. package/dist/types/api/Transliteration.d.ts +0 -4
  56. package/dist/types/api/Verse.d.ts +0 -32
  57. package/dist/types/api/Word.d.ts +0 -28
  58. package/dist/types/api/index.d.ts +0 -18
  59. package/dist/types/index.d.ts +0 -88
  60. package/dist/types/utils.d.ts +0 -5
  61. package/dist/utils/misc.d.ts +0 -1
  62. package/dist/utils/qs-stringify.d.ts +0 -21
  63. package/src/utils/qs-stringify.ts +0 -81
@@ -1,21 +0,0 @@
1
- export interface Reciter {
2
- id: number;
3
- name: string;
4
- recitationStyle: string;
5
- relativePath: string;
6
- profilePicture?: string;
7
- coverImage?: string;
8
- bio?: string;
9
- qirat?: {
10
- languageName: string;
11
- name: string;
12
- };
13
- style?: {
14
- languageName: string;
15
- name: string;
16
- };
17
- translatedName?: {
18
- languageName: string;
19
- name: string;
20
- };
21
- }
@@ -1,70 +0,0 @@
1
- import { TranslatedName } from './TranslatedName';
2
- export interface RecitationResource {
3
- id?: number;
4
- reciterName?: string;
5
- style?: string;
6
- translatedName?: TranslatedName;
7
- }
8
- export interface RecitationInfoResource {
9
- id?: number;
10
- info?: string;
11
- }
12
- export interface TranslationResource {
13
- id?: number;
14
- name?: string;
15
- authorName?: string;
16
- slug?: string;
17
- languageName?: string;
18
- translatedName?: TranslatedName;
19
- }
20
- export interface TranslationInfoResource {
21
- id?: number;
22
- info?: string;
23
- }
24
- export interface TafsirResource {
25
- id?: number;
26
- name?: string;
27
- authorName?: string;
28
- slug?: string;
29
- languageName?: string;
30
- translatedName?: TranslatedName;
31
- }
32
- export interface TafsirInfoResource {
33
- id?: number;
34
- info?: string;
35
- }
36
- export interface RecitationStylesResource {
37
- mujawwad: string;
38
- murattal: string;
39
- muallim: string;
40
- }
41
- export interface LanguageResource {
42
- id?: number;
43
- name?: string;
44
- nativeName?: string;
45
- isoCode?: string;
46
- direction?: string;
47
- translatedNames?: TranslatedName[];
48
- }
49
- export interface ChapterInfoResource {
50
- id?: number;
51
- name?: string;
52
- authorName?: string;
53
- slug?: string;
54
- languageName?: string;
55
- translatedName?: TranslatedName;
56
- }
57
- export interface VerseMediaResource {
58
- id?: number;
59
- name?: string;
60
- authorName?: string;
61
- languageName?: string;
62
- }
63
- export interface ChapterReciterResource {
64
- id: number;
65
- name: string;
66
- arabicName?: string;
67
- relativePath?: string;
68
- format?: string;
69
- filesSize?: number;
70
- }
@@ -1,4 +0,0 @@
1
- /**
2
- * Segment structure is [wordFrom, wordTo, timeFrom, timeTo] time is in ms
3
- */
4
- export declare type Segment = [number, number, number, number];
@@ -1,7 +0,0 @@
1
- export interface Tafsir {
2
- id?: number;
3
- resourceId?: number;
4
- text?: string;
5
- resourceName?: string;
6
- languageName?: string;
7
- }
@@ -1,9 +0,0 @@
1
- import { TranslatedName } from './TranslatedName';
2
- export interface TafsirInfo {
3
- id?: number;
4
- name?: string;
5
- authorName?: string;
6
- slug?: string;
7
- languageName?: string;
8
- translatedName: TranslatedName;
9
- }
@@ -1,4 +0,0 @@
1
- export interface TranslatedName {
2
- name: string;
3
- languageName: string;
4
- }
@@ -1,17 +0,0 @@
1
- import { VerseKey } from '../VerseKey';
2
- export interface Translation {
3
- id?: number;
4
- text: string;
5
- resourceId: number;
6
- resourceName?: string;
7
- verseId?: number;
8
- languageId?: number;
9
- languageName?: string;
10
- verseKey?: VerseKey;
11
- chapterId?: number;
12
- verseNumber?: number;
13
- juzNumber?: number;
14
- hizbNumber?: number;
15
- rubNumber?: number;
16
- pageNumber?: number;
17
- }
@@ -1,4 +0,0 @@
1
- export interface Transliteration {
2
- languageName?: string;
3
- text?: string;
4
- }
@@ -1,32 +0,0 @@
1
- import { VerseKey } from '../VerseKey';
2
- import { AudioResponse } from './AudioResponse';
3
- import { Tafsir } from './Tafsir';
4
- import { Translation } from './Translation';
5
- import { Word } from './Word';
6
- export interface Verse {
7
- id: number;
8
- verseNumber: number;
9
- verseKey: VerseKey;
10
- chapterId?: number | string;
11
- pageNumber: number;
12
- juzNumber: number;
13
- hizbNumber: number;
14
- rubElHizbNumber: number;
15
- words?: Word[];
16
- textUthmani?: string;
17
- textUthmaniSimple?: string;
18
- textUthmaniTajweed?: string;
19
- textImlaei?: string;
20
- textImlaeiSimple?: string;
21
- textIndopak?: string;
22
- sajdahNumber: null;
23
- imageUrl?: string;
24
- imageWidth?: number;
25
- v1Page?: number;
26
- v2Page?: number;
27
- codeV1?: string;
28
- codeV2?: string;
29
- translations?: Translation[];
30
- tafsirs?: Tafsir[];
31
- audio?: AudioResponse;
32
- }
@@ -1,28 +0,0 @@
1
- import { VerseKey } from '../VerseKey';
2
- import { Translation } from './Translation';
3
- import { Transliteration } from './Transliteration';
4
- export declare enum CharType {
5
- Word = "word",
6
- End = "end",
7
- Pause = "pause",
8
- Sajdah = "sajdah",
9
- RubElHizb = "rub-el-hizb"
10
- }
11
- export interface Word {
12
- id?: number;
13
- position: number;
14
- audioUrl: string;
15
- charTypeName: CharType;
16
- codeV1?: string;
17
- codeV2?: string;
18
- pageNumber?: number;
19
- lineNumber?: number;
20
- text?: string;
21
- textUthmani?: string;
22
- textIndopak?: string;
23
- textImlaei?: string;
24
- translation: Translation;
25
- transliteration: Transliteration;
26
- location?: string;
27
- verseKey?: VerseKey;
28
- }
@@ -1,18 +0,0 @@
1
- export * from './ApiResponses';
2
- export * from './AudioData';
3
- export * from './AudioResponse';
4
- export * from './Chapter';
5
- export * from './ChapterInfo';
6
- export * from './Footnote';
7
- export * from './Reciter';
8
- export * from './Segment';
9
- export * from './Tafsir';
10
- export * from './TafsirInfo';
11
- export * from './TranslatedName';
12
- export * from './Translation';
13
- export * from './Transliteration';
14
- export * from './Verse';
15
- export * from './Word';
16
- export * from './Juz';
17
- export * from './Pagination';
18
- export * from './Resources';
@@ -1,88 +0,0 @@
1
- export declare enum Language {
2
- ARABIC = "ar",
3
- ENGLISH = "en",
4
- URDU = "ur",
5
- BENGALI = "bn",
6
- TURKISH = "tr",
7
- SPANISH = "es",
8
- GERMAN = "de",
9
- BOSNIAN = "bs",
10
- RUSSIAN = "ru",
11
- ALBANIAN_AL = "al",
12
- FRENCH = "fr",
13
- DUTCH = "nl",
14
- TAMIL = "ta",
15
- TAJIK = "tg",
16
- INDONESIAN = "id",
17
- UZBEK = "uz",
18
- VIETNAMESE = "vi",
19
- CHINESE = "zh",
20
- ITALIAN = "it",
21
- JAPANESE = "ja",
22
- MALAYALAM = "ml",
23
- AMHARIC = "am",
24
- KAZAKH = "kk",
25
- PORTUGUESE = "pt",
26
- TAGALOG = "tl",
27
- THAI = "th",
28
- KOREAN = "ko",
29
- HINDI = "hi",
30
- KURDISH = "ku",
31
- HAUSA = "ha",
32
- AZERI = "az",
33
- SWAHILI = "sw",
34
- PERSIAN = "fa",
35
- SERBIAN = "sr",
36
- MARANAO = "mrn",
37
- AMAZIGH = "zgh",
38
- ASSAMESE = "as",
39
- BULGARIAN = "bg",
40
- CHECHEN = "ce",
41
- CZECH = "cs",
42
- DIVEHI = "dv",
43
- DHIVEHI = "dv",
44
- MALDIVIAN = "dv",
45
- FINNISH = "fi",
46
- GUJAARATI = "gu",
47
- HEBREW = "he",
48
- GEORGIAN = "ka",
49
- CENTRAL_KHMER = "km",
50
- GANDA = "lg",
51
- MARATHI = "mr",
52
- YORUBA = "yo",
53
- MALAY = "ms",
54
- NEPALI = "ne",
55
- SWEDISH = "sv",
56
- TELUGU = "te",
57
- TATAR = "tt",
58
- UIGHUR = "ug",
59
- UYGHUR = "ug",
60
- UKRAINIAN = "uk",
61
- NORWEGIAN = "no",
62
- OROMO = "om",
63
- POLISH = "pl",
64
- PASHTO = "ps",
65
- ROMANIAN = "ro",
66
- SINDHI = "sd",
67
- NORTHERN_SAMI = "se",
68
- SINHALA = "si",
69
- SINHALESE = "si",
70
- SOMALI = "so",
71
- ALBANIAN_SQ = "sq"
72
- }
73
- export declare enum QuranFont {
74
- MadaniV1 = "code_v1",
75
- MadaniV2 = "code_v2",
76
- Uthmani = "text_uthmani"
77
- }
78
- export declare type VerseField = 'chapterId' | 'textUthmani' | 'textUthmaniSimple' | 'textImlaei' | 'textImlaeiSimple' | 'textIndopak' | 'textUthmaniTajweed' | 'imageUrl' | 'imageWidth' | 'codeV1' | 'codeV2' | 'v1Page' | 'v2Page';
79
- export declare type WordField = 'v1Page' | 'v2Page' | 'textUthmani' | 'textImlaei' | 'textIndopak' | 'verseKey' | 'location' | 'codeV1' | 'codeV2';
80
- export declare type TranslationField = 'resourceName' | 'verseId' | 'languageId' | 'languageName' | 'verseKey' | 'chapterId' | 'verseNumber' | 'juzNumber' | 'hizbNumber' | 'rubNumber' | 'pageNumber';
81
- export declare type VerseRecitationField = 'id' | 'chapterId' | 'segments' | 'format';
82
- export * from './VerseKey';
83
- export * from './ChapterId';
84
- export * from './HizbNumber';
85
- export * from './JuzNumber';
86
- export * from './PageNumber';
87
- export * from './RubNumber';
88
- export * from './api';
@@ -1,5 +0,0 @@
1
- declare type _NumbersFrom0ToN<Nr extends number> = Nr extends Nr ? number extends Nr ? number : Nr extends 0 ? never : _NumbersFrom0ToNRec<Nr, [], 0> : never;
2
- declare type _NumbersFrom0ToNRec<Nr extends number, Counter extends any[], Accumulator extends number> = Counter['length'] extends Nr ? Accumulator : _NumbersFrom0ToNRec<Nr, [any, ...Counter], Accumulator | Counter['length']>;
3
- export declare type NumberRange<Start extends number, End extends number> = Exclude<_NumbersFrom0ToN<End>, _NumbersFrom0ToN<Start>>;
4
- export declare type NumberUnionToString<TType> = TType extends number ? `${TType}` : TType;
5
- export {};
@@ -1 +0,0 @@
1
- export declare const removeBeginningSlash: (url: string) => string;
@@ -1,21 +0,0 @@
1
- declare type QueryObject = Record<string, any>;
2
- export declare type StringifyFunction = (key: string, value: any) => any;
3
- declare type Config = {
4
- eq?: string;
5
- sep?: string;
6
- fn?: StringifyFunction;
7
- prefix?: string;
8
- };
9
- /**
10
- * Given a query object, return the query string
11
- * See qs-stringify.test.ts for examples
12
- *
13
- * @param {QueryObject} obj a query object to be converted to a query string
14
- * @param {Config} config optional configuration
15
- * @returns {string} query string
16
- *
17
- * @example
18
- * stringify({a: 1, b: 2}) // returns 'a=1&b=s'
19
- */
20
- declare function stringify(obj: QueryObject, config?: Config): string;
21
- export default stringify;
@@ -1,81 +0,0 @@
1
- // Reference: https://github.com/billjs/query-string/blob/master/src/index.ts
2
-
3
- type QueryObject = Record<string, any>;
4
- export type StringifyFunction = (key: string, value: any) => any;
5
- type Config = {
6
- eq?: string;
7
- sep?: string;
8
- fn?: StringifyFunction;
9
- prefix?: string;
10
- };
11
-
12
- const defaultStringifyFunction: StringifyFunction = (
13
- _key: string,
14
- value: any
15
- ) => value;
16
- const defaultEq = '=';
17
- const defaultSep = '&';
18
- const defaultConfig: Config = {
19
- eq: defaultEq,
20
- sep: defaultSep,
21
- prefix: '',
22
- fn: defaultStringifyFunction,
23
- };
24
-
25
- /**
26
- * Given a query object, return the query string
27
- * See qs-stringify.test.ts for examples
28
- *
29
- * @param {QueryObject} obj a query object to be converted to a query string
30
- * @param {Config} config optional configuration
31
- * @returns {string} query string
32
- *
33
- * @example
34
- * stringify({a: 1, b: 2}) // returns 'a=1&b=s'
35
- */
36
- function stringify(obj: QueryObject, config = defaultConfig): string {
37
- const { eq, sep, fn, prefix } = { ...defaultConfig, ...config };
38
- if (obj == null || !isObject(obj)) {
39
- return '';
40
- }
41
-
42
- return Object.entries(obj)
43
- .filter(([, value]) => value !== null) // filter out null values
44
- .map(([key, value]) => {
45
- if (Array.isArray(value))
46
- return encode(key, value.join(','), { eq, fn, prefix });
47
-
48
- if (isObject(value))
49
- return stringify(value, { eq, sep, fn, prefix: getKey(key, prefix) });
50
-
51
- return encode(key, value, { eq, fn, prefix });
52
- })
53
- .join(sep);
54
- }
55
-
56
- // encode the key and add prefix if necessary
57
- const getKey = (key: string, prefix = ''): string => {
58
- const encodedKey = encodeURIComponent(key);
59
- if (prefix) return `${prefix}[${encodedKey}]`;
60
- return encodedKey;
61
- };
62
-
63
- // encode the key and value of a query object
64
- const encode = (
65
- key: string,
66
- value: any,
67
- { eq = defaultEq, fn = defaultStringifyFunction, prefix = '' }
68
- ): string => {
69
- const newValue = encodeURIComponent(fn(key, value));
70
- const newKey = getKey(key, prefix);
71
-
72
- return [newKey, newValue].join(eq);
73
- };
74
-
75
- // check if the given value is an object
76
- function isObject(obj: QueryObject) {
77
- const type = typeof obj;
78
- return (obj && (type === 'object' || type === 'function')) || false;
79
- }
80
-
81
- export default stringify;