UNPKG

quran-meta

Version:

Library with meta data and functionality related to Holy Quran

1 lines 25.7 kB
const e={meta:{riwayaName:`Warsh`,numAyahs:6214,numSurahs:114,numPages:604,numJuzs:30,numHizbs:60,numRubAlHizbs:240,numThumunAlHizbs:480,numRubsInJuz:8,numSajdas:14,numRukus:556,numManzils:7},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,5880,6103],SurahList:[[-1,1,1,1,``,!1],[1,7,1,1,`الفَاتِحة`,!0],[8,285,2,1,`البَقَرَة`,!0],[293,200,3,1,`آل عِمران`,!0],[493,175,4,1,`النِّسَاء`,!0],[668,122,5,1,`المَائدة`,!0],[790,167,6,1,`الأنعَام`,!0],[957,206,7,1,`الأعرَاف`,!0],[1163,76,8,1,`الأنفَال`,!0],[1239,130,9,1,`التوبَة`,!0],[1369,109,10,1,`يُونس`,!0],[1478,121,11,1,`هُود`,!0],[1599,111,12,1,`يُوسُف`,!0],[1710,44,13,1,`الرَّعد`,!0],[1754,54,14,1,`إبراهِيم`,!0],[1808,99,15,1,`الحِجر`,!0],[1907,128,16,1,`النَّحل`,!0],[2035,110,17,1,`الإسرَاء`,!0],[2145,105,18,1,`الكَهف`,!0],[2250,99,19,1,`مَريَم`,!0],[2349,134,20,1,`طه`,!0],[2483,111,21,1,`الأنبيَاء`,!0],[2594,76,22,1,`الحج`,!0],[2670,119,23,1,`المؤمنُون`,!0],[2789,62,24,1,`النور`,!0],[2851,77,25,1,`الفُرقَان`,!0],[2928,226,26,1,`الشعراء`,!0],[3154,95,27,1,`النَّمل`,!0],[3249,88,28,1,`القَصَص`,!0],[3337,69,29,1,`العَنكبُوت`,!0],[3406,59,30,1,`الرُّوم`,!0],[3465,33,31,1,`لُقمَان`,!0],[3498,30,32,1,`السَّجدة`,!0],[3528,73,33,1,`الأحزَاب`,!0],[3601,54,34,1,`سَبإ`,!0],[3655,46,35,1,`فَاطِر`,!0],[3701,82,36,1,`يسٓ`,!0],[3783,182,37,1,`الصَّافَات`,!0],[3965,86,38,1,`صٓ`,!0],[4051,72,39,1,`الزُّمَر`,!0],[4123,84,40,1,`غَافِر`,!0],[4207,53,41,1,`فُصِّلَت`,!0],[4260,50,42,1,`الشُّوري`,!0],[4310,89,43,1,`الزُّخرُف`,!0],[4399,56,44,1,`الدُّخان`,!0],[4455,36,45,1,`الجاثِية`,!0],[4491,34,46,1,`الأحقَاف`,!0],[4525,39,47,1,`مُحمد`,!0],[4564,29,48,1,`الفَتح`,!0],[4593,18,49,1,`الحُجُرَات`,!0],[4611,45,50,1,`قٓ`,!0],[4656,60,51,1,`الذَّاريَات`,!0],[4716,47,52,1,`الطُّور`,!0],[4763,61,53,1,`النَّجم`,!0],[4824,55,54,1,`القَمَر`,!0],[4879,77,55,1,`الرَّحمٰن`,!0],[4956,99,56,1,`الوَاقِعة`,!0],[5055,28,57,1,`الحدِيد`,!0],[5083,21,58,1,`المُجَادلة`,!0],[5104,24,59,1,`الحَشر`,!0],[5128,13,60,1,`المُمتَحنَة`,!0],[5141,14,61,1,`الصَّف`,!0],[5155,11,62,1,`الجُمعَة`,!0],[5166,11,63,1,`المُنَافِقُونَ`,!0],[5177,18,64,1,`التغَابُن`,!0],[5195,12,65,1,`الطَّلَاق`,!0],[5207,12,66,1,`التَّحرِيم`,!0],[5219,31,67,1,`المُلك`,!0],[5250,52,68,1,`القَلَم`,!0],[5302,52,69,1,`الحَاقة`,!0],[5354,44,70,1,`المَعَارج`,!0],[5398,30,71,1,`نُوح`,!0],[5428,28,72,1,`الجِن`,!0],[5456,18,73,1,`المُزمل`,!0],[5474,55,74,1,`المُدثر`,!0],[5529,39,75,1,`القِيَامة`,!0],[5568,31,76,1,`الإنسَان`,!0],[5599,50,77,1,`المُرسَلات`,!0],[5649,40,78,1,`النَّبَإ`,!0],[5689,45,79,1,`النَّازعَات`,!0],[5734,42,80,1,`عَبَسَ`,!0],[5776,29,81,1,`التَّكوير`,!0],[5805,19,82,1,`الانفِطَار`,!0],[5824,36,83,1,`المُطَففين`,!0],[5860,25,84,1,`الانشِقَاق`,!0],[5885,22,85,1,`البُرُوج`,!0],[5907,17,86,1,`الطَّارق`,!0],[5924,19,87,1,`الأعلى`,!0],[5943,26,88,1,`الغَاشِية`,!0],[5969,32,89,1,`الفَجر`,!0],[6001,20,90,1,`البَلَد`,!0],[6021,15,91,1,`الشَّمس`,!0],[6036,21,92,1,`اللَّيل`,!0],[6057,11,93,1,`الضُّحى`,!0],[6068,8,94,1,`الشَّرح`,!0],[6076,8,95,1,`التِّين`,!0],[6084,20,96,1,`العَلَق`,!0],[6104,5,97,1,`القَدر`,!0],[6109,8,98,1,`البَينَة`,!0],[6117,9,99,1,`الزَّلزَلة`,!0],[6126,11,100,1,`العَاديَات`,!0],[6137,10,101,1,`القَارعَة`,!0],[6147,8,102,1,`التَّكاثُر`,!0],[6155,3,103,1,`العَصر`,!0],[6158,9,104,1,`الهُمَزة`,!0],[6167,5,105,1,`الفِيل`,!0],[6172,5,106,1,`قُرَيش`,!0],[6177,6,107,1,`المَاعُون`,!0],[6183,3,108,1,`الكَوثر`,!0],[6186,6,109,1,`الكافِرون`,!0],[6192,3,110,1,`النَّصر`,!0],[6195,5,111,1,`المَسَد`,!0],[6200,4,112,1,`الإخلَاص`,!0],[6204,5,113,1,`الفَلَق`,!0],[6209,6,114,1,`النَّاس`,!0],[6215,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(!C(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 C(e,t){return Number.isInteger(e)&&1<=e&&e<=t.numManzils}function w(e,t=!0,n){let r=t?E(e):T(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 T(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 E(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 D(e,t,n){s(e,t,n);let[r]=n.SurahList[e];return r+t-1}function O(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 k(e,t){l(e,t.meta);let n=O(t.JuzList,e);return n<0?-n-2:n}function ee(e,t=1,n){return k(D(e,t,n),n)}function A(e,t){l(e,t.meta);let n=t.SurahList,r=O(n,e,(e,t)=>e-t[0]),i=r<0?-r-2:r;return[i,e-n[i][0]+1]}function j(e,t){return A(e,t)[0]}function M(e,t,n){let r=D(e,t,n),i=n.JuzList,a=n.SurahList,o=k(r,n),s=i[o],[c]=a[e];return{juz:o,ayahsBetweenJuzSurah:c-s,leftAyahId:s}}function N(e,t){l(e,t.meta);let n=t.JuzList,r=t.SurahList,i=k(e,t),a=n[i],[o]=r[j(e,t)];return{juz:i,ayahsBetweenJuzSurah:o-a,leftAyahId:a}}function P(e,t=1,n){let{juz:r,ayahsBetweenJuzSurah:i,leftAyahId:a}=M(e,t,n),o=n.JuzList,s=r;for(;s<n.meta.numJuzs&&j(o[s+1],n)===e;)s++;return{leftjuz:r,ayahsBetweenJuzSurah:i,rightJuz:s,leftAyahId:a,rightAyahId:o[s+1]}}function F(e,t){l(e,t.meta);let n=t.ManzilList,r=O(n,e);return r<0?-r-2:r}function te(e,t=1,n){return F(D(e,t,n),n)}function ne(e,t=1,n){o(e,n.meta);let r=D(e,t,n),i=n.PageList,a=O(i,r);return a<0?-a-2:a}function I(e,t){l(e,t.meta);let n=t.PageList,r=O(n,e);return r<0?-r-2:r}function L(e,t){l(e,t.meta);let n=t.RukuList,r=O(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=k(e,n);return[r[t],r[t+1]-1]}case`surah`:{let t=j(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(D(e,t,r),n,r)}function B(e,t){l(e,t.meta);let n=t.HizbQuarterList,r=O(n,e);return r<0?-r-2:r}function re(e,t=1,n){return o(e,n.meta),B(D(e,t,n),n)}function V(e){return{juz:Math.floor((e-1)/8)+1,hizbId:Math.floor((e-1)/4)+1,juzPart:e%8||8,rubAlHizbId:e}}function H(e,t){return l(e,t.meta),V(B(e,t))}function U(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=O(t.HizbEighthList,e);return{thumunAlHizbId:n<0?-n-2:n}}return{}},u=H(e,t),[d,f]=A(e,t),p=I(e,t),m=O(r,e,(e,t)=>e-t)>=0,h=O(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,C=i[p+1]-1===e,w=o[u.juz+1]-1===e,T=O(a,e+1)>0,E=s[u.rubAlHizbId+1]-1===e;return{...u,...c(),surah:d,ayah:f,page:p,isStartOfQuarter:x,isEndOfQuarter:E,isSajdahAyah:m,isStartOfPage:y,isEndOfPage:C,ruku:_,isStartOfJuz:b,isEndOfJuz:w,isStartOfSurah:v,isEndOfSurah:S,isStartOfRuku:g,isEndOfRuku:T}}function W(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=U(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 G(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:A(r,t),last:A(a,t)}}function K(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:A(r,t),last:A(a,t)}}function q(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:A(r,t),last:A(a,t)}}function J(e,t){let n=V(e),r=t.HizbQuarterList,[i,a]=[r[e],r[e+1]],o=a-1;return{firstAyahId:i,lastAyahId:o,first:A(i,t),last:A(o,t),...n}}function Y(e,t){return l(e,t.meta),J(B(e,t),t)}function X(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:A(r,t),last:A(a,t)}}function ie(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 ae(e,t){l(e,t.meta);let n=t.JuzList;return O(n,e)}function oe(e,t){l(e,t.meta);let n=t.PageList;return O(n,e)}function se(e,t,n){o(e,n.meta);let r=D(e,t,n),i=n.JuzList;return O(i,r)}function ce(e,t,n){o(e,n.meta);let r=D(e,t,n),i=n.PageList;return O(i,r)}function le(e,t,n){if(e<1||e>n.meta.numSurahs)throw RangeError(`Surah must be between 1 and `+n.meta.numSurahs);let r=D(e,t,n);return A(r==n.meta.numAyahs?1:r+1,n)}function ue(e,t,n){o(e,n.meta);let r=D(e,t,n);return A(r==1?n.meta.numAyahs:r-1,n)}function Z(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=O(n,e);return r<0?-r-2:r}function de(e,t=1,n){return o(e,n.meta),Z(D(e,t,n),n)}function Q(e){return{...V(Math.floor((e-1)/2)+1),thumunAlHizbId:e}}function fe(e,t){return l(e,t.meta),Q(Z(e,t))}function pe(e,t){let n=Q(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:A(i,t),last:A(o,t),...n}}function me(e,t){return l(e,t.meta),pe(Z(e,t),t)}function he(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 ge=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 ie(e,this.#n)}ayahStringSplitter(e,t=!0){return w(e,t,this.#n)}getSurahInfo(e){return m(e,this.#n)}getAyahCountInSurah(e){return h(e,this.#n)}findSurahByAyahId(e){return j(e,this.#n)}findSurahAyahByAyahId(e){return A(e,this.#n)}findAyahIdBySurah(e,t){return D(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 le(e,t,this.#n)}prevAyah(e,t){return ue(e,t,this.#n)}findJuz(e,t=1){return ee(e,t,this.#n)}findJuzByAyahId(e){return k(e,this.#n)}findPage(e,t=1){return ne(e,t,this.#n)}findPagebyAyahId(e){return I(e,this.#n)}getPageMeta(e){return q(e,this.#n)}findManzil(e,t=1){return te(e,t,this.#n)}findManzilByAyahId(e){return F(e,this.#n)}getManzilMeta(e){return K(e,this.#n)}findRukuByAyahId(e){return L(e,this.#n)}getRukuMeta(e){return X(e,this.#n)}getJuzMeta(e){return G(e,this.#n)}findJuzMetaBySurah(e,t=1){return P(e,t,this.#n)}findJuzAndShift(e,t){return M(e,t,this.#n)}findJuzAndShiftByAyahId(e){return N(e,this.#n)}findRubAlHizb(e,t=1){return re(e,t,this.#n)}findRubAlHizbByAyahId(e){return B(e,this.#n)}getRubAlHizbByAyahId(e){return H(e,this.#n)}getRubAlHizb(e){return V(e)}getRubAlHizbMetaByAyahId(e){return Y(e,this.#n)}getRubAlHizbMeta(e){return J(e,this.#n)}findThumunAlHizbByAyahId(e){return Z(e,this.#n)}findThumunAlHizb(e,t=1){return de(e,t,this.#n)}getThumunAlHizbMeta(e){return pe(e,this.#n)}getThumunAlHizbByAyahId(e){return fe(e,this.#n)}getThumunAlHizbMetaByAyahId(e){return me(e,this.#n)}getThumunAlHizb(e){return Q(e)}getAyahMeta(e){return U(e,this.#n)}getAyahMetasForSurah(e){return W(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 ae(e,this.#n)}isAyahPageFirst(e){return oe(e,this.#n)}isSurahAyahJuzFirst(e,t){return se(e,t,this.#n)}isSurahAyahPageFirst(e,t){return ce(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 he(e,t,this.#t)}static string2NumberSplitter(e){return T(e)}get riwayaName(){return this.#e}get meta(){return this.#t}get lists(){return this.#n}};const $=e.meta,_e=t=>i(t,e),ve=t=>a(t,e),ye=e.HizbQuarterList,be=e.JuzList,xe=e.ManzilList,Se=e.PageList,Ce=e.SurahList,we=e.RukuList,Te=e.SajdaList,Ee=(t,n=!0)=>w(t,n,e),De=e=>{let[t,n]=e.split(`:`);return{surah:Number.parseInt(t),ayah:n?Number.parseInt(n):1}},Oe=(t,n)=>s(t,n,e),ke=e=>o(e,$),Ae=t=>c(t,e),je=e=>l(e,$),Me=e=>u(e,$),Ne=e=>d(e,$),Pe=e=>f(e,$),Fe=e=>p(e,$),Ie=t=>ie(t,e),Le=t=>m(t,e),Re=t=>h(t,e),ze=(t,n=1)=>D(t,n,e),Be=t=>j(t,e),Ve=t=>A(t,e),He=(t,n)=>le(t,n,e),Ue=(t,n)=>ue(t,n,e),We=(t,n=1)=>ee(t,n,e),Ge=t=>k(t,e),Ke=t=>G(t,e),qe=(t,n=1)=>P(t,n,e),Je=(t,n=1)=>M(t,n,e),Ye=t=>N(t,e),Xe=(t,n=1)=>ne(t,n,e),Ze=t=>I(t,e),Qe=t=>q(t,e),$e=(t,n=1)=>te(t,n,e),et=t=>F(t,e),tt=t=>K(t,e),nt=t=>L(t,e),rt=t=>X(t,e),it=(t,n=1)=>re(t,n,e),at=t=>B(t,e),ot=e=>V(e),st=t=>J(t,e),ct=t=>Y(t,e),lt=t=>H(t,e),ut=t=>U(t,e),dt=t=>W(t,e),ft=(t,n)=>R(t,n,e),pt=(t,n,r)=>z(t,n,r,e),mt=t=>ae(t,e),ht=t=>oe(t,e),gt=(t,n)=>se(t,n,e),_t=(t,n)=>ce(t,n,e),vt=e=>v(e,$),yt=e=>e>=1&&e<=286,bt=e=>g(e,$),xt=e=>C(e,$),St=e=>x(e,$),Ct=e=>e.split(/[\s,:;.\-_/\\|]/).filter(e=>e.trim()!==``).map(e=>Number.parseInt(e.trim())).filter(e=>!Number.isNaN(e)),wt=e=>b(e,$),Tt=e=>S(e,$),Et=t=>y(t,e),Dt=t=>r(t,e),Ot=()=>ge.create(e);export{ye as HizbQuarterList,be as JuzList,xe as ManzilList,Se as PageList,we as RukuList,Te as SajdaList,Ce as SurahList,Ee as ayahStringSplitter,je as checkValidAyahId,Ne as checkValidJuz,Fe as checkValidManzil,Me as checkValidPage,Pe as checkValidRuku,ke as checkValidSurah,Oe as checkValidSurahAyah,Ae as checkValidSurahAyahPair,Ot as createWarsh,ze as findAyahIdBySurah,We as findJuz,Je as findJuzAndShift,Ye as findJuzAndShiftByAyahId,Ge as findJuzByAyahId,qe as findJuzMetaBySurah,$e as findManzil,et as findManzilByAyahId,Xe as findPage,Ze as findPagebyAyahId,ft as findRangeAroundAyah,pt as findRangeAroundSurahAyah,it as findRubAlHizb,at as findRubAlHizbByAyahId,nt as findRukuByAyahId,Ve as findSurahAyahByAyahId,Be as findSurahByAyahId,Dt as generatePartBlocks,Re as getAyahCountInSurah,ut as getAyahMeta,dt as getAyahMetasForSurah,Ke as getJuzMeta,_e as getList,ve as getListNormalised,tt as getManzilMeta,Qe as getPageMeta,ot as getRubAlHizb,lt as getRubAlHizbByAyahId,st as getRubAlHizbMeta,ct as getRubAlHizbMetaByAyahId,rt as getRukuMeta,Le as getSurahInfo,Ie as getSurahMeta,mt as isAyahJuzFirst,ht as isAyahPageFirst,gt as isSurahAyahJuzFirst,_t as isSurahAyahPageFirst,bt as isValidAyahId,yt as isValidAyahNo,wt as isValidJuz,xt as isValidManzil,St as isValidPage,Tt as isValidRuku,vt as isValidSurah,Et as isValidSurahAyah,$ as meta,He as nextAyah,Ue as prevAyah,Ct as string2NumberSplitter,De as surahStringParser};