UNPKG

quran-meta

Version:

Library with meta data and functionality related to Holy Quran

1 lines 28.3 kB
const e={meta:{riwayaName:`Qalun`,numAyahs:6214,numSurahs:114,numPages:604,numJuzs:30,numHizbs:60,numRubAlHizbs:240,numThumunAlHizbs:480,numRubsInJuz:8,numSajdas:12,numRukus:556,numManzils:7},HizbEighthList:[0,1,20,32,40,50,60,66,73,82,91,98,108,112,121,130,139,148,154,164,174,183,191,195,203,208,218,224,233,238,241,248,253,258,264,269,273,278,288,289,297,307,318,325,334,343,355,366,374,383,396,405,413,425,436,445,452,463,471,478,487,498,503,505,511,516,523,528,538,549,555,565,569,578,584,591,596,605,614,621,629,639,650,657,663,671,674,680,686,692,701,710,714,718,728,736,744,751,759,766,775,780,790,803,815,826,840,849,859,870,881,885,890,901,910,917,926,931,935,941,948,957,974,984,992,1002,1010,1020,1030,1043,1055,1072,1087,1098,1104,1112,1119,1127,1136,1144,1155,1167,1174,1184,1194,1203,1212,1223,1235,1243,1250,1257,1263,1272,1278,1284,1292,1299,1308,1314,1323,1332,1340,1350,1356,1362,1371,1379,1387,1394,1405,1417,1429,1439,1451,1461,1472,1483,1492,1501,1509,1518,1527,1538,1550,1560,1571,1582,1596,1608,1620,1631,1641,1651,1665,1675,1686,1699,1708,1714,1726,1730,1740,1745,1754,1766,1775,1783,1794,1808,1833,1856,1887,1907,1921,1936,1944,1957,1969,1977,1985,1996,2004,2017,2026,2035,2045,2057,2070,2084,2095,2104,2119,2133,2145,2161,2167,2176,2188,2197,2207,2218,2226,2239,2250,2270,2289,2308,2327,2349,2372,2402,2419,2429,2441,2456,2474,2483,2498,2512,2524,2533,2555,2568,2582,2594,2604,2612,2621,2629,2640,2651,2661,2670,2690,2705,2727,2745,2767,2785,2799,2809,2818,2823,2830,2839,2846,2849,2860,2871,2882,2895,2911,2928,2949,2977,3005,3038,3073,3108,3135,3159,3171,3180,3195,3211,3222,3237,3249,3259,3267,3277,3286,3299,3309,3324,3331,3343,3351,3361,3372,3382,3396,3413,3426,3435,3445,3458,3475,3485,3495,3508,3520,3533,3540,3547,3555,3558,3567,3578,3582,3587,3599,3607,3615,3624,3634,3646,3659,3669,3685,3694,3701,3727,3744,3759,3776,3804,3833,3865,3896,3927,3965,3984,3993,4015,4047,4059,4068,4081,4090,4100,4114,4123,4131,4143,4152,4163,4175,4188,4200,4214,4222,4231,4243,4252,4260,4270,4278,4290,4299,4307,4320,4332,4351,4372,4393,4422,4446,4464,4476,4491,4504,4510,4522,4535,4545,4558,4571,4581,4590,4593,4601,4606,4616,4637,4656,4686,4711,4737,4757,4788,4817,4841,4864,4879,4909,4937,4984,5033,5061,5069,5075,5083,5090,5096,5108,5114,5128,5134,5141,5155,5163,5174,5183,5190,5200,5206,5214,5219,5238,5268,5297,5339,5372,5393,5412,5428,5445,5473,5504,5529,5568,5586,5614,5649,5689,5729,5766,5790,5830,5875,5896,5924,5959,6001,6036,6068,6104,6134,6167,6215],HizbQuarterList:[0,1,32,50,66,82,98,112,130,148,164,183,195,208,224,238,248,258,269,278,289,307,325,343,366,383,405,425,445,463,478,498,505,516,528,549,565,578,591,605,621,639,657,671,680,692,710,718,736,751,766,780,803,826,849,870,885,901,917,931,941,957,984,1002,1020,1043,1072,1098,1112,1127,1144,1167,1184,1203,1223,1243,1257,1272,1284,1299,1314,1332,1350,1362,1379,1394,1417,1439,1461,1483,1501,1518,1538,1560,1582,1608,1631,1651,1675,1699,1714,1730,1745,1766,1783,1808,1856,1907,1936,1957,1977,1996,2017,2035,2057,2084,2104,2133,2161,2176,2197,2218,2239,2270,2308,2349,2402,2429,2456,2483,2512,2533,2568,2594,2612,2629,2651,2670,2705,2745,2785,2809,2823,2839,2849,2871,2895,2928,2977,3038,3108,3159,3180,3211,3237,3259,3277,3299,3324,3343,3361,3382,3413,3435,3458,3485,3508,3533,3547,3558,3578,3587,3607,3624,3646,3669,3694,3727,3759,3804,3865,3927,3984,4015,4059,4081,4100,4123,4143,4163,4188,4214,4231,4252,4270,4290,4307,4332,4372,4422,4464,4491,4510,4535,4558,4581,4593,4606,4637,4686,4737,4788,4841,4879,4937,5033,5069,5083,5096,5114,5134,5155,5174,5190,5206,5219,5268,5339,5393,5428,5473,5529,5586,5649,5729,5790,5875,5924,6001,6068,6134,6215],JuzList:[0,1,148,258,383,516,639,751,901,1043,1203,1332,1483,1651,1808,2035,2218,2483,2670,2871,3211,3382,3558,3727,4081,4252,4491,4686,5083,5219,5649,6215],ManzilList:[0,1,668,1369,2035,2928,3783,4611,6215],PageList:[0,1,8,12,23,31,36,44,55,64,68,76,83,90,95,100,108,112,119,126,133,141,148,152,160,170,176,183,188,193,197,203,208,216,221,225,230,236,239,243,251,254,258,263,266,271,276,281,288,289,293,302,308,315,322,330,338,344,353,362,369,375,383,393,401,408,414,425,433,441,446,450,458,466,473,479,487,493,499,504,507,512,516,519,526,530,537,543,551,557,566,571,578,583,586,593,597,605,613,619,626,632,639,646,654,662,667,671,674,678,682,687,693,701,706,711,715,720,727,734,740,747,753,760,765,773,778,783,790,799,809,818,826,835,843,850,858,864,872,881,885,892,901,909,915,921,928,933,937,942,948,957,967,978,985,992,999,1007,1013,1023,1029,1037,1043,1051,1060,1076,1086,1094,1100,1106,1112,1116,1120,1127,1135,1144,1152,1163,1171,1179,1188,1196,1203,1209,1216,1225,1233,1239,1245,1252,1259,1265,1270,1275,1279,1286,1293,1300,1307,1312,1319,1326,1333,1339,1346,1351,1357,1362,1369,1375,1383,1389,1394,1402,1411,1422,1430,1439,1447,1457,1466,1475,1483,1490,1497,1506,1515,1523,1531,1539,1548,1558,1566,1575,1586,1595,1603,1613,1621,1629,1636,1642,1651,1662,1668,1677,1685,1694,1702,1710,1716,1724,1730,1739,1745,1753,1761,1767,1775,1780,1789,1798,1808,1823,1839,1859,1878,1898,1913,1921,1933,1941,1949,1961,1971,1979,1986,1994,2e3,2009,2017,2025,2035,2042,2052,2062,2073,2084,2093,2101,2110,2121,2131,2139,2149,2160,2165,2172,2179,2189,2197,2205,2218,2227,2238,2250,2260,2274,2287,2301,2314,2327,2346,2360,2385,2399,2412,2424,2435,2445,2459,2472,2483,2493,2507,2518,2527,2540,2554,2563,2572,2583,2594,2599,2609,2615,2622,2630,2638,2647,2656,2664,2670,2687,2697,2712,2730,2745,2760,2775,2789,2799,2809,2816,2820,2825,2831,2840,2845,2848,2853,2862,2871,2883,2894,2906,2918,2928,2946,2966,2988,3011,3039,3064,3087,3111,3134,3154,3167,3176,3190,3200,3211,3219,3232,3244,3253,3261,3269,3277,3284,3292,3299,3308,3319,3326,3333,3342,3350,3359,3367,3375,3382,3389,3400,3410,3420,3429,3437,3446,3455,3465,3475,3483,3492,3498,3509,3518,3528,3534,3543,3550,3558,3563,3571,3578,3582,3590,3601,3608,3615,3623,3632,3640,3649,3658,3666,3673,3685,3693,3700,3712,3727,3740,3754,3770,3783,3807,3834,3859,3885,3909,3936,3965,3980,3990,4006,4025,4047,4057,4062,4071,4081,4088,4095,4104,4115,4122,4129,4138,4148,4156,4163,4172,4181,4189,4199,4207,4217,4226,4235,4244,4252,4260,4268,4273,4280,4289,4301,4308,4319,4331,4342,4356,4370,4383,4399,4416,4436,4455,4467,4476,4486,4495,4504,4510,4518,4525,4537,4545,4555,4564,4573,4579,4587,4592,4597,4604,4611,4626,4646,4662,4686,4707,4728,4745,4763,4789,4806,4830,4851,4873,4895,4919,4947,4974,5009,5035,5058,5066,5072,5078,5083,5089,5094,5103,5107,5113,5120,5128,5133,5139,5146,5155,5163,5170,5177,5186,5195,5200,5207,5214,5219,5232,5246,5266,5292,5309,5337,5364,5394,5408,5428,5441,5456,5473,5492,5520,5547,5573,5593,5618,5649,5679,5705,5734,5774,5805,5828,5857,5884,5907,5934,5965,5993,6019,6045,6070,6096,6114,6131,6155,6172,6186,6200,6215],RukuList:[0,1,8,14,27,36,46,53,66,68,78,90,93,103,110,119,128,136,148,154,159,170,174,183,189,195,203,216,224,227,234,237,241,251,254,259,264,267,273,280,288,290,293,302,313,323,334,346,355,363,372,383,394,402,413,422,436,441,448,464,473,482,493,503,507,515,518,526,535,542,551,562,568,579,583,588,592,596,604,607,618,627,633,644,654,663,668,674,680,689,696,704,713,720,723,736,747,756,759,770,778,785,790,801,811,821,832,841,846,851,860,873,881,885,891,901,912,920,931,935,941,945,957,966,981,986,995,1003,1009,1014,1020,1028,1040,1049,1055,1064,1082,1085,1098,1104,1108,1114,1119,1128,1138,1145,1163,1173,1182,1191,1200,1208,1212,1222,1227,1233,1239,1245,1255,1263,1268,1276,1281,1298,1305,1312,1320,1329,1339,1350,1358,1362,1369,1379,1389,1399,1409,1422,1429,1439,1451,1461,1472,1478,1486,1502,1513,1527,1537,1545,1560,1573,1587,1599,1605,1619,1628,1634,1641,1648,1656,1667,1678,1692,1703,1710,1718,1730,1737,1742,1748,1754,1762,1769,1777,1783,1790,1797,1808,1823,1833,1852,1868,1887,1907,1916,1928,1932,1941,1947,1957,1967,1972,1977,1983,1990,1996,2007,2017,2026,2035,2045,2057,2065,2075,2087,2095,2105,2112,2119,2128,2135,2145,2157,2162,2168,2176,2188,2193,2197,2203,2214,2226,2242,2250,2264,2289,2300,2315,2333,2349,2372,2402,2424,2437,2451,2461,2475,2483,2493,2512,2524,2533,2557,2575,2594,2604,2614,2617,2625,2630,2640,2649,2656,2664,2670,2692,2702,2721,2748,2763,2789,2799,2809,2815,2823,2828,2837,2844,2848,2851,2860,2871,2885,2895,2911,2928,2936,2960,2980,2997,3032,3050,3068,3087,3103,3119,3154,3168,3185,3200,3211,3222,3238,3249,3261,3269,3277,3291,3299,3309,3324,3337,3349,3358,3367,3381,3388,3400,3406,3415,3425,3432,3445,3458,3465,3475,3483,3498,3509,3520,3528,3536,3548,3555,3558,3568,3580,3586,3596,3601,3610,3622,3631,3637,3646,3655,3662,3669,3681,3692,3701,3712,3732,3750,3767,3783,3804,3857,3896,3921,3965,3978,3990,4004,4028,4051,4061,4071,4081,4089,4100,4111,4118,4123,4131,4143,4150,4160,4173,4183,4191,4200,4207,4214,4224,4231,4238,4250,4260,4267,4277,4287,4300,4310,4324,4334,4344,4354,4366,4377,4399,4427,4439,4455,4465,4475,4480,4491,4500,4510,4516,4525,4537,4545,4554,4564,4574,4581,4590,4593,4603,4611,4626,4640,4656,4679,4702,4716,4742,4763,4788,4794,4824,4846,4864,4879,4902,4923,4956,4996,5033,5055,5065,5073,5079,5083,5089,5096,5104,5114,5121,5128,5134,5141,5150,5155,5163,5166,5174,5177,5187,5195,5202,5207,5214,5219,5234,5250,5283,5302,5339,5354,5389,5398,5418,5428,5447,5456,5473,5474,5505,5529,5558,5568,5590,5599,5639,5649,5679,5689,5715,5734,5776,5805,5824,5860,5885,5907,5924,5943,5969,6001,6021,6036,6057,6068,6076,6084,6104,6109,6117,6126,6137,6147,6155,6158,6167,6172,6177,6183,6186,6192,6195,6200,6204,6209,6215],SajdaList:[1162,1725,1956,2142,2307,2611,2910,3179,3512,3987,4242,4823],SurahList:[[-1,1,1,1,``,!1],[1,7,5,1,`الفَاتِحة`,!0],[8,285,87,40,`البَقَرَة`,!1],[293,200,89,20,`آل عِمران`,!1],[493,175,92,24,`النِّسَاء`,!1],[668,122,112,16,`المَائدة`,!1],[790,167,55,20,`الأنعَام`,!0],[957,206,39,24,`الأعرَاف`,!0],[1163,76,88,10,`الأنفَال`,!1],[1239,130,113,16,`التوبَة`,!1],[1369,109,51,11,`يُونس`,!0],[1478,121,52,10,`هُود`,!0],[1599,111,53,12,`يُوسُف`,!0],[1710,44,96,6,`الرَّعد`,!1],[1754,54,72,7,`إبراهِيم`,!0],[1808,99,54,6,`الحِجر`,!0],[1907,128,70,16,`النَّحل`,!0],[2035,110,50,12,`الإسرَاء`,!0],[2145,105,69,12,`الكَهف`,!0],[2250,99,44,6,`مَريَم`,!0],[2349,134,45,8,`طه`,!0],[2483,111,73,7,`الأنبيَاء`,!0],[2594,76,103,10,`الحج`,!1],[2670,119,74,6,`المؤمنُون`,!0],[2789,62,102,9,`النور`,!1],[2851,77,42,6,`الفُرقَان`,!0],[2928,226,47,11,`الشعراء`,!0],[3154,95,48,7,`النَّمل`,!0],[3249,88,49,8,`القَصَص`,!0],[3337,69,85,7,`العَنكبُوت`,!0],[3406,59,84,6,`الرُّوم`,!0],[3465,33,57,3,`لُقمَان`,!0],[3498,30,75,3,`السَّجدة`,!0],[3528,73,90,9,`الأحزَاب`,!1],[3601,54,58,6,`سَبإ`,!0],[3655,46,43,5,`فَاطِر`,!0],[3701,82,41,5,`يسٓ`,!0],[3783,182,56,5,`الصَّافَات`,!0],[3965,86,38,5,`صٓ`,!0],[4051,72,59,8,`الزُّمَر`,!0],[4123,84,60,9,`غَافِر`,!0],[4207,53,61,6,`فُصِّلَت`,!0],[4260,50,62,5,`الشُّوري`,!0],[4310,89,63,7,`الزُّخرُف`,!0],[4399,56,64,3,`الدُّخان`,!0],[4455,36,65,4,`الجاثِية`,!0],[4491,34,66,4,`الأحقَاف`,!0],[4525,39,95,4,`مُحمد`,!1],[4564,29,111,4,`الفَتح`,!1],[4593,18,106,2,`الحُجُرَات`,!1],[4611,45,34,3,`قٓ`,!0],[4656,60,67,3,`الذَّاريَات`,!0],[4716,47,76,2,`الطُّور`,!0],[4763,61,23,3,`النَّجم`,!0],[4824,55,37,3,`القَمَر`,!0],[4879,77,97,3,`الرَّحمٰن`,!1],[4956,99,46,3,`الوَاقِعة`,!0],[5055,28,94,4,`الحدِيد`,!1],[5083,21,105,3,`المُجَادلة`,!1],[5104,24,101,3,`الحَشر`,!1],[5128,13,91,2,`المُمتَحنَة`,!1],[5141,14,109,2,`الصَّف`,!1],[5155,11,110,2,`الجُمعَة`,!1],[5166,11,104,2,`المُنَافِقُونَ`,!1],[5177,18,108,2,`التغَابُن`,!1],[5195,12,99,2,`الطَّلَاق`,!1],[5207,12,107,2,`التَّحرِيم`,!1],[5219,31,77,2,`المُلك`,!0],[5250,52,2,2,`القَلَم`,!0],[5302,52,78,2,`الحَاقة`,!0],[5354,44,79,2,`المَعَارج`,!0],[5398,30,71,2,`نُوح`,!0],[5428,28,40,2,`الجِن`,!0],[5456,18,3,2,`المُزمل`,!0],[5474,55,4,2,`المُدثر`,!0],[5529,39,31,2,`القِيَامة`,!0],[5568,31,98,2,`الإنسَان`,!1],[5599,50,33,2,`المُرسَلات`,!0],[5649,40,80,2,`النَّبَإ`,!0],[5689,45,81,2,`النَّازعَات`,!0],[5734,42,24,1,`عَبَسَ`,!0],[5776,29,7,1,`التَّكوير`,!0],[5805,19,82,1,`الانفِطَار`,!0],[5824,36,86,1,`المُطَففين`,!0],[5860,25,83,1,`الانشِقَاق`,!0],[5885,22,27,1,`البُرُوج`,!0],[5907,17,36,1,`الطَّارق`,!0],[5924,19,8,1,`الأعلى`,!0],[5943,26,68,1,`الغَاشِية`,!0],[5969,32,10,1,`الفَجر`,!0],[6001,20,35,1,`البَلَد`,!0],[6021,15,26,1,`الشَّمس`,!0],[6036,21,9,1,`اللَّيل`,!0],[6057,11,11,1,`الضُّحى`,!0],[6068,8,12,1,`الشَّرح`,!0],[6076,8,28,1,`التِّين`,!0],[6084,20,1,1,`العَلَق`,!0],[6104,5,25,1,`القَدر`,!0],[6109,8,100,1,`البَينَة`,!1],[6117,9,93,1,`الزَّلزَلة`,!1],[6126,11,14,1,`العَاديَات`,!0],[6137,10,30,1,`القَارعَة`,!0],[6147,8,16,1,`التَّكاثُر`,!0],[6155,3,13,1,`العَصر`,!0],[6158,9,32,1,`الهُمَزة`,!0],[6167,5,19,1,`الفِيل`,!0],[6172,5,29,1,`قُرَيش`,!0],[6177,6,17,1,`المَاعُون`,!0],[6183,3,15,1,`الكَوثر`,!0],[6186,6,18,1,`الكافِرون`,!0],[6192,3,114,1,`النَّصر`,!1],[6195,5,6,1,`المَسَد`,!0],[6200,4,22,1,`الإخلَاص`,!0],[6204,5,20,1,`الفَلَق`,!0],[6209,6,21,1,`النَّاس`,!0],[6216,1,1,1,``,!1]]},t={surah:`SurahList`,juz:`JuzList`,rubAlHizb:`HizbQuarterList`,thumunAlHizb:`HizbEighthList`,page:`PageList`,manzil:`ManzilList`,ruku:`RukuList`};function n(e,t){return e===`surah`?([e,t])=>({startAyahId:e,ayahCount:t}):(e,n)=>({startAyahId:e,ayahCount:t[n+2]-e})}function r(e,r){if(!t[e])throw Error(`Invalid part type: ${e}`);let i=t[e],a=r[i];if(!a)return null;if(!Array.isArray(a))throw TypeError(`Expected array for ${String(i)}`);return a.slice(1,-1).map(n(e,a))}const i=(e,n)=>{if(!t[e])throw Error(`Invalid list name: ${e}`);let r=t[e];if(r in n)return n[r];throw Error(`List ${String(r)} not found in ${n.meta.riwayaName} riwaya`)};function a(e,t){let r=i(e,t);return r.slice(1,r.length-1).map(n(e,r))}function o(e,t){if(typeof e!=`number`||!Number.isInteger(e))throw TypeError(`Ayah ID must be an integer`);if(!v(e,t))throw RangeError(`Surah must be between 1 and `+t.numSurahs)}function s(e,t,n){c([e,t],n)}function c(e,t){let[n,r]=e;if(o(n,t.meta),typeof r!=`number`||!Number.isInteger(r)||r<1||r>h(n,t))throw RangeError(`Ayah must be between 1 and `+h(n,t))}function l(e,t){if(typeof e!=`number`||!Number.isInteger(e))throw TypeError(`Ayah ID must be an integer`);if(!g(e,t))throw RangeError(`Ayah ID must be between 1 and `+t.numAyahs)}function u(e,t){if(typeof e!=`number`||!Number.isInteger(e))throw TypeError(`Page must be an integer`);if(!x(e,t))throw RangeError(`Page must be between 1 and `+t.numPages)}function d(e,t){if(typeof e!=`number`||!Number.isInteger(e))throw TypeError(`Juz must be an integer`);if(!b(e,t))throw RangeError(`Juz must be between 1 and `+t.numJuzs)}function f(e,t){if(typeof e!=`number`||!Number.isInteger(e))throw TypeError(`Ruku must be an integer`);if(!S(e,t))throw RangeError(`Ruku must be between 1 and `+t.numRukus)}function p(e,t){if(typeof e!=`number`||!Number.isInteger(e))throw TypeError(`Manzil must be an integer`);if(!ee(e,t))throw RangeError(`Manzil must be between 1 and `+t.numManzils)}function m(e,t){return o(e,t.meta),t.SurahList[e]}function h(e,t){return m(e,t)[1]}function g(e,t){return Number.isInteger(e)&&1<=e&&e<=t.numAyahs}function _(e){return Number.isInteger(e)&&1<=e&&e<=286}function v(e,t){return Number.isInteger(e)&&1<=e&&e<=t.numSurahs}function y(e,t){let[n,r]=e;return v(n,t.meta)?Number.isInteger(r)&&r>=1&&r<=h(n,t):!1}function b(e,t){return Number.isInteger(e)&&1<=e&&e<=t.numJuzs}function x(e,t){return Number.isInteger(e)&&1<=e&&e<=t.numPages}function S(e,t){return Number.isInteger(e)&&1<=e&&e<=t.numRukus}function ee(e,t){return Number.isInteger(e)&&1<=e&&e<=t.numManzils}function C(e,t=!0,n){let r=t?te(e):w(e);if(!r)throw Error(`Invalid string format: `+e);let{surahOrAyah:i,ayah:a,ayahTo:o}=r,c=n.meta;if(!v(i,c))throw Error(`Invalid ayah number: `+e);let u=i,d;if(o){if(l(a,c),l(o,c),a>o)throw Error(`Invalid ayah range: `+e);d=[a,o]}else{if(!_(a))throw Error(`Error in data `+e);s(u,a,n),d=a}return[u,d]}function w(e){let t=/(?<surah>\d{1,3})\D*(?<ayah>\d{0,3})\D*(?<ayahTo>\d{0,3})/.exec(e);if(t?.groups&&+t.groups.surah>0){let{ayah:e,ayahTo:n,surah:r}=t.groups;return{surahOrAyah:+r,ayah:+e,ayahTo:+n}}return null}function te(e){let[t,n]=e.trim().split(`:`);t=t.trim();let r=parseInt(t.trim(),10);if(isNaN(r))throw Error(`Error in surah format `+e);if(n=n.trim(),!n)throw Error(`Error in data `+e);let i;if(n.includes(`-`))i=n.split(`-`).map(t=>{let n=parseInt(t,10);if(isNaN(n))throw Error(`Error in surah format `+e);return n});else{let t=parseInt(n,10);if(isNaN(t))throw Error(`Error in surah format `+e);i=[t,NaN]}return{surahOrAyah:+r,ayah:+i[0],ayahTo:+i[1]}}function T(e,t,n){s(e,t,n);let[r]=n.SurahList[e];return r+t-1}function E(e,t,n=(e,t)=>e-t){let r=0,i=e.length-1;for(;r<=i;){let a=i+r>>1,o=n(t,e[a]);if(o>0)r=a+1;else if(o<0)i=a-1;else return a}return-r-1}function D(e,t){l(e,t.meta);let n=E(t.JuzList,e);return n<0?-n-2:n}function O(e,t=1,n){return D(T(e,t,n),n)}function k(e,t){l(e,t.meta);let n=t.SurahList,r=E(n,e,(e,t)=>e-t[0]),i=r<0?-r-2:r;return[i,e-n[i][0]+1]}function A(e,t){return k(e,t)[0]}function j(e,t,n){let r=T(e,t,n),i=n.JuzList,a=n.SurahList,o=D(r,n),s=i[o],[c]=a[e];return{juz:o,ayahsBetweenJuzSurah:c-s,leftAyahId:s}}function ne(e,t){l(e,t.meta);let n=t.JuzList,r=t.SurahList,i=D(e,t),a=n[i],[o]=r[A(e,t)];return{juz:i,ayahsBetweenJuzSurah:o-a,leftAyahId:a}}function M(e,t=1,n){let{juz:r,ayahsBetweenJuzSurah:i,leftAyahId:a}=j(e,t,n),o=n.JuzList,s=r;for(;s<n.meta.numJuzs&&A(o[s+1],n)===e;)s++;return{leftjuz:r,ayahsBetweenJuzSurah:i,rightJuz:s,leftAyahId:a,rightAyahId:o[s+1]}}function N(e,t){l(e,t.meta);let n=t.ManzilList,r=E(n,e);return r<0?-r-2:r}function P(e,t=1,n){return N(T(e,t,n),n)}function F(e,t=1,n){o(e,n.meta);let r=T(e,t,n),i=n.PageList,a=E(i,r);return a<0?-a-2:a}function I(e,t){l(e,t.meta);let n=t.PageList,r=E(n,e);return r<0?-r-2:r}function L(e,t){l(e,t.meta);let n=t.RukuList,r=E(n,e);return r<0?-r-2:r}function R(e,t,n){let r=n.JuzList,i=n.SurahList,a=n.PageList,o=n.RukuList;switch(t){case`juz`:{let t=D(e,n);return[r[t],r[t+1]-1]}case`surah`:{let t=A(e,n);return[i[t][0],i[t+1][0]-1]}case`ayah`:return[e,e];case`page`:{let t=I(e,n);return[a[t],a[t+1]-1]}case`ruku`:{let t=L(e,n);return[o[t],o[t+1]-1]}case`all`:default:return[1,n.meta.numAyahs]}}function z(e,t,n,r){o(e,r.meta);let i=r.SurahList;return n===`surah`?[i[e][0],i[e+1][0]-1]:R(T(e,t,r),n,r)}function B(e,t){l(e,t.meta);let n=t.HizbQuarterList,r=E(n,e);return r<0?-r-2:r}function V(e,t=1,n){return o(e,n.meta),B(T(e,t,n),n)}function H(e,t){l(e,t.meta);let n=t.HizbEighthList;if(!n)throw Error(`Riwaya ${t.meta.riwayaName} does not have Hizb Eighth List data.`);let r=E(n,e);return r<0?-r-2:r}function re(e,t=1,n){return o(e,n.meta),H(T(e,t,n),n)}function U(e){return{juz:Math.floor((e-1)/8)+1,hizbId:Math.floor((e-1)/4)+1,juzPart:e%8||8,rubAlHizbId:e}}function W(e){return{...U(Math.floor((e-1)/2)+1),thumunAlHizbId:e}}function G(e,t){return l(e,t.meta),W(H(e,t))}function K(e,t){let n=W(e),r=t.HizbEighthList;if(!r)throw Error(`Riwaya ${t.meta.riwayaName} does not have Hizb Eighth List data.`);let[i,a]=[r[e],r[e+1]],o=a-1;return{firstAyahId:i,lastAyahId:o,first:k(i,t),last:k(o,t),...n}}function q(e,t){return l(e,t.meta),K(H(e,t),t)}function J(e,t){return l(e,t.meta),U(B(e,t))}function Y(e,t){l(e,t.meta);let{SurahList:n,SajdaList:r,PageList:i,RukuList:a,JuzList:o,HizbQuarterList:s}=t,c=()=>{if(`HizbEighthList`in t&&t.HizbEighthList){let n=E(t.HizbEighthList,e);return{thumunAlHizbId:n<0?-n-2:n}}return{}},u=J(e,t),[d,f]=k(e,t),p=I(e,t),m=E(r,e,(e,t)=>e-t)>=0,h=E(a,e),g=h>0,_=g?h:-h-2,v=n[d][0]===e,y=i[p]===e,b=o[u.juz]===e,x=s[u.rubAlHizbId]===e,S=n[d+1][0]-1===e,ee=i[p+1]-1===e,C=o[u.juz+1]-1===e,w=E(a,e+1)>0,te=s[u.rubAlHizbId+1]-1===e;return{...u,...c(),surah:d,ayah:f,page:p,isStartOfQuarter:x,isEndOfQuarter:te,isSajdahAyah:m,isStartOfPage:y,isEndOfPage:ee,ruku:_,isStartOfJuz:b,isEndOfJuz:C,isStartOfSurah:v,isEndOfSurah:S,isStartOfRuku:g,isEndOfRuku:w}}function X(e,t){o(e,t.meta);let{SurahList:n,SajdaList:r,PageList:i,RukuList:a,JuzList:s,HizbQuarterList:c}=t,[l,u]=n[e],d=l+u-1,f=[],p=Y(l,t);f.push(p);for(let e=l+1;e<=d;e++)p=structuredClone(p),p.ayah+=1,p.isStartOfSurah=!1,p.isEndOfSurah=d===e,i[p.page+1]===e?(p.page+=1,p.isStartOfPage=!0):p.isStartOfPage=!1,p.isEndOfPage=i[p.page+1]===e+1,a[p.ruku+1]===e?(p.ruku+=1,p.isStartOfRuku=!0):p.isStartOfRuku=!1,p.isEndOfRuku=a[p.ruku+1]===e+1,p.isEndOfJuz=s[p.juz+1]===e+1,s[p.juz+1]===e?(p.juz+=1,p.hizbId+=1,p.isStartOfJuz=!0):p.isStartOfJuz=!1,p.isEndOfQuarter=c[p.rubAlHizbId+1]===e+1,c[p.rubAlHizbId+1]===e?(p.rubAlHizbId+=1,p.juzPart=p.isStartOfJuz?1:p.juzPart+1,p.isStartOfQuarter=!0,p.juzPart===5&&(p.hizbId+=1)):p.isStartOfQuarter=!1,p.isSajdahAyah=r.includes(e),f.push(p);return f}function ie(e,t){d(e,t.meta);let n=t.JuzList,[r,i]=[n[e],n[e+1]],a=i-1;return{juzNum:e,firstAyahId:r,lastAyahId:a,first:k(r,t),last:k(a,t)}}function ae(e,t){p(e,t.meta);let n=t.ManzilList,[r,i]=[n[e],n[e+1]],a=i-1;return{manzilNum:e,firstAyahId:r,lastAyahId:a,first:k(r,t),last:k(a,t)}}function oe(e,t){u(e,t.meta);let n=t.PageList,[r,i]=[n[e],n[e+1]],a=i-1;return{pageNum:e,firstAyahId:r,lastAyahId:a,first:k(r,t),last:k(a,t)}}function Z(e,t){let n=U(e),r=t.HizbQuarterList,[i,a]=[r[e],r[e+1]],o=a-1;return{firstAyahId:i,lastAyahId:o,first:k(i,t),last:k(o,t),...n}}function se(e,t){return l(e,t.meta),Z(B(e,t),t)}function ce(e,t){f(e,t.meta);let n=t.RukuList,[r,i]=[n[e],n[e+1]],a=i-1;return{rukuNum:e,firstAyahId:r,lastAyahId:a,first:k(r,t),last:k(a,t)}}function le(e,t){let[n,r,i,a,o,s]=m(e,t);return{surahNum:e,ayahCount:r,surahOrder:i,rukuCount:a,name:o,isMeccan:s,firstAyahId:n,lastAyahId:n+r-1,first:[e,1],last:[e,r]}}function ue(e,t){l(e,t.meta);let n=t.JuzList;return E(n,e)}function de(e,t){l(e,t.meta);let n=t.PageList;return E(n,e)}function fe(e,t,n){o(e,n.meta);let r=T(e,t,n),i=n.JuzList;return E(i,r)}function pe(e,t,n){o(e,n.meta);let r=T(e,t,n),i=n.PageList;return E(i,r)}function me(e,t,n){if(e<1||e>n.meta.numSurahs)throw RangeError(`Surah must be between 1 and `+n.meta.numSurahs);let r=T(e,t,n);return k(r==n.meta.numAyahs?1:r+1,n)}function he(e,t,n){o(e,n.meta);let r=T(e,t,n);return k(r==1?n.meta.numAyahs:r-1,n)}function ge(e,t=!1,n){let r=t?Number(e.trim()):Number.parseInt(e.trim(),10);if(isNaN(r))throw Error(`Error in surah format `+e);if(!v(r,n))throw Error(`Error in surah number `+e);return r}var _e=class e{#e;#t;#n;constructor(e){this.#e=e.meta.riwayaName,this.#t=e.meta,this.#n=e}static create(t){return new e(t)}getSurahMeta(e){return le(e,this.#n)}ayahStringSplitter(e,t=!0){return C(e,t,this.#n)}getSurahInfo(e){return m(e,this.#n)}getAyahCountInSurah(e){return h(e,this.#n)}findSurahByAyahId(e){return A(e,this.#n)}findSurahAyahByAyahId(e){return k(e,this.#n)}findAyahIdBySurah(e,t){return T(e,t,this.#n)}generatePartBlocks(e){return r(e,this.#n)}getList(e){return i(e,this.#n)}getListNormalised(e){return a(e,this.#n)}nextAyah(e,t){return me(e,t,this.#n)}prevAyah(e,t){return he(e,t,this.#n)}findJuz(e,t=1){return O(e,t,this.#n)}findJuzByAyahId(e){return D(e,this.#n)}findPage(e,t=1){return F(e,t,this.#n)}findPagebyAyahId(e){return I(e,this.#n)}getPageMeta(e){return oe(e,this.#n)}findManzil(e,t=1){return P(e,t,this.#n)}findManzilByAyahId(e){return N(e,this.#n)}getManzilMeta(e){return ae(e,this.#n)}findRukuByAyahId(e){return L(e,this.#n)}getRukuMeta(e){return ce(e,this.#n)}getJuzMeta(e){return ie(e,this.#n)}findJuzMetaBySurah(e,t=1){return M(e,t,this.#n)}findJuzAndShift(e,t){return j(e,t,this.#n)}findJuzAndShiftByAyahId(e){return ne(e,this.#n)}findRubAlHizb(e,t=1){return V(e,t,this.#n)}findRubAlHizbByAyahId(e){return B(e,this.#n)}getRubAlHizbByAyahId(e){return J(e,this.#n)}getRubAlHizb(e){return U(e)}getRubAlHizbMetaByAyahId(e){return se(e,this.#n)}getRubAlHizbMeta(e){return Z(e,this.#n)}findThumunAlHizbByAyahId(e){return H(e,this.#n)}findThumunAlHizb(e,t=1){return re(e,t,this.#n)}getThumunAlHizbMeta(e){return K(e,this.#n)}getThumunAlHizbByAyahId(e){return G(e,this.#n)}getThumunAlHizbMetaByAyahId(e){return q(e,this.#n)}getThumunAlHizb(e){return W(e)}getAyahMeta(e){return Y(e,this.#n)}getAyahMetasForSurah(e){return X(e,this.#n)}findRangeAroundAyah(e,t){return R(e,t,this.#n)}findRangeAroundSurahAyah(e,t,n){return z(e,t,n,this.#n)}isAyahJuzFirst(e){return ue(e,this.#n)}isAyahPageFirst(e){return de(e,this.#n)}isSurahAyahJuzFirst(e,t){return fe(e,t,this.#n)}isSurahAyahPageFirst(e,t){return pe(e,t,this.#n)}isValidAyahId(e){return g(e,this.#t)}isValidPage(e){return x(e,this.#t)}isValidSurah(e){return v(e,this.#t)}isValidJuz(e){return b(e,this.#t)}isValidRuku(e){return S(e,this.#t)}isValidSurahAyah(e){return y(e,this.#n)}static isValidAyahNo(e){return _(e)}surahStringParser(e,t=!1){return ge(e,t,this.#t)}static string2NumberSplitter(e){return w(e)}get riwayaName(){return this.#e}get meta(){return this.#t}get lists(){return this.#n}};const Q=e,ve=e=>i(e,Q),ye=e=>a(e,Q),$=Q.meta,be=Q.HizbQuarterList,xe=Q.JuzList,Se=Q.ManzilList,Ce=Q.PageList,we=Q.SurahList,Te=Q.RukuList,Ee=Q.SajdaList,De=(e,t=!0)=>C(e,t,Q),Oe=e=>{let[t,n]=e.split(`:`);return{surah:Number.parseInt(t),ayah:n?Number.parseInt(n):1}},ke=(e,t)=>s(e,t,Q),Ae=e=>o(e,$),je=e=>c(e,Q),Me=e=>l(e,$),Ne=e=>u(e,$),Pe=e=>d(e,$),Fe=e=>f(e,$),Ie=e=>p(e,$),Le=e=>le(e,Q),Re=e=>m(e,Q),ze=e=>h(e,Q),Be=(e,t=1)=>T(e,t,Q),Ve=e=>A(e,Q),He=e=>k(e,Q),Ue=(e,t)=>me(e,t,Q),We=(e,t)=>he(e,t,Q),Ge=(e,t=1)=>O(e,t,Q),Ke=e=>D(e,Q),qe=e=>ie(e,Q),Je=(e,t=1)=>M(e,t,Q),Ye=(e,t=1)=>j(e,t,Q),Xe=e=>ne(e,Q),Ze=(e,t=1)=>F(e,t,Q),Qe=e=>I(e,Q),$e=e=>oe(e,Q),et=(e,t=1)=>P(e,t,Q),tt=e=>N(e,Q),nt=e=>ae(e,Q),rt=e=>L(e,Q),it=e=>ce(e,Q),at=(e,t=1)=>V(e,t,Q),ot=e=>B(e,Q),st=e=>U(e),ct=e=>Z(e,Q),lt=e=>se(e,Q),ut=e=>J(e,Q),dt=(e,t=1)=>re(e,t,Q),ft=e=>H(e,Q),pt=e=>W(e),mt=e=>G(e,Q),ht=e=>K(e,Q),gt=e=>q(e,Q),_t=e=>Y(e,Q),vt=e=>X(e,Q),yt=(e,t)=>R(e,t,Q),bt=(e,t,n)=>z(e,t,n,Q),xt=e=>ue(e,Q),St=e=>de(e,Q),Ct=(e,t)=>fe(e,t,Q),wt=(e,t)=>pe(e,t,Q),Tt=e=>v(e,$),Et=e=>e>=1&&e<=286,Dt=e=>g(e,$),Ot=e=>x(e,$),kt=e=>e.split(/[\s,:;.\-_/\\|]/).filter(e=>e.trim()!==``).map(e=>Number.parseInt(e.trim())).filter(e=>!Number.isNaN(e)),At=e=>b(e,$),jt=e=>S(e,$),Mt=e=>y(e,Q),Nt=e=>r(e,Q),Pt=()=>_e.create(Q);export{be as HizbQuarterList,xe as JuzList,Se as ManzilList,Ce as PageList,Te as RukuList,Ee as SajdaList,we as SurahList,De as ayahStringSplitter,Me as checkValidAyahId,Pe as checkValidJuz,Ie as checkValidManzil,Ne as checkValidPage,Fe as checkValidRuku,Ae as checkValidSurah,ke as checkValidSurahAyah,je as checkValidSurahAyahPair,Pt as createQalun,Be as findAyahIdBySurah,Ge as findJuz,Ye as findJuzAndShift,Xe as findJuzAndShiftByAyahId,Ke as findJuzByAyahId,Je as findJuzMetaBySurah,et as findManzil,tt as findManzilByAyahId,Ze as findPage,Qe as findPagebyAyahId,yt as findRangeAroundAyah,bt as findRangeAroundSurahAyah,at as findRubAlHizb,ot as findRubAlHizbByAyahId,rt as findRukuByAyahId,He as findSurahAyahByAyahId,Ve as findSurahByAyahId,dt as findThumunAlHizb,ft as findThumunAlHizbByAyahId,Nt as generatePartBlocks,ze as getAyahCountInSurah,_t as getAyahMeta,vt as getAyahMetasForSurah,qe as getJuzMeta,ve as getList,ye as getListNormalised,nt as getManzilMeta,$e as getPageMeta,st as getRubAlHizb,ut as getRubAlHizbByAyahId,ct as getRubAlHizbMeta,lt as getRubAlHizbMetaByAyahId,it as getRukuMeta,Re as getSurahInfo,Le as getSurahMeta,pt as getThumunAlHizb,mt as getThumunAlHizbByAyahId,ht as getThumunAlHizbMeta,gt as getThumunAlHizbMetaByAyahId,xt as isAyahJuzFirst,St as isAyahPageFirst,Ct as isSurahAyahJuzFirst,wt as isSurahAyahPageFirst,Dt as isValidAyahId,Et as isValidAyahNo,At as isValidJuz,Ot as isValidPage,jt as isValidRuku,Tt as isValidSurah,Mt as isValidSurahAyah,$ as meta,Ue as nextAyah,We as prevAyah,Q as riwayaLists,kt as string2NumberSplitter,Oe as surahStringParser};