quran-meta
Version:
Library with meta data and functionality related to Holy Quran
1 lines • 25.7 kB
JavaScript
const e={meta:{riwayaName:`Hafs`,numAyahs:6236,numSurahs:114,numPages:604,numJuzs:30,numHizbs:60,numRubAlHizbs:240,numThumunAlHizbs:0,numRubsInJuz:8,numSajdas:15,numRukus:556,numManzils:7},HizbQuarterList:[0,1,33,51,67,82,99,113,131,149,165,184,196,210,226,240,250,260,270,279,290,308,326,345,368,386,406,426,446,464,479,494,505,517,529,551,567,581,593,607,628,641,656,670,681,696,710,720,736,751,766,778,802,825,848,863,884,900,916,930,940,955,985,1001,1019,1042,1071,1096,1110,1125,1143,1161,1182,1201,1221,1236,1254,1269,1281,1295,1310,1328,1346,1357,1375,1390,1417,1435,1454,1479,1497,1514,1534,1557,1581,1603,1626,1649,1673,1697,1712,1726,1742,1760,1778,1803,1852,1902,1931,1952,1976,1991,2012,2030,2052,2079,2099,2128,2157,2172,2191,2215,2239,2272,2309,2349,2403,2431,2459,2484,2512,2534,2566,2596,2614,2633,2655,2674,2709,2748,2792,2812,2826,2844,2856,2876,2908,2933,2984,3043,3113,3160,3186,3215,3241,3264,3281,3303,3328,3341,3366,3386,3410,3440,3463,3491,3514,3534,3551,3564,3584,3593,3616,3630,3652,3675,3701,3733,3765,3810,3871,3933,3991,4022,4066,4090,4111,4134,4154,4174,4199,4227,4243,4265,4285,4299,4323,4349,4382,4431,4485,4511,4531,4555,4578,4601,4613,4626,4657,4706,4759,4810,4855,4902,4980,5054,5091,5105,5118,5137,5157,5178,5192,5218,5230,5242,5272,5324,5394,5448,5495,5552,5610,5673,5759,5830,5885,5949,6024,6091,6155,6237],JuzList:[0,1,149,260,386,517,641,751,900,1042,1201,1328,1479,1649,1803,2030,2215,2484,2674,2876,3215,3386,3564,3733,4090,4265,4511,4706,5105,5242,5673,6237],ManzilList:[0,1,670,1365,2030,2933,3789,4631,6237],PageList:[0,1,8,13,24,32,37,45,56,65,69,77,84,91,96,101,109,113,120,127,134,142,149,153,161,171,177,184,189,194,198,204,210,218,223,227,232,238,241,245,253,256,260,264,267,272,277,282,289,290,294,303,309,316,323,331,339,346,355,364,371,377,385,394,402,409,415,426,434,442,447,451,459,467,474,480,488,494,500,505,508,513,517,520,527,531,538,545,553,559,568,573,580,585,588,595,599,607,615,621,628,634,641,648,656,664,669,672,675,679,683,687,693,701,706,711,715,720,727,734,740,746,752,759,765,773,778,783,790,798,808,817,825,834,842,849,858,863,871,880,884,891,900,908,914,921,927,932,936,941,947,955,966,977,985,992,998,1006,1012,1022,1028,1036,1042,1050,1059,1075,1085,1092,1098,1104,1110,1114,1118,1125,1133,1142,1150,1161,1169,1177,1186,1194,1201,1206,1213,1222,1230,1236,1242,1249,1256,1262,1267,1272,1276,1283,1290,1297,1304,1308,1315,1322,1329,1335,1342,1347,1353,1358,1365,1371,1379,1385,1390,1398,1407,1418,1426,1435,1443,1453,1462,1471,1479,1486,1493,1502,1511,1519,1527,1536,1545,1555,1562,1571,1582,1591,1601,1611,1619,1627,1634,1640,1649,1660,1666,1675,1683,1692,1700,1708,1713,1721,1726,1736,1742,1750,1756,1761,1769,1775,1784,1793,1803,1818,1834,1854,1873,1893,1908,1916,1928,1936,1944,1956,1966,1974,1981,1989,1995,2004,2012,2020,2030,2037,2047,2057,2068,2079,2088,2096,2105,2116,2126,2134,2145,2156,2161,2168,2175,2186,2194,2202,2215,2224,2238,2251,2262,2276,2289,2302,2315,2327,2346,2361,2386,2400,2413,2425,2436,2447,2462,2474,2484,2494,2508,2519,2528,2541,2556,2565,2574,2585,2596,2601,2611,2619,2626,2634,2642,2651,2660,2668,2674,2691,2701,2716,2733,2748,2763,2778,2792,2802,2812,2819,2823,2828,2835,2845,2850,2853,2858,2867,2876,2888,2899,2911,2923,2933,2952,2972,2993,3016,3044,3069,3092,3116,3139,3160,3173,3182,3195,3204,3215,3223,3236,3248,3258,3266,3274,3281,3288,3296,3303,3312,3323,3330,3337,3347,3355,3364,3371,3379,3386,3393,3404,3415,3425,3434,3442,3451,3460,3470,3481,3489,3498,3504,3515,3524,3534,3540,3549,3556,3564,3569,3577,3584,3588,3596,3607,3614,3621,3629,3638,3646,3655,3664,3672,3679,3691,3699,3705,3718,3733,3746,3760,3776,3789,3813,3840,3865,3891,3915,3942,3971,3987,3997,4013,4032,4054,4064,4069,4080,4090,4099,4106,4115,4126,4133,4141,4150,4159,4167,4174,4183,4192,4200,4211,4219,4230,4239,4248,4257,4265,4273,4283,4288,4295,4304,4317,4324,4336,4348,4359,4373,4386,4399,4415,4433,4454,4474,4487,4496,4506,4516,4525,4531,4539,4546,4557,4565,4575,4584,4593,4599,4607,4612,4617,4624,4631,4646,4666,4682,4706,4727,4750,4767,4785,4811,4829,4853,4874,4896,4918,4942,4969,4996,5030,5056,5079,5087,5094,5100,5105,5111,5116,5126,5130,5136,5143,5151,5156,5162,5169,5178,5186,5193,5200,5209,5218,5223,5230,5237,5242,5254,5268,5287,5314,5332,5358,5386,5415,5430,5448,5461,5476,5495,5513,5543,5571,5597,5617,5642,5673,5703,5728,5759,5801,5830,5855,5883,5910,5932,5964,5994,6017,6044,6073,6099,6126,6138,6156,6177,6194,6208,6222,6237],RukuList:[0,1,8,15,28,37,47,54,67,69,79,90,94,104,111,120,129,137,149,155,160,171,175,184,190,196,204,218,224,229,236,239,243,250,256,261,265,268,274,281,289,291,294,303,314,324,335,348,357,365,374,385,395,403,414,423,437,442,449,465,474,483,494,504,508,516,519,527,536,544,553,564,570,581,585,590,594,598,606,609,620,628,635,646,656,665,670,675,681,689,696,704,713,720,726,736,747,756,763,770,778,785,790,800,810,820,831,840,845,850,860,872,880,884,890,900,911,919,930,934,940,944,955,965,980,986,994,1002,1008,1013,1019,1027,1039,1048,1054,1063,1081,1084,1096,1102,1106,1112,1117,1126,1136,1143,1161,1171,1180,1189,1198,1205,1209,1219,1225,1230,1236,1242,1252,1260,1265,1273,1278,1295,1302,1308,1316,1325,1335,1346,1354,1358,1365,1375,1385,1395,1405,1418,1425,1435,1447,1457,1468,1474,1482,1498,1509,1523,1534,1542,1557,1569,1583,1597,1603,1617,1626,1632,1639,1646,1654,1665,1676,1690,1701,1708,1715,1726,1734,1739,1745,1751,1757,1763,1772,1778,1785,1792,1803,1818,1828,1847,1863,1882,1902,1911,1923,1927,1936,1942,1952,1962,1967,1972,1978,1985,1991,2002,2012,2021,2030,2040,2052,2060,2070,2082,2090,2100,2107,2114,2123,2130,2141,2153,2158,2163,2172,2185,2190,2194,2200,2211,2223,2242,2251,2266,2291,2301,2316,2333,2349,2373,2403,2425,2438,2453,2464,2477,2484,2494,2513,2525,2534,2559,2577,2596,2606,2618,2621,2629,2634,2644,2653,2660,2668,2674,2696,2706,2724,2751,2766,2792,2802,2812,2818,2826,2832,2842,2849,2853,2856,2865,2876,2890,2900,2916,2933,2942,2966,2985,3002,3037,3055,3073,3092,3108,3124,3160,3174,3191,3204,3218,3226,3242,3253,3266,3274,3281,3295,3303,3313,3328,3341,3354,3363,3371,3385,3392,3404,3410,3420,3429,3437,3450,3463,3470,3481,3489,3504,3515,3526,3534,3542,3554,3561,3568,3574,3586,3592,3602,3607,3616,3628,3637,3643,3652,3661,3668,3675,3687,3698,3706,3718,3738,3756,3773,3789,3810,3863,3902,3927,3971,3985,3997,4011,4035,4059,4068,4080,4090,4100,4111,4122,4129,4134,4143,4154,4161,4171,4184,4194,4202,4212,4219,4227,4237,4244,4251,4263,4273,4282,4292,4302,4316,4326,4341,4351,4361,4371,4382,4393,4415,4444,4457,4474,4485,4495,4500,4511,4521,4531,4537,4546,4557,4565,4574,4584,4594,4601,4610,4613,4623,4631,4646,4660,4676,4699,4722,4736,4764,4785,4810,4817,4847,4869,4887,4902,4927,4947,4980,5018,5054,5076,5086,5095,5101,5105,5111,5118,5127,5137,5144,5151,5157,5164,5173,5178,5186,5189,5197,5200,5210,5218,5225,5230,5237,5242,5256,5272,5305,5324,5361,5376,5411,5420,5440,5448,5467,5476,5495,5496,5527,5552,5582,5592,5614,5623,5663,5673,5703,5713,5739,5759,5801,5830,5849,5885,5910,5932,5949,5968,5994,6024,6044,6059,6080,6091,6099,6107,6126,6131,6139,6147,6158,6169,6177,6180,6189,6194,6198,6205,6208,6214,6217,6222,6226,6231,6237],SajdaList:[1160,1722,1951,2138,2308,2613,2672,2915,3185,3518,3994,4256,4846,5905,6125],SurahList:[[-1,1,1,1,``,!1],[1,7,5,1,`الفَاتِحة`,!0],[8,286,87,40,`البَقَرَة`,!1],[294,200,89,20,`آل عِمران`,!1],[494,176,92,24,`النِّسَاء`,!1],[670,120,112,16,`المَائدة`,!1],[790,165,55,20,`الأنعَام`,!0],[955,206,39,24,`الأعرَاف`,!0],[1161,75,88,10,`الأنفَال`,!1],[1236,129,113,16,`التوبَة`,!1],[1365,109,51,11,`يُونس`,!0],[1474,123,52,10,`هُود`,!0],[1597,111,53,12,`يُوسُف`,!0],[1708,43,96,6,`الرَّعد`,!1],[1751,52,72,7,`إبراهِيم`,!0],[1803,99,54,6,`الحِجر`,!0],[1902,128,70,16,`النَّحل`,!0],[2030,111,50,12,`الإسرَاء`,!0],[2141,110,69,12,`الكَهف`,!0],[2251,98,44,6,`مَريَم`,!0],[2349,135,45,8,`طه`,!0],[2484,112,73,7,`الأنبيَاء`,!0],[2596,78,103,10,`الحج`,!1],[2674,118,74,6,`المؤمنُون`,!0],[2792,64,102,9,`النور`,!1],[2856,77,42,6,`الفُرقَان`,!0],[2933,227,47,11,`الشعراء`,!0],[3160,93,48,7,`النَّمل`,!0],[3253,88,49,8,`القَصَص`,!0],[3341,69,85,7,`العَنكبُوت`,!0],[3410,60,84,6,`الرُّوم`,!0],[3470,34,57,3,`لُقمَان`,!0],[3504,30,75,3,`السَّجدة`,!0],[3534,73,90,9,`الأحزَاب`,!1],[3607,54,58,6,`سَبإ`,!0],[3661,45,43,5,`فَاطِر`,!0],[3706,83,41,5,`يسٓ`,!0],[3789,182,56,5,`الصَّافَات`,!0],[3971,88,38,5,`صٓ`,!0],[4059,75,59,8,`الزُّمَر`,!0],[4134,85,60,9,`غَافِر`,!0],[4219,54,61,6,`فُصِّلَت`,!0],[4273,53,62,5,`الشُّوري`,!0],[4326,89,63,7,`الزُّخرُف`,!0],[4415,59,64,3,`الدُّخان`,!0],[4474,37,65,4,`الجاثِية`,!0],[4511,35,66,4,`الأحقَاف`,!0],[4546,38,95,4,`مُحمد`,!1],[4584,29,111,4,`الفَتح`,!1],[4613,18,106,2,`الحُجُرَات`,!1],[4631,45,34,3,`قٓ`,!0],[4676,60,67,3,`الذَّاريَات`,!0],[4736,49,76,2,`الطُّور`,!0],[4785,62,23,3,`النَّجم`,!0],[4847,55,37,3,`القَمَر`,!0],[4902,78,97,3,`الرَّحمٰن`,!1],[4980,96,46,3,`الوَاقِعة`,!0],[5076,29,94,4,`الحدِيد`,!1],[5105,22,105,3,`المُجَادلة`,!1],[5127,24,101,3,`الحَشر`,!1],[5151,13,91,2,`المُمتَحنَة`,!1],[5164,14,109,2,`الصَّف`,!1],[5178,11,110,2,`الجُمعَة`,!1],[5189,11,104,2,`المُنَافِقُونَ`,!1],[5200,18,108,2,`التغَابُن`,!1],[5218,12,99,2,`الطَّلَاق`,!1],[5230,12,107,2,`التَّحرِيم`,!1],[5242,30,77,2,`المُلك`,!0],[5272,52,2,2,`القَلَم`,!0],[5324,52,78,2,`الحَاقة`,!0],[5376,44,79,2,`المَعَارج`,!0],[5420,28,71,2,`نُوح`,!0],[5448,28,40,2,`الجِن`,!0],[5476,20,3,2,`المُزمل`,!0],[5496,56,4,2,`المُدثر`,!0],[5552,40,31,2,`القِيَامة`,!0],[5592,31,98,2,`الإنسَان`,!1],[5623,50,33,2,`المُرسَلات`,!0],[5673,40,80,2,`النَّبَإ`,!0],[5713,46,81,2,`النَّازعَات`,!0],[5759,42,24,1,`عَبَسَ`,!0],[5801,29,7,1,`التَّكوير`,!0],[5830,19,82,1,`الانفِطَار`,!0],[5849,36,86,1,`المُطَففين`,!0],[5885,25,83,1,`الانشِقَاق`,!0],[5910,22,27,1,`البُرُوج`,!0],[5932,17,36,1,`الطَّارق`,!0],[5949,19,8,1,`الأعلى`,!0],[5968,26,68,1,`الغَاشِية`,!0],[5994,30,10,1,`الفَجر`,!0],[6024,20,35,1,`البَلَد`,!0],[6044,15,26,1,`الشَّمس`,!0],[6059,21,9,1,`اللَّيل`,!0],[6080,11,11,1,`الضُّحى`,!0],[6091,8,12,1,`الشَّرح`,!0],[6099,8,28,1,`التِّين`,!0],[6107,19,1,1,`العَلَق`,!0],[6126,5,25,1,`القَدر`,!0],[6131,8,100,1,`البَينَة`,!1],[6139,8,93,1,`الزَّلزَلة`,!1],[6147,11,14,1,`العَاديَات`,!0],[6158,11,30,1,`القَارعَة`,!0],[6169,8,16,1,`التَّكاثُر`,!0],[6177,3,13,1,`العَصر`,!0],[6180,9,32,1,`الهُمَزة`,!0],[6189,5,19,1,`الفِيل`,!0],[6194,4,29,1,`قُرَيش`,!0],[6198,7,17,1,`المَاعُون`,!0],[6205,3,15,1,`الكَوثر`,!0],[6208,6,18,1,`الكافِرون`,!0],[6214,3,114,1,`النَّصر`,!1],[6217,5,6,1,`المَسَد`,!0],[6222,4,22,1,`الإخلَاص`,!0],[6226,5,20,1,`الفَلَق`,!0],[6231,6,21,1,`النَّاس`,!0],[6237,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=>x(e,$),St=e=>e.split(/[\s,:;.\-_/\\|]/).filter(e=>e.trim()!==``).map(e=>Number.parseInt(e.trim())).filter(e=>!Number.isNaN(e)),Ct=e=>b(e,$),wt=e=>C(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 createHafs,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,Ct as isValidJuz,wt as isValidManzil,xt as isValidPage,Tt as isValidRuku,vt as isValidSurah,Et as isValidSurahAyah,$ as meta,He as nextAyah,Ue as prevAyah,St as string2NumberSplitter,De as surahStringParser};